Repository navigation
Retire the gunbc#11193 anchor admission row, consumed by its own landing - #11356
Conversation
#11347 landed the three bare-name import fixes, so the transition this row admitted is now PRESENT AT THE BASE and there is no delta left for it to admit. A consumed row refuses roster edits and landing (base equals head), so main's push fails namespace-wave-admission until it goes. This is the repayment half of the debt #11347's body declared, paid adjacent to the borrowing rather than deferred: the roster's resting state is empty, and it is a place rows pass through rather than live. Deletes the row and the doc paragraphs that described it -- a surviving doc block above an emptied array would assert a row that no longer exists. The general commentary on consumed rows and the #11182 relocation distinction is untouched. cargo check -p v1-compiler --lib: clean. cargo fmt --all --check: clean. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D2AF1pri3WJkug5AtCYLGF
…ation set alone" Review 66052, correct and against me. I deleted the doc paragraphs describing my own row and left the neighbouring ones asserting a population the declaration no longer carries: ":1774" "What remains below is the #11182 relocation set alone" ":1803-1809" "these seven still admit a real delta and deleting them would refuse a live transition" Both are false against `&[]`. This is the exact shape the same block condemns two lines up -- "prose naming ROW ONE and ROW TWO when neither row exists is worse than no prose, because it reads as coverage" -- and the stale-citation defect of DESIGN section 3. The seven-row claim was ALREADY stale on main, where the array held one row. It is repaired here rather than left because this file's own doctrine says a consumed row's deletion comes due on the roster's OWN next touch, and this is that touch. KEPT: the #11156 narrative and the base-presence distinction it draws, which is why a consumed row goes. That reasoning is still true and still the point. cargo check -p v1-compiler --lib: clean. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D2AF1pri3WJkug5AtCYLGF
|
Fixed in Both claims are false against
And the review's sharpest point is that this is the shape the same block condemns two lines up: "prose naming ROW ONE and ROW TWO when neither row exists is worse than no prose, because it reads as coverage." I quoted that doctrine in my own commit message while violating it one paragraph below. On the "already stale on main" point — agreed, and it does not excuse leaving it. The seven-row claim was stale before this PR, since main's array held one row. But this file's own doctrine is that a consumed row's deletion comes due on the roster's own next touch, and this is that touch. Inheriting the stale prose to the next lane is exactly what the Kept deliberately: the Also confirming the two checks the review made that I had not:
— sent from sunny-carp-329 |
…as its owner The floor red on 67a369e was a single blocker: '1 consumed admission due for correction or deletion'. main's #11193 row arrived here with #11347 and was consumed the moment #11347 landed, and the roster charges a consumed row's deletion to its next toucher -- this branch's fifteen rows are that touch. gunbc#11356 is the CANONICAL owner of this deletion and says so; this is the same deletion, taken here because the wall charges it to whoever touches the roster next and #11356 is not queued. Identical deletions merge cleanly when #11356 lands. Its describing paragraph goes with the row rather than being left naming an absent subject, which is the stale-citation shape DESIGN §3 forbids -- prose describing rows that do not exist reads as coverage. This is the THIRD time an inherited row has been consumed under this branch (#11156 -> #11240, #11182 -> #11274, #11193 -> #11356): a re-integrate that clears a DIRTY head inherits main's admission rows, and their trigger landing reds this head. gunbc#11345 cuts the const roster to directory rows and ends the class. cargo check exit 0; 16 entries = 1 struct + this branch's 15. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015R9M9cY4iaqsqeaSDpT7g1
…h by the wall #11347 landed, so the artifact_store_fs anchor relocation is at base and its one admission row reports CONSUMED — 0 unadjudicated, 0 stale, 1 consumed due for deletion. The wall charges a consumed row's deletion to the roster's NEXT TOUCH, and this branch is that touch again by virtue of carrying its own six rows. APPLIED UNDER THE STANDING RULING RATHER THAN RE-ASKED. The identical question was decided today for the seven #11182 rows: the wall is designed to charge the next touch, identical deletions on both sides merge cleanly in git, and waiting costs hours of serialized CI and review on another lane's PR plus a re-run here, against one push. #11356 owns the same retirement and is not emptied by this — it keeps whatever else it carries, exactly as #11274 kept its failure-mode row. Deleting it removes nothing that could still fire: with the transition present at the base there is no delta left for it to admit. Its doc paragraph goes with it rather than being left describing a row that no longer exists. Verified by identity: the extdeps_external_authority_anchor spelling is gone and no #11193 reference survives anywhere in the file; this branch's six stand unchanged at RepositoryVisibility 1, PublicRepository 2, PrivateRepository 3. The standing sentence above the array is corrected for the THIRD time in one day, and now says so. This one retired a row this branch never authored, which is the sharpest form of the argument for the directory-is-membership cut in #11345: a census kept beside an array that every lane appends to rots continuously. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MSpQ3EJ1Nn8V16yEDqbG4F
#11356 landed and retired the gunbc#11193 anchor admission row — the row this branch had already retired when the wall charged it to this touch. The identical deletions reconcile exactly as the standing ruling predicts: the row is gone from both sides and this branch's own six remain. Both sides also independently removed the stale #11182 prose, which is the fourth time that paragraph has been repaired today by two different lanes reaching the same conclusion from the same rule. One sentence of main's is kept rather than dropped with its body: main's revision says empty is the roster's resting state, which is true in general and false in the instant after this merge, since six rows are present. It is folded in as a sentence that stays true either way — the six are consumed by their own merge and #11316 is already authored to delete them, so a populated roster is a transition and never a steady state. Verified by identity: six rows, RepositoryVisibility 1, PublicRepository 2, PrivateRepository 3; no #11193 row and no #11182 prose survives. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MSpQ3EJ1Nn8V16yEDqbG4F
Both sides deleted the consumed #11193 row -- this branch took it on my parent's ruling because the roster charges a consumed row to its next toucher and #11356 was not queued, and #11356 has now landed as the canonical owner. Git reports that as a conflict rather than a clean convergence because this branch also carries fifteen rows in the same region, so the resolution takes main's post-deletion file and splices those back in. 16 entries = 1 struct + this branch's 15. #11193 is gone from both sides and is not resurrected -- asserted in the splice. cargo check exit 0. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015R9M9cY4iaqsqeaSDpT7g1
…rows Conflict was the whole NAMESPACE_TRANSITION_ADMISSIONS block. Main emptied the roster in #11356; this branch fills it with the 37 string_eq rows. Neither side could be taken whole, so both were audited. TAKEN FROM MAIN: the file entire, including its #11356 prose and its correction that the #11182 relocation rows are gone and the claim they survived was already stale. This branch's older paragraph asserting those seven "still admit a real delta" is dropped -- main's identity check answers the other way and gunbc#11274 retired them. NOT TAKEN FROM MAIN: the closing sentence "THE ROSTER IS EMPTY AGAIN, which is its resting state". True on main, FALSE here, because this branch refills the array. Rewritten to keep main's correction while saying plainly that what follows is a different population with its reason stated at its own site. RESTORED FROM THIS BRANCH after the audit found it dropped: the THIRTY-NINTH DISSOLUTION entry naming the gunbc#11193 anchor row and the identity check that admitted its deletion. Main retired the same row in #11356 but its prose says only that two rows went, not which. The entry is the only place in the file that names it, so it is kept with a note that main landed the same retirement -- one retirement, recorded once, by the side that wrote down what it was. RE-AUDITED BY IDENTITY against the new base: none of the nine v2.lens modules carries the transition yet, so all 37 rows still admit a real delta and none is consumed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NtQbXXBvrT2onJjxKswVYf
…ep this branch's forty SCM rows on main's roster Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01534A1UAkjSmypHMjNWw11e
Sixth re-integration, fifth append-vs-append on this one const. Main accumulated three commits in the file — #11356 emptying the roster, #11256, and #11214 landing fifteen rows for the operator-supplied-token relocation — producing seven conflict regions. Both row sets survive: fifteen plus six, verified by spelling rather than by count. Main's own "THE ROSTER IS EMPTY AGAIN, which is its resting state" paragraph is dropped, and not on this branch's preference: it became false ON MAIN when #11214 landed fifteen rows above it and nothing updated the prose. Keeping it would have carried a claim contradicted by the array directly beneath it, which is the stale-citation shape this file names as the defect to avoid and which this branch has now repaired five times. The sentence naming what remains below already records that it has gone stale repeatedly; this merge is another instance and does not change its argument. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MSpQ3EJ1Nn8V16yEDqbG4F
… wall #11214 landed, so the operator-supplied-token relocation is at base and its fifteen admission rows report CONSUMED — 0 unadjudicated, 0 stale, 15 consumed due for deletion, with this branch's own six adjudicating cleanly. The wall charges a consumed row's deletion to the roster's next touch and this branch is that touch again. Applied under the standing ruling rather than re-asked; this is the third time it has fired on this branch and the second time for rows another lane authored. #11259 is the authored deletion draft for these fifteen and is not emptied by this — it keeps whatever else it carries, as #11274 and #11356 did. Their paragraph goes with them rather than being left describing rows that no longer exist. Verified by identity: no #11214 reference survives anywhere in the file; this branch's six stand unchanged at RepositoryVisibility 1, PublicRepository 2, PrivateRepository 3. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MSpQ3EJ1Nn8V16yEDqbG4F
…11345) * Cut the namespace transition-admission roster to directory membership. Delete the hand-Rust const so permission is one .dag file per relocation; appends and consumed deletions no longer collide on a shared array. Co-authored-by: Cursor <cursoragent@cursor.com> * Type expected_candidates as DeclarationRef, not a string list. The wall still joins declaring-module identity; the authored row now names those identities with the same declaration-reference type as enclosing. Co-authored-by: Cursor <cursoragent@cursor.com> * Supersede the const-ness-as-safety claim in the roster carrier. Permission stays authored and reviewable; the vehicle is directory membership, not a const. Missing directory is the empty roster and admits fewer rows, never more. Co-authored-by: Cursor <cursoragent@cursor.com> * Home the empty-roster standing record on the membership module. The const's prose about what remains used to rot beside the array. Empty-is-not-permissive and the #11306/#11316 inheritance live on gunbc.namespace.transition_admission; this cut still inherits six files or zero, never a pre-migration onto an unlanded PR. Co-authored-by: Cursor <cursoragent@cursor.com> * Drop the leftover const census and refuse a phantom candidate leaf. The #11182 permission paragraph had attached to WaveAdmissionPopulation after the const died. Candidate DeclarationRef.decl_name must equal Binding.spelling. Co-authored-by: Cursor <cursoragent@cursor.com> * Enumerate the directory-row parse helpers on the seed census. The bijection sentence on that row was false after the const was replaced; name the helpers the loader actually added. Co-authored-by: Cursor <cursoragent@cursor.com> * Do not re-home the consumed gunbc#11193 admission as a directory row. Co-authored-by: Cursor <cursoragent@cursor.com> #11356 owns that deletion (also carried on #11214). Copying it onto the new carrier would duplicate their receipt and keep a consumed row on a roster touch. * Own the used_row fixture strings; Binding is no longer &'static. Co-authored-by: Cursor <cursoragent@cursor.com> #11250's merge-queue tests used const-roster literals; the directory cut stores owned String. * Stop claiming the admission roster is a .rs file. Row files are .dag and in sweep; roster_touched still reads the unfiltered diff because prefix match is not in_sweep_scope. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Deletes one row and the doc paragraphs that described it. Nothing else.
Why now
#11347 landed the three bare-name import fixes at
a745dac28d5. The admission row it carried admitted a namespace delta between base and head — and with the transition now present at the base, there is no delta left for it to admit. A consumed row refuses roster edits and landing (base equals head), so main's own push failsnamespace-wave-admissionuntil this lands.This is the repayment half of the debt #11347's body declared, and it was always mine. It is paid adjacent to the borrowing rather than deferred, which is the entire reason the fix was extracted from #11193 in the first place: coupled to a blocked PR, the row would have sat in the roster across an indefinite wait and then blocked every lane's landing at an unscheduled moment.
The roster's resting state is empty. It is not a place rows live; it is a place rows pass through.
What else changed, and why it is not scope creep
The doc block above the array described the row in detail — "ONE ROW, gunbc#11193: …". Deleting the row and leaving that prose would leave a doc block asserting a row that no longer exists, which is worse than either state alone. Those paragraphs go with it.
Untouched: the general commentary on consumed rows, and the #11182 relocation distinction (a consumed row goes because its transition is present at the base, not because the array was being emptied).
Verification
cargo check -p v1-compiler --lib— cleancargo fmt --all --check— clean (pre-commit hook)&[], its documented resting state🤖 Generated with Claude Code
https://claude.ai/code/session_01D2AF1pri3WJkug5AtCYLGF