approval-engine/tests
tegwick c93628a017 Let supersede() reissue an expired approval given a fresh window
expired stays a terminal exit from valid (state machine unchanged),
but supersede() now also accepts it as a source status when the
caller supplies a validity window, linking a new successor approval
to the expired original instead of requiring a caller to mint an
unlinked replacement from scratch. Without a fresh window, an expired
source still conflicts exactly as before.

The original's status becomes superseded (not left as a bare dead-end
expired) and superseded_by points at the successor, so the link is
documented rather than hidden -- informed-decision's overview already
renders this automatically, no changes needed there.

Prompted by the operator missing infd-20260927-b01's approval window
during today's key-cape login outage (APPROVAL-WP-0003).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: sonnet
Assistant-Process: 169987@bnt-lap001
Assistant-Session: 322ef1ef-9048-4021-8570-b6d6f6347999
2026-09-27 20:23:56 +02:00
..
conftest.py Set the approval store tenant to exact tenant:platform 2026-09-06 22:33:50 +02:00
test_api.py Let supersede() reissue an expired approval given a fresh window 2026-09-27 20:23:56 +02:00
test_audit.py Heartbeat per event class, not per source 2026-09-10 20:36:21 +02:00
test_auth.py Record the verified principal type on approver entries (schema v4) 2026-09-09 14:09:54 +02:00
test_cadence.py Implement the engine spine: claim, outbox, machine, API 2026-08-29 12:52:49 +02:00
test_cas.py Enforce declared human controls at approval binding 2026-09-10 19:26:12 +02:00
test_claim_contract.py Principal is the requesting party, not the approver 2026-09-10 22:43:33 +02:00
test_cli.py Harden the PEP harness and KeyCape registration request 2026-09-02 15:46:06 +02:00
test_deploy_manifest.py Publish and pin the verified schema-v5 approval candidate 2026-09-10 19:35:05 +02:00
test_examples.py Enforce declared human controls at approval binding 2026-09-10 19:26:12 +02:00
test_human_control.py Enforce declared human controls at approval binding 2026-09-10 19:26:12 +02:00
test_layer_declaration.py Apply GH-DEC-2026-020: remove companion_version from layer.yaml 2026-09-21 09:37:12 +02:00
test_machine.py Implement the engine spine: claim, outbox, machine, API 2026-08-29 12:52:49 +02:00
test_outbox.py Heartbeat per event class, not per source 2026-09-10 20:36:21 +02:00
test_pep.py Set the approval store tenant to exact tenant:platform 2026-09-06 22:33:50 +02:00
test_reissue.py Let supersede() reissue an expired approval given a fresh window 2026-09-27 20:23:56 +02:00
test_storage.py Implement approval engine production readiness 2026-09-02 00:52:04 +02:00
test_t06_replay.py Finish approval engine spine 2026-09-01 23:45:48 +02:00