fix: harden durable runtime DEV gates

This commit is contained in:
Code Queue Review
2026-05-23 12:41:41 +00:00
parent 85e4c1c4ad
commit 30967566b7
7 changed files with 355 additions and 19 deletions
+18 -5
View File
@@ -229,6 +229,11 @@ blockers such as role missing, database missing, SSL, auth, schema, migration,
or durability readiness. It must not read Secret objects, print Secret values,
run PROD changes, use manual `psql`, or perform schema migration.
Provisioning reports intentionally keep target role, database, host, password,
and admin DSN out of the output. `role missing` and `database missing` are
reported as separate blockers so an auth failure cannot be repaired with an
untracked manual DB write.
## Runtime Migration Automation
The repo-owned runtime migration entrypoint is:
@@ -284,12 +289,20 @@ node scripts/dev-runtime-postflight.mjs --live --confirm-dev --confirmed-non-pro
Default `--check` is source-only. Live mode first reads
`http://74.48.78.17:16667/health/live` and
`http://74.48.78.17:16667/v1`. It only performs the M3
`DO1=true -> DI1=true -> DO1=false -> DI1=false` postflight when both
`http://74.48.78.17:16667/v1`. `/v1` must expose only the controlled
same-origin M3 IO route `/v1/m3/io` with contract `m3-io-control-v1`; generic
frontend gateway/box/patch-panel access is not a valid postflight substitute.
The postflight only performs the M3
`DO1=true -> DI1=true -> DO1=false -> DI1=false` write/read sequence when both
endpoints prove `runtime.adapter="postgres"`, `runtime.durable=true`,
`runtime.ready=true`, and `runtime.liveRuntimeEvidence=true`. The M3 portion
must then prove operation, trace, audit, and evidence identifiers with durable
green evidence; otherwise the report remains blocked.
`runtime.ready=true`, and `runtime.liveRuntimeEvidence=true`.
The M3 portion must then prove all four expected operations, exact true/false
values, operation/trace/audit/evidence identifiers, `evidenceState.status="green"`,
`evidenceState.sourceKind="DEV-LIVE"`, `evidenceState.durable=true`, and
`evidenceState.writeStatus="persisted"`. DB SecretRef presence, TCP
connectivity, `db.connected=true`, or `db.liveDbEvidence=true` alone must leave
the postflight blocked with the durable runtime blocker preserved.
## Durable Runtime Unblock Runbook