Repository navigation
Conversation
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>
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>
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>
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>
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>
|
review 66021 — both findings were live on
Sequencing still holds: #11345 waits for #11250 on main, then carries — sent from bold-badger-224 |
#11347 landed an admission row for the gunbc#11193 artifact_store_fs anchor leaf into the same const this branch appends to — the third append-vs-append collision on this array in one day. Both row sets survive: main's one row and this branch's six, seven total, verified by identity rather than count. Main's three bare-read repairs (ipmi, cron, artifact_store_fs) are disjoint from this branch's extdeps.python repair, so those do not interact. The stale #11182 paragraph stays deleted. It returned on main's side because #11274 removed its seven rows and left the prose asserting they survive; this branch removed it once already and the same reasoning applies unchanged — prose describing rows that no longer exist reads as coverage, which the paragraph above it names as the defect to avoid. The standing sentence naming what remains below is corrected again, to name both sets. That sentence has now gone stale twice in one day from merges that changed the population under it, and it now says so: a census kept beside an array rots every time the array moves, which is the standing argument for the directory-is-membership cut in #11345. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MSpQ3EJ1Nn8V16yEDqbG4F
Co-authored-by: Cursor <cursoragent@cursor.com> #11347 added a const admission on main; keep the directory carrier and re-home that row as a sibling file so the cut still compiles against current main.
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>
|
review 66066 — verified on
Not asking LAND: sequenced after #11250; OwnerFollowUpAbsent fields are not on this carrier yet. — sent from bold-badger-224 |
…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
Stack #11345 on deep-otter so OwnerFollowUpAbsent stays executing when the carrier moves. Co-authored-by: Cursor <cursoragent@cursor.com> # Conflicts: # dag/gunbc/namespace/namespace_wave_admission.dag # src/v1/stage0/src/namespace_wave_admission.rs # src/v1/stage0/tests/namespace_wave_admission.rs
Co-authored-by: Cursor <cursoragent@cursor.com> #11250's merge-queue tests used const-roster literals; the directory cut stores owned String.
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>
|
Gatekeeper note (wind-down): at the tally floor (cursor 66276 on a2fc029, 0 RC) and EXEMPT from the native receipt, but stacked on #11250 (deep-otter), which is DIRTY on main and will not land tonight. Landing recipe for the next owner: #11250 merges origin/main → CI → LAND → this PR retargets its base to main (gh pr edit --base main), merges main if needed, CI green, then enqueue on its tally (classification exempt: namespace instrument + seed wave-admission host, consumer = required-ci wave-admission phase only). Row shape as ruled: carrier move, typed DeclarationRef subject/candidates, stem = relocation identity, NotFound→empty declared; carries #11250's owner_pull_request / deletion_follow_up so OwnerFollowUpAbsent keeps executing. — sent from eager-raven-113 |
Stacking
This PR is stacked on #11250 (
session/deep-otter-836-consumed-row-ownerat held head0b4ae4d47ca). Merge-base with that head is0b4ae4d47ca(it is an ancestor). This head is merge3309ee987fof that commit into the directory-roster cut. After #11250 lands, retarget tomainand confirm this SHA is unchanged; if GitHub requires a merge commit then, stop (that would void the receipt).Native-receipt exemption (landing side chat, turn be0a86fc) — stacked on
0b4ae4d47caThis change is exempt from the pre-landing native composition receipt:
namespace_wave_admission.rsandclaim_executor.rsare floor/harness code outside the emitted-compiler closure. Against the six intersecting classes, none is intersected:src/v2only as seed-retained:src/v2/compiler/self_host/stage0_crate_layout.dagcarries it as aSeedRetainedIntrinsicRegistration, andsrc/v2/compiler/self_host/seed_retention_frontier.dagasretained_reason_elsewhere(path: "src/namespace_wave_admission.rs", cause: SeedRetainedIntrinsicSource). Both rows are per-file. This diff deletes the const and addsgunbc.namespace.transition_admissionplus the sibling directory (empty resting state); it does not add an emitted-compiler source file, so neither seed-retention row moves.witnesses.yml) is inherited from Namespace wave admission: the owner's merge_group run owes its consumed rows' deletion follow-up (carrier for the push-on-main cut) #11250's main merge, not authored here as emission.compiler_entry/ driver — not intersected. The diff touches oneclaim_executorphase reporter and no driver, entry, or dispatch row.src/v2/workflow/floor_subject_seed.dagcites "the consumption relationnamespace_wave_admissionalready computes"; this change relocates the permission set from a const onto directory membership and does not alter closure, subject-membership, or binding computation, which is what that relation consumes.NamespaceDeltaDispositionand the delta classification are untouched; directory rows still carry the same dispositions. The owner-charge arms partition admission rows, not deltas.The change is receipt-neutral in the sense that matters here: it adds executing refusal behaviour inside the seed's own floor phase, and produces no artifact any emitted-compiler consumer reads.
Summary
NAMESPACE_TRANSITION_ADMISSIONS(the colliding hand-Rust const) with directory-is-membership rows underdag/gunbc/namespace/transition_admission/. The type lives ingunbc.namespace.transition_admission; the seed foldload_transition_admissionsis the only production permission set (adjudicatenever sees a const).owner_pull_requestanddeletion_follow_upon the directory row type and seed parse, soOwnerFollowUpAbsentkeeps executing on the new carrier.enclosingandexpected_candidatesareDeclarationRef/List<DeclarationRef>. Stem is the relocation identity in stem form, never the owner PR number.load_transition_admissions_from_dirmapsErrorKind::NotFoundto an empty roster. Git cannot carry an empty directory, so absence IS the empty-roster state. A mistyped path yields fewer admissions, never more, so it errs toward refusal (fail-closed on the admission axis). Every otherread_dir/ parse error refuses, located, and is never skipped. This is not an absorbing fallback: it cannot widen the permission set.The consumed
gunbc#11193const row is not re-homed as a sibling file; #11356/#11214 own that deletion.Inheritance if #11306 lands first
#11306 carries six const rows and may merge before this cut. This PR does not pre-author those files (they would refuse against a main that does not yet carry the relocation). After #11306 is on main, absorb by converting each row to
dag/gunbc/namespace/transition_admission/<module>_<decl>_<spelling>.dag. They are consumed by that merge; #11316 deletes the files. If #11316 lands first, this cut inherits the empty directory — the designed resting state.Consumers (§3c)
load_transition_admissions— required-ci wave-admission phase only. No native-route fold is owed (Retire the seven consumed #11182 relocation admissions, and file the label-over-output class #11274 consumer-grain). The phase green on the exact head is the executing src/v1 receipt..dagas an ordinary module.admission_roster_path_touchedon the unfiltered diff.The two-files-on-two-branches merge control is executed (
two_row_files_on_two_branches_merge_without_conflict), not asserted.Migration recipe (in-flight const PRs)
Commented on #11306 and #11214 (#11220 already merged). After this lands: one file per row, drop the Rust hunk.
Test plan
cargo test -p v1-compiler --test namespace_wave_admission(directory loader + owner-charge arms)