Repository navigation
kernel: the word interner (Registration) moves out of busbar-contract - #994
Open
MattJackson wants to merge 1 commit into
Open
MattJackson wants to merge 1 commit into
MattJackson wants to merge 1 commit into
Conversation
…oves out of busbar-contract
THE DESIGN A.8 "Statelessness" (BUSBAR-1.6.0.md l.3701) and C.2 (l.3893: "Contract statics
(codec.rs, records.rs:94, ids.rs:330): deleted, with host tables used instead"). The image's one
vocabulary is process state, so it is the host's: busbar_kernel::vocabulary holds
Registration, MAX_VOCABULARY, VOCABULARY and FROZEN, moved verbatim but for the docs that
reasoned about a plugin reaching the interner (a plugin's closure is the contract, which now
holds none of it). Callers in the composition root and busbar-llm name busbar_kernel::Registration;
plane crates' docs name the host's interner in prose. qa/contract-stateless.toml strikes the
three ids.rs rows (LazyLock, FROZEN, VOCABULARY) this drains.
RED: the vocabulary tests move with it (busbar-kernel tests/vocabulary_{cap,freeze,resolve,intern}.rs),
naming busbar_kernel::Registration; the contract-stateless ledger no longer forgives ids.rs.
This was referenced Oct 14, 2026
Collaborator
Author
|
#1028 also edits qa/contract-stateless.toml: it strikes the two codec.rs |
Collaborator
Author
|
Rule 20 note from #1030 (row 155): qa/contract-stateless.toml, disjoint rows struck (services.rs OnceLock/KEPT/FILLING, codec.rs USAGE_TAP_FAULT_LATCH/REPORTER). A test merge is clean. |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
CONTRACT-ABI lane, item 3 (part 1 of the contract statics): the word interner moves into the kernel.
THE DESIGN A.8 "Statelessness" (
docs/design/BUSBAR-1.6.0.mdl.3701):busbar-contracthas nostatic,OnceLock,LazyLockorthread_localoutside tests (gatecontract-stateless). C.2 (l.3893): Contract statics (codec.rs,records.rs:94,ids.rs:330): deleted, with host tables used instead. This PR covers theids.rs:330row.crates/busbar-kernel/src/vocabulary.rs(new) holdsRegistration,MAX_VOCABULARYand the image'sVOCABULARY/FROZEN, moved verbatim frombusbar-contract/src/ids.rs:312-479. Only the docs changed: they reasoned about a dynamically loaded plugin reaching the interner through its own copy of the contract. A plugin's closure is the contract alone (Part 2 deps: bump schemars from 1.2.1 to 1.2.2 #40(a)), and the contract no longer holds the interner, so the docs now say that.busbar_kernel::{Registration, MAX_VOCABULARY}are re-exported at the crate root.busbar-contractloses the type, the statics and theirlib.rsre-exports. Thecaps/egress.rsdoc link (in adeny(broken_intra_doc_links)module) becomes prose.root/kernel.rs,plane_node.rs,durability/mod.rs,tests/kernel.rs) andbusbar-llm(engine/build_runtime.rs,engine/tables.rs, unit tests) now namebusbar_kernel::Registration. In the plane cratesa2a/llm/streaming, the docs name the host's interner in prose, because a plane names no kernel crate.busbar-plane-decisionsis left untouched: four open PRs delete it (P5 rulings: base layer lays pinned transports; linked-dropped-features and plugin-closure-deps read pinned plugins (stacked on #894, #901) #935/plane-delete-test: a pinned plane is deleted by its pin and feature (stacked on #888) #894/P5: busbar-plane-decisions leaves for its own repo, pinned (/status rows 106/107; stacked on #838) #888/busbar-contract: YAML readers behind ayamlfeature, enabled by busbar-kernel #897). Its doc link is only a rustdoc warning and goes with the file.qa/contract-stateless.tomlstrikes the threeids.rsrows this drains (LazyLock,FROZEN,VOCABULARY): 44 → 41. The drain-only ledger turns a reintroduced contract interner red.RED: the interner's tests move with it to
crates/busbar-kernel/tests/vocabulary_{cap,freeze,resolve}.rs(git renames). Theboot_cells.rsinterning test becomesvocabulary_intern.rs. Each namesbusbar_kernel::Registration, so none compiles on predev. Each stays its own test binary because the vocabulary is the process's.Lane TODO note: item 5, "ed25519-dalek → ring", is struck (coordinator ruling 2026-10-14). The ARCHITECT 2026-10-02 refusal stands (
deny.toml:90-97).Shared files (rule 20):
git merge-treeis clean against every non-draft open PR touching these files: #981, #944, #941, #935, #927, #913, #904, #897, #894, #888, #863, #862, #817, #805, #804 and #503.No dependency change. No behaviour change: the same interner, ceiling and freeze, in the host.