Skip to content

P5 row 106/107: extract busbar-plane-mcp to GetBusbar/busbar-plane-mcp (pinned); every gate reads the pinned planes as its base layer - #838

Open
MattJackson wants to merge 8 commits into
predevfrom
lane-p5-extract-plane-mcp
Open

MattJackson wants to merge 8 commits into
predevfrom
lane-p5-extract-plane-mcp

Conversation

@MattJackson

Copy link
Copy Markdown
Collaborator

P5 extraction, /status rows 106 (no busbar-plane-* crate under crates/) and 107 (crates down to 14). The mcp plane is the first of the five. Crates go 24 -> 23.

What

  • crates/busbar-plane-mcp leaves for plane-mcp: busbar's in-tree crate, history imported, at busbar 00555bd98a (P5 extraction) busbar-plane-mcp#10: history imported with filter-repo; the logic crate is predev 00555bd's; busbar-plane-mcp-plugin (cdylib) runs busbar's published conformance suite.
    • The root pins it with one git row; the two edges in crates/busbar take the workspace row.
    • deny.toml allow-git gains the repo.
    • plugins.yaml drops pending_crate and sets busbar_checkout: true (an existing field), because its tests read busbar's battery and qa/method-inventory.json at the pin.
  • The base layer (ARCHITECT ruling on row 106, option (A); spec deps: bump jsonschema from 0.49.2 to 0.49.5 #39 "plugin SOURCE never re-enters busbar"):
    • Ctx gains a BASE layer, beneath the overlay and above the disk. Ctx::workspace lays every pinned package of the plane kind at crates/<package>, read from the checkout cargo metadata resolves for the rev Cargo.lock pins (kind_isolation::plane_base). Nothing is written, copied or linked into the tree.
    • with_overlay keeps the base, so plants still win.
    • It is generic over the kind and names no plane.
    • It fails closed: a pinned plane that does not resolve is an Err naming the package and rev.
    • kind-isolation's own mount is untouched. No ledger row changes.
  • Tests that read the filesystem resolve a pinned plane through the same rule (crates/busbar/tests/common/pinned_planes.rs):
    • capability-equality: the 5 proven mcp-server cells, and the >= 5 plane floor, which counts pinned members.
    • The kernel trust and core-admin plane-key ratchets.
    • xtask/tests/declared_classes.rs, now read through Ctx.
    • proto-deletion-gate.sh.
  • The plane is judged where its source changes: plugin-ci.yml gains a plane step.
    • At the repo's busbar pin, it runs plane-purity, structure-lint and config-schema over busbar's pinned plane and again over the PR's logic crate (BUSBAR_PLANE_SOURCE).
    • A row that passes over the pin and fails over the change is RED (scripts/fleet/plane-gates.sh, with a selftest).
    • It takes effect in a plane repo once that repo pins a busbar that has it.

RED-able tests

  • xtask/tests/pinned_planes_base.rs:
    • The base is laid from the checkout, and none of it is on disk.
    • A plant wins over the base.
    • structure-lint, config-schema, no-float-money, plane-purity and reachability each lose a passing row when the base is removed.
  • declared_classes: the scan reads the pinned plane, and reads none of it without the base.
  • capability_equality: the pinned plane's cited evidence is not on disk, and is real when read from the checkout.

Ledgers: none touched (ruling condition 6).

Not in this PR:

…p, pulled at a pinned rev; every gate reads the pinned planes as its base layer (P5, rows 106/107)

- crates/busbar-plane-mcp is deleted. GetBusbar/busbar-plane-mcp holds it, history imported with
  filter-repo; its logic crate is predev 00555bd's crate and its -plugin cdylib runs busbar's
  published conformance suite. The root pins it as one git row; the root's two edges take the
  workspace row; deny.toml allows the repo; plugins.yaml drops pending_crate and checks busbar out
  (its tests read the battery and qa/method-inventory.json at the pin).
- THE BASE LAYER (ARCHITECT row 106 (A)): Ctx gains a base beneath the overlay and above the disk.
  Ctx::workspace lays every pinned package of the plane kind at crates/<package>, read from the
  checkout cargo metadata resolves for the rev Cargo.lock pins (kind_isolation::plane_base), never
  written into the tree. with_overlay keeps it, so a plant still wins. Generic over the kind, no
  plane named. Fails closed: a pinned plane cargo cannot resolve is an Err naming it and its rev.
  kind-isolation's own mount is unchanged. No ledger row moves.
- RED arms: xtask/tests/pinned_planes_base.rs (the base is laid from the checkout and nothing of it
  is on disk; a plant wins over it; structure-lint, config-schema, no-float-money, plane-purity and
  reachability each lose a passing row without it); declared_classes reads the pinned planes and
  none without the base.
- The tests that read the filesystem resolve a pinned plane through the same rule
  (crates/busbar/tests/common/pinned_planes.rs): capability-equality's proven mcp-server cells and
  its five-plane floor (with a RED arm that the evidence is not on disk and is read from the
  checkout); the kernel trust and core-admin plane-key ratchets take the pinned planes' keys;
  proto-deletion-gate.sh reads the door crate from its checkout.
- plugin-ci.yml: a plane repo runs plane-purity, structure-lint and config-schema at its busbar pin
  over its own change (scripts/fleet/plane-gates.sh, BUSBAR_PLANE_SOURCE): no row that passes over
  busbar's pinned plane may fail over the change.
… take the pinned planes too (tests/common/pinned.rs, fail-closed), and the sibling set is every plane the roster registers, with its five-plane floor (ARCHITECT row 106 (A))
…a door home; the plane step is an xtask plugin-gate; the pin moves to the merged plugin head

- Ctx::exists and Ctx::is_dir answer a directory the base layer lays (a pinned plane's crate and
  every directory in it), and Ctx::base_children lists what it lays under a directory: qa-names,
  plane-purity:roots, plane-pricing-blindness and structure-lint's scope rows read the pinned plane
  where it lived. construction's glob_dirs lists the laid crate beside the disk's, so the census's
  plane glob still matches its five crates.
- workspace-deps: a manifest the base lays is a pinned git dependency, never a crate on disk.
- PlaneRoots::over(cx): a door crate the base lays is its plane's door home (settings-leak,
  response-header, blocking-ffi).
