# Local dev defaults. Override path with SANDO_CONFIG. listen = "127.0.0.1:7766" db_path = "./sando.db" topology_path = "../sando.toml" # Hostname (/proc/sys/kernel/hostname) this daemon may build on. build::run # refuses to compile on any other host, so a misdeployed daemon can't build on # prod. Required. build_host = "fw13" workdir = "./work" release_root = "./releases" # Shared cargo target dir across per-sha worktrees — incremental rebuilds reuse # the previous sha's compiled deps instead of clean-compiling each fresh # worktree. Safe because builds are serialized. Omit for per-worktree target/. cargo_target_dir = "./cargo-target" # Dropped and recreated on every migration_dry_run. Leave unset to skip. # The role must be SUPERUSER on the scratch cluster: the gates reset it, seed the # dump's owner role into it, and drop stale mnw_test_* clones left by a killed # run (including foreign-owned ones, which DROP DATABASE refuses without # superuser). The daemon asserts this at startup and refuses to boot otherwise. # ALTER ROLE sando SUPERUSER; scratch_db_url = "postgres://sando@127.0.0.1/sando_scratch" # Role that owns the objects in a prod pg_dump. The dump carries `ALTER ... OWNER # TO ` for every object, so it must exist in the scratch cluster before a # restore; reset_scratch creates it NOLOGIN and grants it CREATE on public, so no # manual SQL is needed on a fresh box. Must match the prod DB owner. scratch_owner_role = "makenotwork" # TypeScript frontends the code_smoke gate compiles. Both build scripts downgrade # a tsc error to a cargo::warning so the Rust build still succeeds against a # stale static/dist/; this is where that failure is fatal instead. See the # frontend_build docs in daemon/src/config.rs. [[frontend_build]] dir = "server/frontend" [[frontend_build]] dir = "multithreaded/frontend" # Companion crates built from the same worktree/sha as the server and staged # into the release bundle, so a contract-coupled service can't drift out of # lockstep. mnw-cli is the public git-SSH server that proxies to /api/internal/* # — a two-month drift is what broke git hosting during the 0.10.14 deploy. Which # nodes install it is set per-node in the topology (see prod-1 in sando.toml). [[companion]] name = "mnw-cli" manifest_dir = "mnw-cli" bin = "mnw-cli" # Crates the cargo_test gate runs, in order. This list used to be hardcoded to # `server`, so every other crate in the repo shipped ungated — including # mnw-cli, which is BUILT as a companion and installed onto prod-1 in the same # promote it ships. All of these were verified green on 2026-07-21 before being # added; the gate stops at the first red one. # # scratch_db exports DATABASE_URL/TEST_DATABASE_URL. Only the server needs it # (its sqlx macros type-check against a live DB). Leaving it off elsewhere keeps # crates that ship offline `.sqlx` data in offline mode. [[test_target]] dir = "server" features = ["fast-tests"] scratch_db = true # Companion: ships to prod-1, so it is gated first among the rest. [[test_target]] dir = "mnw-cli" [[test_target]] dir = "multithreaded" scratch_db = true [[test_target]] dir = "pom" [[test_target]] dir = "wam" # shared/* — every app and service in the repo links these. [[test_target]] dir = "shared/docengine" all_features = true # No tests of its own yet; listed so a compile break still fails the gate. [[test_target]] dir = "shared/egui-updater" [[test_target]] dir = "shared/kberg" all_features = true [[test_target]] dir = "shared/livechat" all_features = true [[test_target]] dir = "shared/ops-core" [[test_target]] dir = "shared/ops-exec" all_features = true [[test_target]] dir = "shared/pom-contract" [[test_target]] dir = "shared/s3-storage" [[test_target]] dir = "shared/synckit-client" all_features = true [[test_target]] dir = "shared/tagtree"