Package app is the chassis entrypoint, factored out of cmd/txco so a
downstream build (e.g. a SaaS overlay that blank-imports extra store
backends) can reuse the exact boot orchestration instead of forking
main. cmd/txco/main.go is now a thin shim that calls Run; behavior is
byte-for-byte unchanged.
Run is the full chassis boot. It returns a process exit code; the
caller's main does the single os.Exit so deferred cleanup runs on the
normal-shutdown path. Fatal config/db errors still exit in place via
log.Fatalf / logger.Fatal exactly as before.
type BuildInfo struct {
Version string CommitId string BuildTimestamp string}
BuildInfo carries the ldflag-injected build identity. The values live
in the `main` package of whichever binary links this (so
`-X main.Version` etc. keep working unchanged); the shim passes them
in here.