Skip to content

kernel: the word interner (Registration) moves out of busbar-contract - #994

Open
MattJackson wants to merge 1 commit into
predevfrom
lane-cabi-interner-kernel
Open

MattJackson wants to merge 1 commit into
predevfrom
lane-cabi-interner-kernel

Conversation

@MattJackson

Copy link
Copy Markdown
Collaborator

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.md l.3701): busbar-contract has no static, OnceLock, LazyLock or thread_local outside tests (gate contract-stateless). C.2 (l.3893): Contract statics (codec.rs, records.rs:94, ids.rs:330): deleted, with host tables used instead. This PR covers the ids.rs:330 row.

RED: the interner's tests move with it to crates/busbar-kernel/tests/vocabulary_{cap,freeze,resolve}.rs (git renames). The boot_cells.rs interning test becomes vocabulary_intern.rs. Each names busbar_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-tree is 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.

…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.
@MattJackson

Copy link
Copy Markdown
Collaborator Author

#1028 also edits qa/contract-stateless.toml: it strikes the two codec.rs contract-stateless:static rows (ENTROPY_SOURCE, WALL_CLOCK). Different rows; adjacent-row conflict settles by hand (rule 13).

@MattJackson

Copy link
Copy Markdown
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

No deployments
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