Skip to content

C-89's two orphaned deferrals: relocate the leak guards, and point the rename proof at its subject #265

Description

@Polichinel

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    storyA single reviewable unit of an epic

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions