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:
parent
db850aded5
commit
a786b061da
9 changed files with 98 additions and 27 deletions
|
|
@ -2,6 +2,7 @@ import json
|
|||
from pathlib import Path
|
||||
|
||||
from approval_engine.audit import audit_envelope
|
||||
from approval_engine.coordination import FRAME_SECONDS, RECEIVER_WAIT_SECONDS
|
||||
from approval_engine.store import EVENT_CLASSES, HEARTBEAT_CLASSES
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
|
|
@ -30,8 +31,16 @@ def test_cadence_inventory_matches_durable_emitter(engine):
|
|||
assert beat["event_class"] == observed[cls]["type"] == "audit-core.heartbeat"
|
||||
assert beat["assertion"] == observed[cls]["data"]["assertion"]
|
||||
assert beat["extensions"]["approval-engine"]["asserted_class"] == cls
|
||||
assert beat["interval_seconds"] == 86400
|
||||
assert beat["extensions"]["approval-engine"]["requested_observer_max_gap_seconds"] == 172800
|
||||
assert beat["interval_seconds"] == FRAME_SECONDS
|
||||
assert beat["extensions"]["approval-engine"]["requested_observer_max_gap_seconds"] == RECEIVER_WAIT_SECONDS
|
||||
assert entries[cls]["extensions"]["netkingdom"]["rate_monitoring"] == "forbidden"
|
||||
assert entries[cls]["reconciliation"]["undrained_local"] == "lag-not-divergence"
|
||||
assert "heartbeat" not in entries["heartbeat"] # transport control has no recursive heartbeat
|
||||
|
||||
|
||||
def test_default_runtime_heartbeat_matches_declared_coordination_frame():
|
||||
from approval_engine.cli import _parser
|
||||
|
||||
args = _parser().parse_args(["serve"])
|
||||
assert args.heartbeat_seconds == FRAME_SECONDS
|
||||
assert _parser().parse_args(["serve", "--heartbeat-seconds", "600"]).heartbeat_seconds == 600
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue