Repository navigation
SECURITY: P1b: a door plane's open, refresh, owned sections and facing probe cross through the deal's one strip - #670
Merged
Conversation
…finity beside its settings, never in them
ARCHITECT ruling P1b (b), 2026-10-07 (spec BUSBAR-1.6.0.md :552-554, :561-570): `affinity` is an
owner-locked reserved core-owned sub-key, read by the kernel and stripped before the ABI. The llm
plane read `pools.<p>.affinity.header_name` out of its own settings to derive the session key
(shaping.rs), so the strip would have taken 1.5.5's session affinity with it. The kernel now hands
the plane, beside its settings, the resolved directive of each pool:
- busbar-contract abi/plane: PlaneOpenIn.pool_affinity (a tail addition) and PlaneRefreshIn
{refresh: RefreshIn, pool_affinity}, the plane lifecycle's `refresh` `in`; one JSON object
`{"<pool>": {"header_name": "<header>"}}` (POOL_AFFINITY_HEADER_NAME), absent when no pool names a
header. Layout golden re-seeded (pre-tag v1 layout, no ABI_VERSION moves) and the C header
regenerated.
- busbar-kernel deal: `crossing(verb, section)` runs the one strip and returns, beside the stripped
section, `pool_affinity(verb, reserved)`: every pool's `affinity` read off what the strip took
(config::pools::AffinityCfg), the root `pools:` section's and a declared verb's alike, no plane
named.
- plugin-loader: open_door / refresh_door carry the projection; the facing probe is handed none
(it routes no session).
- busbar serve: a door plane's open and both refresh paths are handed its projection.
- llm plane: Shaping reads the session header off the projection (Shaping::with_affinity), never
off its settings; decisions and the test plane door read PlaneRefreshIn.
…est plane records the bytes it is handed)
…oss through the deal's one strip
Spec BUSBAR-1.6.0.md :561-570 ("A plane's settings reach it as ONE validated JSON object
{section: value} per open/refresh, reserved keys and secrets stripped; upstream_credentials is
kernel-owned"). Measured on predev 5e672d1 (Latchkey cli-d43752e9): serve.rs `open` removed only
the top-level `work`, `refresh` handed the section as written, and the owned sections and the
kernel's facing probe were handed as written, so breaker, on_exhausted, gates, hooks,
upstream_credentials, affinity, tier, repeatable, rate_card, fees, work and pools all crossed, at
the section, each registration and each pool.
- serve.rs `crossed`: the settings a door plane is handed at open and at both refresh paths
(DoorApply::refreshed, DoorAppliers::refresh_models) go through
busbar_kernel::config_validate::deal::strip (P1's one strip, its exact depths: section,
registration, pools.<p>, pools.<p>.members[i]); the root llm `pools:` keeps only its two section
words reserved, as P1 rules; the consumed sections the llm plane reads beside it (providers,
models, limits) cross through the same strip; the pool affinity projection (P1b-a) is read off
the same strip. The owned sections cross through it too.
- busbar-kernel door.rs: the facing probe's section and DoorOwned::bytes cross through it.
Secrets are not touched here (ARCHITECT, via SECURITY: P1b strips reserved keys only; the secret
references are sec-plane-secret-refs, which stacks on this).
promote into
|
This was referenced Oct 8, 2026
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.
SECURITY: P1b — a door plane's open, refresh, owned sections and facing probe cross through the deal's one strip
Spec BUSBAR-1.6.0.md :561-570: "A plane's settings reach it as ONE validated JSON object {section: value} per open/refresh, reserved keys and secrets stripped; upstream_credentials is kernel-owned".
Measured on predev 5e672d1 (Latchkey
cli-d43752e9):serve.rsopenremoved only the top-levelwork;refreshhanded the section as written;So a door plane received every reserved core-owned key, at the section, at each registration and at each pool: breaker, on_exhausted, gates, hooks, upstream_credentials (kernel-owned credentials), affinity, tier, repeatable, rate_card, fees, work and pools.
Commits
3d3cf7534aP1b-a: the pool affinity projection.PlaneOpenIn.pool_affinityandPlaneRefreshInare tail-appended, and the golden and C header are regenerated. The kernel derives it withdeal::crossing, and the llm plane reads it withShaping::with_affinity.20caaca14cRED: the test plane records the bytes it is handed at the ABI (settings.capture_to).8b99a8f34dthe fix:serve.rscrossed: open and both refresh paths go throughconfig_validate::deal::strip, which also covers the owned sections;door.rs: the facing probe andDoorOwned::bytesgo through it.0590041b9dmerges origin/p6-k1-strip (ed7e8de). This stacks on K1-10 / Q-STEP9-a: pools is reserved; the strip runs at exact depths; an entry named after a reserved key is refused #599, which is not in predev yet, so this PR targetsp6-k1-strip.Secrets are not touched here. The secret references stack on this branch (
sec-plane-secret-refs-p1b).Proof (Latchkey
cli-71242500-a61a-4a3d-acc6-afa318bbe615, head 0590041)cargo fmt --all --check: clean.cargo clippy --workspace --exclude busbar-auth-oauth --all-targets --all-features -D warnings: clean.cargo build --workspace --examples: green.cargo test, every crate run--no-fail-fast:-p busbar-contract: 0 failed.-p busbar --bin busbar: 0 failed.-p busbar --all-features --bin busbar -- root::serve: 0 failed.-p busbar-plane-llm -p busbar-plane-decisions -p busbar-plane-mcp: 0 failed.-p busbar --test plane_driver --test plane_rider: 0 failed.-p busbar-kernel: every target green exceptroot_key_spelling::no_production_source_spells_a_kind_s_root_key_beyond_its_armed_count, the base's known red. It goes green with DEL 913fb20, which is not in this base.-p busbar-plugin-loader: 612 passed, 2 failed. The two are the known environment reds atboth_ways.rs: the external pinnedbusbar_secret_env_plugintwin is not built in a Latchkey job.planes_tests), so it was re-run in Latchkeycli-e9b0fca8-bf75-43dc-8d7e-5a2cf03df5c1:8b99a8f34d's source reverted,root::serve::planes_tests::a_door_planes_open_and_refresh_carry_no_reserved_keyFAILED (the plane recorded the reserved keys);Oracle (base p6-k1-strip ed7e8de vs this head, strict replay against golden 1.5.5)
^(llm|decisions|boot\.refusal|config|)(Latchkeycli-78749b8f)^mcp|(stdio|fence)|(cli-c85b4a53)^mcp|streamable-http|(cli-8b758f83)The 913 mcp cells have no 1.5.5 golden and record nothing in this harness on either build, so they carry no signal here. Their judge is the merge group's conformance and oracle shards.