docs: clarify durable runtime readiness boundary
This commit is contained in:
@@ -84,6 +84,40 @@ this agreement offline. A live pass still requires `/health/live` to report
|
||||
`db.ready=true`, `db.connected=true`, and `liveDbEvidence=true` with secret
|
||||
values redacted.
|
||||
|
||||
## Durable Runtime Readiness Contract
|
||||
|
||||
DB live readiness and durable runtime readiness are separate gates. A
|
||||
`/health/live` payload with `db.connected=true` and `db.liveDbEvidence=true`
|
||||
only proves that the Cloud API reached the DEV DB endpoint without exposing
|
||||
secret values. It does not prove that runtime writes are persisted through a
|
||||
durable store.
|
||||
|
||||
When health reports:
|
||||
|
||||
- `runtime.adapter: "memory"`
|
||||
- `runtime.durable: false`
|
||||
- `runtime.status: "degraded"`
|
||||
|
||||
the Cloud API is using the process-local runtime store in
|
||||
`internal/db/runtime-store.mjs`. Gateway sessions, box resources, operations,
|
||||
audit events, and evidence records accepted through the runtime can be lost on
|
||||
pod restart, redeploy, or scale-out, and cannot be treated as durable M3/M4/M5
|
||||
evidence. Users may see accepted operations or evidence disappear after a
|
||||
runtime replacement, and agent-loop/MVP acceptance must remain degraded or
|
||||
blocked even if the DB connection layer is green.
|
||||
|
||||
Readiness reports must keep these dimensions distinct:
|
||||
|
||||
| Dimension | Green condition | Degraded/blocking condition |
|
||||
| --- | --- | --- |
|
||||
| DB live | `db.ready=true`, `db.connected=true`, `db.liveDbEvidence=true` | Missing env, failed connection, disabled probe, or no `liveDbEvidence` |
|
||||
| Runtime durability | `runtime.durable=true` with a durable adapter | `runtime.adapter="memory"` or `runtime.durable=false` |
|
||||
|
||||
Do not declare DEV-LIVE complete while `runtime.adapter="memory"` or
|
||||
`runtime.durable=false`, even when DB live readiness is connected. The next
|
||||
fix boundary is a durable runtime store and migration path; documenting or
|
||||
testing this contract must not mutate runtime state or PROD.
|
||||
|
||||
## Runtime Substitution Ban
|
||||
|
||||
UniDesk services, provider-gateway, backend-core, microservice proxies, local
|
||||
|
||||
Reference in New Issue
Block a user