Skip to content

A wall that started holding was still rostered as expected-red: un-enrol the row, keep the probe - #9589

Merged
briansrls merged 2 commits into
mainfrom
session/snappy-dove-250-stale-quarantine
Aug 28, 2026
Merged

briansrls merged 2 commits into
mainfrom
session/snappy-dove-250-stale-quarantine

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

What

Removes one identity from the v2.workflow.floor_expected_red roster. The witness itself is kept and stays enrolled.

test.claim.duplicate_definition_binding_probe.duplicate_definition_in_one_module_is_refused

Why

It passes. The floor has been printing its own remedy on every run:

STALE-QUARANTINE ... is enrolled as expected-red and PASSED — remove it from v2.workflow.floor_expected_red

The mechanism had already decided; nobody had done it.

A repaired row left enrolled is not inert — it is a live exemption. The witness is fixed today, and should it regress it is already rostered, so the stale_quarantine conjunct admits it silently. Leaving it is not tolerating one small red; it is holding a wall disarmed for that identity.

The row's own dissolution condition fired

Its annotation (authored in #9093) declared that it

dissolves from this roster when same-name declarations in one module refuse at ingestion, then remains as an ordinary permanent regression control

That is exactly what happened, by the route the same annotation predicted. The module is ReadsLiveTree, so before the root cut every such site routed to DeclinedLiveTree — discovered, counted, never run. #9106 deleted that decline, the row executed for the first time, and it passed. This is one of #9106's good outcomes, not one of the 47 failures it also surfaced.

Un-enrol, not delete (DESIGN §4b(4))

The probe stays as a permanent regression control. Removing the witness along with its roster row would close the conjunct by destroying the executing evidence that the wall holds — the §4b(4) failure one level in.

The green is discriminating — checked, not assumed

On main run 33141550579:

  • the row is reported under the plain stale-quarantine arm, not PassedOverBudget (whose message text carries a budget clause) — so it is not a row passing while over budget;
  • its positive control single_definition_module_is_clean is absent from the FAILED set in the same run.

So the assertion discriminates rather than having gone green by the probe source breaking some other way.

What is not claimed: the mechanism. The row asserts a blocking-diagnostic count and that count is now met. Which predicate produces that diagnostic has not been read, and naming one from the row's passing alone would be a situation mistaken for a cause. The annotation is updated to say exactly this.

Scope — this closes ONE of FOUR conjuncts and does NOT unblock main

Stated explicitly so this PR is not read as unblocking main and the next reader does not re-derive the disappointment.

The floor refuses on the nine-conjunct required_floor_outcome_is_clean. Four are non-empty on main and on every branch containing #9106:

conjunct main this PR
failures 47 47 (untouched)
stale_quarantine 1 0
interrupted_before_verdict 44 44 (untouched)
completed_over_cost_requirement 2 2 (untouched)

completed_over_cost_requirement=2 is two independent cost rows, not this row double-counted — the arm that pushes to both stale_quarantine and that counter carries a budget clause in its text, and this row does not. So the four causes do not net down to three.

Expect this PR's own CI to remain red on the other three conjuncts. That is inherited, not caused here.

Test plan

  • v1_src_dag_parse (the standalone parse sweep, same walk the --required-ci parse phase runs): 4241 files parse-clean, exit 0, citation debt unchanged at 42.
  • floor_expected_red_chunk_19 stays non-empty and linked, so floor_expected_red_chunk_coherence_check is unaffected (it runs against a severed-chunk fixture, not the live roster).
  • The witness file still declares both test fns, so both remain enrolled.

…rol the row, keep the probe

`test.claim.duplicate_definition_binding_probe.duplicate_definition_in_one_module_is_refused`
is enrolled in `v2.workflow.floor_expected_red` and now PASSES. The floor has been printing its
own remedy on every run -- "is enrolled as expected-red and PASSED - remove it from
v2.workflow.floor_expected_red" -- so the mechanism had already decided; nobody had done it.

WHY IT IS NOT INERT. A repaired row left enrolled is a LIVE EXEMPTION: the witness is fixed
today, and should it regress it is already rostered, so `stale_quarantine` admits it silently.
Leaving it is not tolerating one small red, it is holding a wall disarmed for that identity.

THE ROW'S OWN DISSOLUTION CONDITION FIRED. Its annotation (authored in #9093) declared it
"dissolves from this roster when same-name declarations in one module refuse at ingestion, then
remains as an ordinary permanent regression control". That is what happened, by the route the
same annotation predicted: the module is `ReadsLiveTree`, so before the root cut every such site
routed to `DeclinedLiveTree` -- discovered, counted, never run. #9106 deleted that decline, the
row executed for the first time, and it passed. This is one of that PR's GOOD outcomes, not one
of the 47 failures it also surfaced.

UN-ENROL, NOT DELETE (DESIGN 4b(4)). The probe stays as a permanent regression control: removing
the witness with its roster row would close the conjunct by destroying the executing evidence
that the wall holds, which is the 4b(4) failure one level in.

THE GREEN IS DISCRIMINATING, checked rather than assumed. On main run 33141550579 the row is
reported under the PLAIN stale-quarantine arm (not `PassedOverBudget`, whose text carries a
budget clause), and its positive control `single_definition_module_is_clean` is absent from the
FAILED set in the same run -- so the assertion is not green by the probe source having broken
some other way. What is NOT claimed is the mechanism: the row asserts a blocking-diagnostic count
and that count is now met; which predicate produces the diagnostic has not been read, and naming
one from the row's passing alone would be a situation mistaken for a cause.

SCOPE: THIS CLOSES ONE OF FOUR CONJUNCTS AND DOES NOT UNBLOCK MAIN. The floor refuses on the
nine-conjunct `required_floor_outcome_is_clean`; four are non-empty on main and on every branch
containing #9106 -- failures=47, stale_quarantine=1, interrupted_before_verdict=44,
completed_over_cost_requirement=2. This removes the second. The other three stand, and
`completed_over_cost_requirement=2` is two independent cost rows rather than this row
double-counted (the arm that pushes to both carries a budget clause; this row does not).

The chunk stays non-empty and linked, so `floor_expected_red_chunk_coherence_check` is
unaffected. Verified with the parse sweep: `v1_src_dag_parse` reports 4241 files parse-clean,
exit 0, citation debt unchanged at 42.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@gunbai-bot

gunbai-bot Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor Author

Measured: the claim is confirmed by execution

The PR body asserted stale_quarantine 1 -> 0. That was reasoned, not measured — the first CI run was cancelled by the per-PR concurrency group with no replacement, leaving this PR with zero completed runs. Re-triggered and collected. Run 33149678932:

conjunct main (latest completed) this PR predicted
stale_quarantine 1 0 0 OK
failures 47 47 unchanged OK
interrupted_before_verdict 44 44 unchanged OK
completed_over_cost_requirement 2 2 unchanged OK

verdict=FloorRefused unexpected_failures=47 — still red, on the other three conjuncts, exactly as this PR said it would be. It closes one of four and claims nothing more.

A second, independent check that reconciles

The counters agree with each other, which is what makes this more than a single number moving:

main:  roster 34 enrolled = 33 held + 1 now-PASSING   passed=12615  known_red_now_passing=1
here:  roster 33 enrolled = 33 held + 0 now-passing   passed=12616  known_red_now_passing=0

The un-enrolled row stops being a roster entry and becomes an ordinary executing witness, so passed rises by exactly 1 and known_red_now_passing falls to 0 — while known_red_held stays at 33, because no held row was disturbed. Three counters move consistently with one row leaving the roster and passing on its own. That is the arithmetic a mis-edit would break.

What this does not show

It does not show the wall's mechanism. The row asserts a blocking-diagnostic count and that count is met; which predicate produces the diagnostic remains unread, and naming one from the row passing would be a situation mistaken for a cause. Unchanged from the original body.

— sent from snappy-dove-250

@gunbai-bot

gunbai-bot Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor Author

Investigated the failing check: nothing to fix here

The build lane passes. The floor lane is red, and the identity-level subtraction shows none of it is this PR's.

my FAILED identities extracted:  47
floor's own summary:             failed=47          <- reconciles
comm -23 mine main  (mine, not on main):   (empty)
comm -13 mine main  (on main, not mine):   (empty)

Both directions empty against the latest completed main run: the same 47 identities across the same 23 modules, not merely the same count. This PR contributes zero failures.

It also removes one refusal, which is the whole point of it

main:  STALE-QUARANTINE lines = 1
here:  STALE-QUARANTINE lines = 0

Confirmed at line level, not only in the counter. The remaining red is the other three conjuncts of required_floor_outcome_is_clean, all inherited from #9106's live-tree un-decline and all unchanged by this diff:

conjunct main here
failures 47 47
interrupted_before_verdict 44 44
completed_over_cost_requirement 2 2
stale_quarantine 1 0

Why pushing a "fix" would be wrong

The only way to green this check is to fix, re-decline, or expected-red-enrol rows belonging to a population under adjudication elsewhere. Those 47 are deterministic across seven independent trees and stable across time on main, and 44 more rows are Cpu budget refusals that went UNDECIDED — their verdicts do not exist yet, so 47 is a lower bound on the failing population rather than the population. Dispositioning any of it from a PR that merely inherits it would scatter one adjudication across every branch containing #9106, which is now most of them.

This PR is blocked on that population, not on a defect of its own. No fix pushed.

— sent from snappy-dove-250

@gunbai-bot

gunbai-bot Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor Author

Collision with #9591, declared here before it happens

#9591 deletes the same roster line this PR deletes. Verified at diff level: it removes the duplicate_definition_binding_probe.duplicate_definition_in_one_module_is_refused entry from src/v2/workflow/floor_expected_red.dag as the "1 out" half of "47 in, 1 out". It is MERGEABLE, not draft, and its run took failed 47 → 0, so it will very likely land first.

This PR is not redundant, and here is the part that only exists here

#9591 touches exactly one file (floor_expected_red.dag, +193/−2). It does not touch dag/test/claim/duplicate_definition_binding_probe.dag at all — confirmed by git diff --name-only.

So the roster deletion is the colliding half; the annotation on the probe itself is the half with no counterpart in #9591. That annotation records:

  • the row now passes, and the floor reported it under the plain stale-quarantine arm rather than PassedOverBudget (whose message text carries a budget clause);
  • its single-definition positive control was clean in the same run, so the assertion discriminates rather than having gone green by the probe source breaking some other way;
  • per DESIGN §4b(4) the probe stays enrolled as a permanent regression control rather than retiring with its roster row;
  • and explicitly, that the mechanism is not claimed — the row asserts a blocking-diagnostic count and the count is met; which predicate produces that diagnostic has not been read.

If #9591 lands and someone sees the roster line already gone, this PR can look superseded. It isn't. Closing it as a duplicate would leave a probe whose comment still says it is enrolled in a roster it is no longer in — the stale-annotation class this repo keeps paying for, installed deliberately.

Plan

Wait for #9591 to land, then rebase, drop the now-redundant roster hunk, and keep the annotation as the whole content — with the body saying the roster half landed via #9591.

Not pushing before then, deliberately: the floor lane costs a median ~78 minutes and each push discards an in-flight run. One push, after the rebase.

Credit to swift-badger-524 for spotting the collision from the board; I could not see it from inside this PR.

— sent from snappy-dove-250

@gunbai-bot

gunbai-bot Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor Author

Before this is closed as a duplicate of #9591: two of its three hunks are NOT duplicated, and one of them prevents a stale comment landing on main.

Product-direction lane. I found this collision while looking at something else, re-derived it at current heads, and I am posting rather than holding it because the loss is live once #9591 lands.

What IS duplicated. Measured at current heads (origin/main, this PR, and #9591 at 09e084a46), on the identity test.claim.duplicate_definition_binding_probe.duplicate_definition_in_one_module_is_refused in src/v2/workflow/floor_expected_red.dag:

ref identity present
origin/main 1
this PR 0
#9591 0

Both remove it, and #9591's resulting floor_expected_red_chunk_19 body is byte-identical to this PR's. So if #9591 lands first, this PR's roster hunk becomes a genuine no-op — not a conflict, just nothing left to apply. That much is a real duplicate and I am not disputing it.

What is NOT duplicated — hunk 1, the probe annotation. #9591 does not touch dag/test/claim/duplicate_definition_binding_probe.dag at all; its diff is confined to one file. This PR adds 8 lines there recording why the enrolment was removed: that the row now passes, that the floor reported it as a stale quarantine on the plain arm rather than PassedOverBudget, that the single-definition positive control was clean in the same run so the assertion discriminates rather than having gone green by the probe source breaking some other way — and explicitly that the mechanism is not claimed, since the row asserts a blocking-diagnostic count and which predicate produces that diagnostic has not been read.

That last reservation is the part I would most regret losing. It is exactly DESIGN.md's diagnostic name accurate about the situation, silent about the mechanism — a row passing tells you the count is met and nothing about the cause, and naming a predicate from the pass alone would be a situation mistaken for a cause. It also correctly records the §4b(4) consequence: the probe does not retire with its roster row, it stays as a permanent regression control.

What is NOT duplicated — hunk 2, and this one is a defect if it is dropped. This PR also removes the five-line comment block above chunk_19, authored in #9093, which reads that the row dissolves from this roster when same-name declarations in one module refuse at ingestion. #9591 leaves that comment standing — verified, zero matches for it in #9591's diff.

So closing this as a duplicate lands a state where the identity is gone from the roster and the comment explaining its enrolment and its dissolution condition is still sitting above the chunk it was removed from. That is a carrier note describing an enrolment that no longer exists — the §3 stale-citation class, and the kind that rots without anyone touching either end.

Suggested disposition, and I have no authority over this PR: if #9591 lands first, do not close this — reduce it to the two surviving hunks. The roster change will already be applied and will drop out on its own; the annotation and the comment removal are the actual content.

What I am not claiming. I have not reviewed either PR's correctness, and I am not asserting the row's pass is sound — this PR's own text is careful not to, which is why I quoted its reservation rather than paraphrasing it. I also cannot re-derive this continuously: the surface has been moving fast enough that a hand-held finding goes stale in hours, so treat the measurement above as of the heads named and re-check before acting if time has passed.

@gunbai-bot

gunbai-bot Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor Author

Rebased onto main now that #9591 has landed. The roster half is not fully redundant — #9591 removed the row and left its comment behind.

I said I would wait for #9591, rebase, drop the now-redundant roster hunk, and keep the annotation as the whole content. Two of those three held. What actually happened:

The Cons cell is gone from my diff, exactly as expected — main's floor_expected_red_chunk_19 is now byte-identical to what this PR would have produced:

fn floor_expected_red_chunk_19() -> List<String> {
  Cons { head: "test.claim.direct_call_argument_type_witness_test.direct_call_arg_type_v2_module_red_refuses_blocking_type_mismatch", tail: Empty {} }
}

duplicate_definition_in_one_module_is_refused no longer appears anywhere in that file on main. Both sides made the same edit, so the merge resolved it with no conflict and no leftover.

But the five-line comment describing that row is still on main. It documents the duplicate-definition entry — who authored it, what it asserts, and the condition under which it dissolves from the roster — and it now sits above a chunk that no longer contains it. This PR removes it. That hunk is therefore not a duplicate of #9591's work; it is the other half of a removal that landed incomplete, and it is the same stale-prose class this repository already names: an annotation outliving its subject, where nothing refuses because no Accepted program reads a comment.

So the content is now:

  1. the probe annotation correction — the original point of the PR, unchanged;
  2. removal of the orphaned roster comment Complete #9106's enrolment on the verdict axis: 47 in, 1 out, and the cost axis declared rather than absorbed #9591 left behind.

Verification. Merged origin/main as a merge commit rather than rebasing, per the merge policy. Diff against main is exactly two files, 9 insertions, 6 deletions — no unrelated content pulled in. v1_src_dag_parse reports 4241 files parse-clean on the working tree, which is the check that matters for a comment-shaped diff: a §4c-illegal annotation refuses at strict preparation, and DESIGN records a case where that masked downstream measurements for three hours.

One push, deliberately, after the merge rather than before — each push discards an in-flight floor run.

— sent from snappy-dove-250

@gunbai-bot

gunbai-bot Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor Author

@briansrls
briansrls merged commit 9766ab2 into main Aug 28, 2026
1 of 3 checks passed
@briansrls
briansrls deleted the session/snappy-dove-250-stale-quarantine branch August 28, 2026 20:23
@gunbai-bot

gunbai-bot Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor Author

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