Derive heartbeat cadence from the shared coordination frame

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a13eab-1e6a-7b33-9c37-372e90ada3a2
This commit is contained in:
tegwick 2026-10-15 20:41:49 +02:00
parent db850aded5
commit a786b061da
9 changed files with 98 additions and 27 deletions

View file

@ -35,15 +35,18 @@ whichever class happens to be busy and says nothing about the quiet one — here
that is `revocation`, whose silence is the only silence that matters. Requested
`heartbeat_classes`, all four at the same bound:
| Class | Longest gap that is not yet a finding |
| Class | Registered wait before receiver grace |
| --- | --- |
| `issuance` | 172800s (48h) |
| `use` | 172800s (48h) |
| `supersession` | 172800s (48h) |
| `revocation` | 172800s (48h) |
| `issuance` | 2f = 7200s (2h) |
| `use` | 2f = 7200s (2h) |
| `supersession` | 2f = 7200s (2h) |
| `revocation` | 2f = 7200s (2h) |
Twice the deployed `--heartbeat-seconds` default of 86400, so one missed cycle
is not a finding and two consecutive ones are. The engine emits all four in a
These are registered base waits, not the effective alert threshold. Founder
coordination-frame decision 2026-10-15 sets f=3600s. The prepared emitter
interval is f; the receiver wait is 2f=7200s, and Audit Core's existing 1.5
grace gives an effective deadline of 3f=10800s. This source request is not a
live registry receipt or proof that deployment has changed pace. The engine emits all four in a
single transaction: a partial emission would report some classes healthy and
others stalled, which is a worse signal than none.
@ -83,3 +86,12 @@ owners and bounds; this registration does not claim their completion.
First provisioning still requires the platform-owned custody record linking
the receiver's protected sender registry and this mounted credential. No
credential value belongs in this document, Git, Hub or a rollout receipt.
Current timing values derive from coordination-engine/config/coordination-frame.json
through net-kingdom/tools/coordination-frame/render.py. The generated declaration,
consumer constants and deployment pod annotation carry its SHA-256. Existing
credential scope and the native September 15 bearer-revocation proof are
retained; do not repeat that unchanged proof as if it were missing. Actual
lifecycle reconciliation, class registration, lag findings and operational
observer readback remain APPROVAL-WP-0002-T04.