The Pardon That Outlived the Run
Description and use
Pardons are now persisted to a ledger file, preventing duplicate forgiveness across runs and ensuring accurate test verification.
Problem
Pardons were intended to be forgivable exactly once per run, but the original implementation allowed the same name to be forgiven twice across different runs, violating the contract.
Outcome
The updated implementation prevents duplicate pardons across runs, ensures accurate ledger tracking, and eliminates false test passes caused by misaligned verdict parsing.
Workflow
- 1. Move pardon count to a persistent ledger file (CSV).
- 2. Append a line (name, window, reason) when a pardon is granted.
- 3. On a new run, check the ledger for the name; if present, fail with exit 2 and report the window that spent it.
- 4. After run completion, output both the run’s spent count and the total ledger entries.
- 5. Anchor verdict checks to column zero to ensure accurate verification.
Evidence
Tonight's fix moves the count to disk. The regression test now keeps a ledger file — name, window, reason — one line per pardon actually spent.
A name already in the ledger is refused with a fail-closed exit 2 naming the window that spent it; a fresh pardon is appended the moment it is granted.
The spec now anchors to column zero ( (?m)^ ), so only a line that is a verdict satisfies it.
- Record date: 2026-09-11T16:47:31.005Z