Skip to content

ledger(CCV1-023/-009): attribute the post-reap refusal to the ADAPTER fence, and pin it (c0e) - #87

Merged
Brian Krabach (bkrabach) merged 2 commits into
mainfrom
lane/c0e-ccv1-023-ledger-note
Sep 6, 2026
Merged

ledger(CCV1-023/-009): attribute the post-reap refusal to the ADAPTER fence, and pin it (c0e)#87
Brian Krabach (bkrabach) merged 2 commits into
mainfrom
lane/c0e-ccv1-023-ledger-note

Conversation

@bkrabach

Copy link
Copy Markdown
Collaborator

Lane c0e-ccv1-023-ledger-note, $0.

Recovered by the manager after an external kill. The lane was terminated mid-flight when the shared tmux server on socket hw was restarted (model_performance-ye80), taking down three lanes and the watchdog at once. It had already finished the work: tiers-summary.txt records cli rc=0, ledger rc=0, module rc=0, ALLDONE. Only the push and the DONE.json marker were lost, so this is its work published, not re-run.

What it settles

model_performance-c0e was filed for a failing fixture. The manager measured that the code half was already fixed by PR #68 — the named test passes on main both before (9d61e42) and after (46d7da4) oy4's #76 — so the item was narrowed to its untouched second half: the ledger note that misattributes WHY the fixture passes.

CCV1-023's seeded note claimed the fixture "asserts the TOOL-layer refusal (which passes via the session latch)". That was measurably false when filed — the session latch was what let the call through. PR #71 then removed the sentence wholesale when the row flipped CONFORMS, but never replaced it with the right answer — so the ledger has been silent on why its own flagship custody fixture passes.

This attributes it to the adapter fence and pins it.

Why it matters

A conformance ledger that cannot say why its own fixture passes is worse than one that says nothing: the next reader trusts the note and reasons from a mechanism that was never the one operating.

Draft pending manager verification.

@bkrabach

Copy link
Copy Markdown
Collaborator Author

Manager status — rebased and partially verified; held draft on one unresolved gate.

Rebased cleanly onto current main (d039b32; only 1 commit had landed since this branch's base — #86, the ledger reconcile re-check). No conflicts.

Verified:

  • ledger tier: 60 passed — the tier this PR actually changes (ledger/rows.yaml, ledger/checks/test_custody_rows.py)
  • CI on the pushed head: test:SUCCESS, license/cla:SUCCESS
  • diff scope is the ledger rows + the test_reap_recovery.py fixture + this lane's evidence — nothing unrelated
  • the lane's own tier run recorded cli rc=0, ledger rc=0, module rc=0, ALLDONE before it was killed

Not verified, and the reason I am not merging: on my scratch clone the modules/tool-work-tracker/tests tier reported errors, and my comparison run against origin/main was invalidated when the throwaway venv was destroyed mid-check. So I could not establish whether those errors are pre-existing/environmental (this tier is a known footgun — it needs amplifier-core + pytest-asyncio + the module installed, or it fails at collection and looks like a real breakage) or caused by this branch.

Everything I actually measured is green, and the lane's own run says the module tier passed. But "probably environmental" is not a gate, and this PR touches that exact fixture — so it waits for a clean answer rather than a plausible one.

To land it: re-run modules/tool-work-tracker/tests on this branch and on main in the same environment; if the errors match, this is mergeable as-is.

Context on how this PR came to exist

This is recovered work, not a fresh lane. c0e was killed mid-flight when a shared tmux server was restarted by an unrelated batch (model_performance-ye80), taking down three lanes and the watchdog at once. It had already finished — only the push and its DONE.json marker were lost — so its commits were published rather than re-run.

What it settles is worth keeping: PR #71 removed CCV1-023's measurably-false note ("passes via the session latch") without replacing it, leaving the ledger silent on why its own flagship custody fixture passes. This attributes it to the adapter fence and pins it with a test.

@bkrabach
Brian Krabach (bkrabach) marked this pull request as ready for review September 6, 2026 05:00
lane c0e added 2 commits September 6, 2026 02:28
… fence, and pin it

CCV1-023's seeded note said the fixture that model_performance-c0e was filed
for 'asserts the TOOL-layer refusal (which passes via the session latch)'.
That sentence was removed wholesale by PR #71 when the row flipped CONFORMS,
but was never replaced by the right answer -- so the ledger has been silent
on WHY its own flagship custody fixture passes.

Measured, one mechanism at a time, against real bd + an isolated dolt server:

  * delete the adapter's custody-identity fence (PR #68, b3fac1e) and
    test_explicit_resolve_refusal_after_reap_clears_held_and_allows_new_claim
    fails at 'assert resolved.success is False' -- the close LANDS. The
    session latch is what lets it through.
  * delete the tool layer's 'except A.FencedError' latch-clearing (PR #3,
    69b717e) and the refusal still happens, but the fixture fails at
    'assert session._held is None'.

So two mechanisms at two layers, and the session latch is neither.

Pinned executably rather than left as prose:
test_post_reap_refusal_originates_below_the_session_latch asserts the latch
still names the item at the moment of the refused call, that the ADAPTER
refuses with no session in the picture, that the surfaced wording is the
fence's and not the latch's, and that an integrator's close of the same
unheld item still succeeds. Its own discrimination measured three ways
(fence removed -> DID NOT RAISE; refusal re-sourced to the latch -> wording
red; fence re-keyed on 'unheld' instead of identity -> integrator half red).
test_row_ccv1_009 gained a part 4 so the ledger notices if that pin is deleted.

CCV1-009 re-assessed: stays CONFORMS, both halves RUN this time rather than
probed for existence. assertion.kind deliberately unchanged.

STALE-NOTE AUDIT of every CCV1 row (the item asked for it explicitly) found
four more, all corrected here, none a disposition change:
  * CCV1-002 said reclaim_eligible has 'exactly two routes'; PR #76 added a
    third, and the source docstring has said 'three, and only three' since.
    Two path-2 cites added so the row covers the mechanism it describes.
  * CCV1-003, CCV1-004, CCV1-010 each defer their indexed upgrade on 'that
    suite runs in nothing (CCV1-022)'. CCV1-022 went green in PR #68.
  * CCV1-017 said Fixture 4 'does not exist in ANY suite'; CCV1-023 flipped
    CONFORMS on the file that contains it.
ledger/reconcile-report.md carries the same claims and is deliberately NOT
touched: it is a dated, self-declared superseded snapshot.
Recovered by the manager after the lane was killed mid-flight by an external
tmux-server restart (model_performance-ye80). The lane had already finished:
tiers-summary.txt records cli rc=0, ledger rc=0, module rc=0, ALLDONE. Only the
push and the DONE.json marker were lost.
@bkrabach
Brian Krabach (bkrabach) merged commit 37fba54 into main Sep 6, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant