Two deferrals recorded under register C-89 lost their owner when the issue they were routed to closed. Neither is urgent; both are small; and an ownerless deferral is not a deferral (ADR-014 §4), which is the reason this exists rather than another paragraph in the register.
1. The leak guards still live in the wrong file
tests/test_redaction_guard.py is this repository's home for "what stops us leaking". The coordinate-value guards live in tests/test_env_declaration.py instead, and tests/test_env_declaration.py::test_the_environment_refusal_logs_names_and_never_values already points readers at the redaction guard for "the wider rule" — so the split is visible in the code and unresolved.
The deferral's trigger was "when #243 finishes touching tests/test_env_declaration.py". #243 closed 2026-08-12. The trigger fired; the move did not happen.
Why it was deferred and why that still partly holds: moving code while fixing bugs in it is how the next defect arrives, and #242–#243 were fixing bugs in exactly these guards. That reason has now expired — the guards have been stable since #243.
Scope: move the value-scan guards and their fixtures into tests/test_redaction_guard.py, or decide deliberately that they stay and record why. Either outcome closes this half.
2. A proof that re-types its subject instead of driving it
tests/test_env_declaration.py::test_the_drift_check_would_catch_a_rename rebuilds the checked function's comparison with its own comprehension rather than calling it. Blank the subject's assertions and this proof stays green.
This is the exact defect its two siblings had and had repaired — the rotation proof and the table-partition proof both now drive the real function. This one was routed to #243 and #243 closed without it.
Scope: point it at the function it names, the way test_the_drift_check_is_silent_on_a_row_this_partner_does_not_read and test_the_drift_check_fires_when_a_row_this_partner_reads_rotates were pointed in #245/#246 — monkeypatch the readers, call the real check. Mutation-prove by neutering the subject.
Acceptance
Why this is not urgent
Neither is a live defect. The first is organisation; the second is a proof that is weaker than its siblings, in a cluster where the other two are now strong. Register C-89, C-82.
Two deferrals recorded under register C-89 lost their owner when the issue they were routed to closed. Neither is urgent; both are small; and an ownerless deferral is not a deferral (ADR-014 §4), which is the reason this exists rather than another paragraph in the register.
1. The leak guards still live in the wrong file
tests/test_redaction_guard.pyis this repository's home for "what stops us leaking". The coordinate-value guards live intests/test_env_declaration.pyinstead, andtests/test_env_declaration.py::test_the_environment_refusal_logs_names_and_never_valuesalready points readers at the redaction guard for "the wider rule" — so the split is visible in the code and unresolved.The deferral's trigger was "when #243 finishes touching
tests/test_env_declaration.py". #243 closed 2026-08-12. The trigger fired; the move did not happen.Why it was deferred and why that still partly holds: moving code while fixing bugs in it is how the next defect arrives, and #242–#243 were fixing bugs in exactly these guards. That reason has now expired — the guards have been stable since #243.
Scope: move the value-scan guards and their fixtures into
tests/test_redaction_guard.py, or decide deliberately that they stay and record why. Either outcome closes this half.2. A proof that re-types its subject instead of driving it
tests/test_env_declaration.py::test_the_drift_check_would_catch_a_renamerebuilds the checked function's comparison with its own comprehension rather than calling it. Blank the subject's assertions and this proof stays green.This is the exact defect its two siblings had and had repaired — the rotation proof and the table-partition proof both now drive the real function. This one was routed to #243 and #243 closed without it.
Scope: point it at the function it names, the way
test_the_drift_check_is_silent_on_a_row_this_partner_does_not_readandtest_the_drift_check_fires_when_a_row_this_partner_reads_rotateswere pointed in #245/#246 — monkeypatch the readers, call the real check. Mutation-prove by neutering the subject.Acceptance
tests/test_redaction_guard.pyor their staying is recorded with a reason.test_the_drift_check_would_catch_a_renamefails when its subject's assertions are neutered — demonstrated, not asserted.Why this is not urgent
Neither is a live defect. The first is organisation; the second is a proof that is weaker than its siblings, in a cluster where the other two are now strong. Register C-89, C-82.