This directory is the deliberately thin human control surface for backend/.
Durable state and acceptance live in PostgreSQL; execution and verification live in
backend adapters; repository authority remains outside both.
With STACK_DATABASE_URL configured:
python -m frontend.cli.stackctl db migrate
python -m frontend.cli.stackctl fresh make-msdmd ucns \
--root /srv/stack-repos/ucns \
--source-sha <40-hex-commit>
python -m frontend.cli.stackctl fresh status msdmd:ucns
python -m frontend.cli.stackctl fresh explain msdmd:ucns
python -m frontend.cli.stackctl fresh make msdmd:ucns
python -m frontend.cli.stackctl fresh jobs --target msdmd:ucns
python -m frontend.cli.stackctl fresh recover
python -m frontend.cli.stackctl fresh affected msdmd:ucnsQueue for the VM worker:
python -m frontend.cli.stackctl fresh make-msdmd ucns \
--root /srv/stack-repos/ucns \
--source-sha <40-hex-commit> \
--queue-only
python -m frontend.cli.stackctl worker once
python -m frontend.cli.stackctl worker runThe old stackctl msdmd ... namespace is removed. MSDMD is one derivation adapter
under fresh, not a parallel orchestration surface.
--database-url/STACK_DATABASE_URLmust name PostgreSQL; SQLite is not a production fallback.- production roots are constrained by
STACK_REPO_ROOTandSTACK_ALLOWED_REPOS. - executor selection is attempt metadata, not logical job identity.
fresh statusverifies current identities, accepted receipt, output digest, and the derivation-specific verifier; it does not equate “recent” with fresh.- the CLI does not commit, push, merge, or acquire repository authority.
- JSON receipt files are inspection projections; PostgreSQL
target_acceptanceis the acceptance authority.
The GitHub-hosted executor adapter is not implemented. VM-local execution is the independent resilience baseline.