- plugin-ci's plane step is `xtask plugin-gates plane` (the busbar gates over busbar's pinned plane
  and over the change, a row that stops passing is a finding), with selftest cases; the shell
  script is gone (script-allowlist: product checks are cargo xtask).
- busbar-plane-mcp pinned at a5e2ae355c, the head GetBusbar/busbar-plane-mcp#10 merged.
…oml keeps predev's store-memory row (no fixture-store: the kernel links an in-crate store double) beside this lane's busbar-plane-mcp pin
… pinned-plane helper by reference (root is a PathBuf; E0308 at :1233)
MattJackson added a commit that referenced this pull request Oct 14, 2026
MattJackson added a commit that referenced this pull request Oct 14, 2026
…ut (dirs_for_globs filters with Ctx::is_dir, disk then base layer); RED: a plane present only in the base layer is counted
MattJackson added a commit that referenced this pull request Oct 14, 2026
…dirs_for_globs counts a pinned plane from the base layer) into lane-p5-extract-plane-decisions
MattJackson added a commit that referenced this pull request Oct 14, 2026
…er the scan roots (a pinned plane's crate), so rules that read lines read a pinned plane; RED: forbid-unsafe finds the attribute in a base-laid plane's lib and reports its absence MISSING
MattJackson added a commit that referenced this pull request Oct 14, 2026
… scan carries pinned-plane sources; forbid-unsafe MISSING fix) into lane-p5-extract-plane-decisions
MattJackson added a commit that referenced this pull request Oct 14, 2026
…s tools type leaves the secret inventory, and the architecture page names only paths on disk

- kind_isolation: plane_kind_src_roots unions the root manifest's pinned plane rows
  (pinned::pinned_plane_dirs), so a context without the base lists the pinned plane's root and
  plane-purity:roots refuses it by name; plane_kind_crates refuses a pinned plane the census
  cannot read, so reachability:plane-crates is red without the base (pinned_planes_base's two
  RED arms).
- secret_refs: TokenExchangeCfg left the tree with the plane; its references are read at the
  door's declared paths through the DoorSection row, so the stale inventory entry is removed.
- docs/architecture.md: the in-tree plane directories, and the MCP plane's own repository.

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