Skip to content

Pre-step-3: land rust_item_host_observation as the changed-item denominator and admission wall — its only prior realization (rust_item_census.py) was deleted by the bankruptcy and no route replaced it - #9510

Closed
briansrls wants to merge 3 commits into
mainfrom
session/loyal-ram-883-origin

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

Auto-opened by session-dashboard for session loyal-ram-883.
Pushing to session/loyal-ram-883-origin advances this PR.

Worker attestation

Before flipping this PR to ready for review, confirm each item:

  • Title describes the change (not the session id or branch).
  • PR body summarises what and why (replace the TODO below).
  • Tests run: name the command (e.g. npm test, cargo test) and the result.
  • If this closes a work item, the body contains a Closes #N directive.
  • No commits on this branch are surprises (no fork/cherry-pick I did not make).
  • No secrets / credentials / large binaries staged.

Summary

TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.

Test plan

  • TODO: list the commands that ran (or "no tests changed; relied on CI") and the outcome.

Brian Searls and others added 3 commits August 27, 2026 10:32
…make it the changed-item denominator the seed-growth admission join was waiting for

The census had one realization, scripts/rust_item_census.py, and gunbc#9132 deleted
it with the measurement corpus. Nothing replaced it, so from 2026-08-24 no route in
this repository could enumerate Rust items at identity grain -- and no rung drop was
declared, because the census's consumers were lanes rather than modules and no
dependent could refuse. The scaffold protecting it is a live instance of the rule
DESIGN 4b(3) added on 2026-08-26: its trigger read "producer lands and enrolls;
Python script deleted", a conjunction whose second half an unrelated cut satisfied
while the producer never landed.

gunbc.rust_item_scan reads items from rustfmt-normalized source with its
item-keyword population taken FROM extdeps.languages.rust.syntax rust_item_forms
rather than re-coined -- the deleted script's regex ITEM_PATTERNS were exactly the
second roster this reader refuses to author, and the census predicted its own
failure from it. It is not a parser and does not claim to be: it refuses on any
structural line it cannot classify, which is what makes an incomplete recognizer
safe rather than quietly smaller.

gunbc.rust_item_host_observation supplies TWO populations from TWO functions, which
is the condition gunbc.seed_growth_admission's own forward-freeze row set on
enrolment. seed_growth_join_declarations is replaced by the split pair plus
seed_growth_admit_change; an unattributed hand-Rust change REFUSES rather than
reporting an empty delta; deletions offset nothing; ExistingSeedItemModified carries
capability_origin, with no value naming a capability originated in Rust.

Rung: mechanically preventable AS TO THE ROUTE and no higher -- the wall executes
under witnesses and no required CI phase invokes it yet. Arming it is a separate
change. The terminal seed-bridge roster is deliberately not authored here.

Hand-Rust delta: zero. Every file is .dag.
…s capability was modeled before it, and that the model constrains it

CapabilityAlreadyModeled was payload-free, so it could be satisfied by
inspecting the final candidate -- which cannot distinguish a model that
existed before its realization from a model authored beside the realization
that inspired it. That distinction is the whole question the arm existed to
ask, so the vocabulary moves to gunbc.capability_origin and grows a payload:
an authority, and where a capability introduced in this change came from.

THREE TESTS, ESTABLISHING THREE DIFFERENT THINGS. The leaf test proves Rust
owns no semantic decision. The origin test proves the semantics predate the
Rust: remove the hand-Rust delta, build E1, and the authority must still hold.
The conformance test proves the model CONSTRAINS the Rust rather than merely
agreeing with it: mutate the realization alone, and the predicted evidence must
go red while E1 stays green. A retro-described implementation passes the first
two and fails the third, because its fixtures were derived from the behavior
they check -- which is why FixtureProvenance refuses GeneratedByRealization
even when the mutation went red.

ADDITIONS ARE COVERED, NOT ONLY MODIFICATIONS. A newly added item can carry a
perfectly good justification row and still have been retro-modeled in the same
change, so the relation participates in the addition arm and roster membership
is no longer sufficient.

THE EPOCH IS IDENTIFIED AND EXPIRES. ModelEpochRef names the exact derived E1
population, and the subject carries both the base and the head it was derived
against. A probe taken against another base refuses rather than admitting --
the reversed-diff class stated as evidence rather than as advice.

RUNG: the vocabulary is structural (no arm means "the Rust behaves this way,
therefore this is the intended model", and no not-executed arm has a path to an
admitting verdict). The tests themselves are executed by nothing yet, so every
real call today refuses. The next-rung trigger names the capability.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
… the length check (review 56637)

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

gunbai-bot Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Closing: this branch's content is already on main, and its only real delta is a deletion of someone else's roster row.

session/loyal-ram-883-origin merged as #9444 (main 7e9200382e). The file list this PR displays — ten files, ~4,000 additions — is computed against a stale merge base and re-presents merged content; the repo squash-merges, so no ancestry links this head to main and the rollup falls back to the old base.

The actual branch-against-main delta is two lines:

-import gunbc.emitted_closure_compile_seed_growth { emitted_closure_compile_seed_growth_justification }
-    emitted_closure_compile_seed_growth_justification,

That row landed on main from another lane after this branch was cut. seed_growth_justification_roster() is a closed roster, and the note in that module is explicit that taking either side of a roster merge whole silently deletes the other branch's authority obligation rather than conflicting. Merging this PR would do exactly that — drop a peer's justification row with no conflict raised, which is the failure that rule exists to prevent.

So there is nothing here to land and one thing here to lose. Closing rather than flipping to ready.

Sibling disposition: #9426 should also be closed as already merged — same cause, measured on its comment thread. Its three "conflicted" files are all cases where its branch is the smaller side, and merging it would revert #9444's origin relation.

The general tell, worth stating once: after a squash merge, git merge-base --is-ancestor returns false for work that is fully merged, so ancestry reports it as unmerged and a stale-base file list makes it look substantial. Content identity against main is the only reliable test.

— sent from loyal-ram-883

@gunbai-bot gunbai-bot Bot closed this Aug 27, 2026
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