approval-engine/approval_engine
tegwick bfb1e66646 Heartbeat per event class, not per source
audit-core's completeness contract landed, and our single per-source beat
is the shape it rules inadequate: it is discharged by whichever class is
busy, so a revocation stream that has gone silent looks identical to a
quiet one — and revocation is the only silence here that matters.

Emit one nothing-to-report assertion per declared class, all four in one
transaction so a partial emission cannot report some classes healthy and
others stalled. Carry type audit-core.heartbeat with class and assertion
on data. Pin that the first beat goes out at startup rather than an
interval later, since a declared-but-never-sent class is their
no_heartbeat_since_registration finding and not a skip.

Declare heartbeat_classes and the reconciliation surface in the source
registration, including the residual neither control covers: a
compromised emitter suppresses the event and its own heartbeat together.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HyybaE7DUXrWYrhbnESCTe

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 1275879@bnt-lap001
Assistant-Session: eb464208-f821-41b2-bc5a-a6c33d92a8ad
2026-09-10 20:36:21 +02:00
..
__init__.py Implement approval engine production readiness 2026-09-02 00:52:04 +02:00
api.py Enforce declared human controls at approval binding 2026-09-10 19:26:12 +02:00
audit.py Heartbeat per event class, not per source 2026-09-10 20:36:21 +02:00
auth.py Implement approval engine production readiness 2026-09-02 00:52:04 +02:00
binding.py Implement the engine spine: claim, outbox, machine, API 2026-08-29 12:52:49 +02:00
cli.py Set the approval store tenant to exact tenant:platform 2026-09-06 22:33:50 +02:00
errors.py Implement approval engine production readiness 2026-09-02 00:52:04 +02:00
pep.py Harden the PEP harness and KeyCape registration request 2026-09-02 15:46:06 +02:00
store.py Heartbeat per event class, not per source 2026-09-10 20:36:21 +02:00