Skip to content

Law 0 root (PR1): the root's prod source names no plane, transport or auth instance - #993

Merged
MattJackson merged 3 commits into
predevfrom
lane-law0-root
Oct 15, 2026
Merged

MattJackson merged 3 commits into
predevfrom
lane-law0-root

Conversation

@MattJackson

Copy link
Copy Markdown
Collaborator

Law 0 root lane, PR1 of 3 (prod source). BUSBAR-1.6.0.md l.104-120, l.172-182: the composition root's Rust source names no instance; customer-visible bytes stay v1.5.5's.

Values read off declared rows (each with a RED):

  • Line carrier: the linked transport claim whose claim row opens unit 0 on its FIRST LINE (TransportFacts.lines in plugin-loader, LinkedTransport.lines from linked_gen.rs, root::serve::lines::line_carrier). Two such claims refuse the boot (lines::refusal, main.rs). BUSBAR_<PLANE>_<CARRIER>_CREDENTIAL and the serve's stderr sentences are spelled from the plane's and the carrier's keys, so they keep 1.5.5's bytes. RED: root/tests/serve_lines.rs (neutral doubles: the carrier is whatever the row declares; two are refused; the credential variable is spelled from both keys; the build's carrier is the one its linked rows declare).
  • Request wire (root listener log scheme, admin and gauntlet arrival chains): the admin plane's declared claim transport (root::listener::REQUEST_WIRE, units_admin::ADMIN_TRANSPORT). RED: units_admin arrival test checks the chain against admin_codec::claims::CLAIMS.
  • Operator credential provider word: the linked-name of the row the manifest's new [package.metadata.busbar.operator-auth] table names. Packaging states it, linked or not, so the 1.5.5 "built WITHOUT the auth-… feature" refusal still spells it. RED: the_operator_provider_is_the_row_the_manifest_names checks the named row is the only linked row whose Statement states FACT_OPERATOR, with the same principal (kinds::auth::operator_principal).
  • --list-plugins header: v1.5.5's line (main.rs:419-422) as one constant. RED: the header heads the row format's columns.

Other changes:

  • Test cfgs feature = "auth-…" become linked_axis_auths.
  • Collision-only renames: the trust decision binding becomes ruling; ProviderAuth as Style; Served::tcp becomes accepted.
  • Plane-naming prose reworded.

Gate: kind_isolation/matrix.rs gets EXPORT_STREAMS_KEY. An export entry's frozen 1.5.x streams: [ key (v1.5.5 config/migrate_export.rs:17) is the export projection, not the plane, told apart by its list value. A streams: keying a mapping still counts. It has a selftest green/red pair, like BARE_WORD_COLLISIONS. The FILE exemption was not needed: the header constant carries no file literal.

law0 rows lowered to the measure:

crate axis before after
busbar auth 49 43
busbar export 15 14
busbar instance:auth 24 22
busbar instance:export 33 32
busbar instance:secret 35 34
busbar plane 826 774
busbar transport 224 192
busbar-kernel plane 1122 1100

The kernel plane drop is the 22 export streams: [ keys.

Left in place to avoid same-hunk edits (rule 20):

… auth instance

The composition root's shipped source stops naming instances (BUSBAR-1.6.0.md l.104-120,
l.172-182); every customer-visible byte stays v1.5.5's.

- The line carrier is the linked transport claim whose row opens its unit 0 on its first line
  (TransportFacts.lines, LinkedTransport.lines, root::serve::lines::line_carrier); two such claims
  refuse the boot. The session credential variable and the serve's sentences are spelled from the
  plane's and the carrier's keys (BUSBAR_<PLANE>_<CARRIER>_CREDENTIAL, as 1.5.5 printed them).
- The request wire the root listeners log and the admin/gauntlet arrival chains carry is the admin
  plane's declared claim transport (root::listener::REQUEST_WIRE).
- The operator credential's provider word is the manifest's operator row's linked-name
  ([package.metadata.busbar.operator-auth]); the row that states FACT_OPERATOR is checked against it.
- The `--list-plugins` header is v1.5.5's line as one constant (root::cli::LIST_PLUGINS_HEADER),
  proven to head the row format's columns.
- Test cfgs ride the linked auth axis; collision-only identifiers renamed; plane-naming prose
  reworded.
- kind-isolation: an export entry's frozen 1.5.x `streams: [` key is the export projection, not
  the plane (EXPORT_STREAMS_KEY, selftest pair); law0 rows lowered to the measure.
@MattJackson

Copy link
Copy Markdown
Collaborator Author

Rule 20 note from #1030 (row 155): disjoint hunk in crates/busbar/src/root/door_steps.rs (DoorSteps gains usage_tap_fault after attempting, plus a doc line on translations). A test merge is clean.

@MattJackson

Copy link
Copy Markdown
Collaborator Author

Rule 20 note from #1031 (row 155, draft): one more disjoint hunk in root/door_steps.rs (kernel_sections' limits json gains request_body_max_bytes, plus its doc). A test merge is clean.

linked_axis_auths was used but never declared, so check-cfg refused the build. build.rs now
declares it with the other linked_axis_* cfgs (AUTH_AXIS, the same constant linked_gen reads),
and states two more off the same rows: linked_every_auth (every auths row enabled) and
linked_operator_auth (the operator-auth table's row enabled). The gates keep 1.5.5's meaning:
the declared-credentials suite needs a plugin serving each style (was auth-header +
auth-sigv4), so it rides linked_every_auth; the linked operator-credential suite needs the
operator row (was auth-admin-tokens), so it rides linked_operator_auth.

RED: tests/linked_auth_cfgs.rs holds each cfg to the manifest rows and the build's enabled
features.
MattJackson added a commit that referenced this pull request Oct 14, 2026
…d from the manifest (check-cfg)

cli_validate's B1 fixture configures the operator credential's module, so it needs that row,
not any auth row; and linked_axis_auths was never declared, a certain check-cfg red. build.rs
carries #993's hunk byte-identical (linked_axis_auths declared beside the other axis cfgs;
linked_every_auth; linked_operator_auth off the operator-auth table's row) so whichever lands
second merges cleanly.
MattJackson added a commit that referenced this pull request Oct 14, 2026
…manifest (check-cfg)

linked_axis_auths was never declared (check-cfg red), and any-auth-row was the wrong gate: the
cell asserts an outbound need, which only the mint plugin's row declares, so a build linking
one auth row would fail it. It rides linked_every_auth (every auths row linked, so the mint row
is among them), as the predev test ran on the always-linked plugin. build.rs carries #993's
hunk byte-identical so whichever lands second merges cleanly.
@MattJackson
MattJackson merged commit b35a76e into predev Oct 15, 2026
1 check failed
@MattJackson
MattJackson deleted the lane-law0-root branch October 15, 2026 05:33
MattJackson added a commit that referenced this pull request Oct 15, 2026
… from the gates log of 80d5f03

- hooks parity (#989): the v1.5.5 hook corpus moves out of the kernel's source into
  testing/hook-parity/v1.5.5-hook-corpus.tsv, read by the count test; its origins are `proxy`/`core`
  and the constants PROXY_ORIGIN/CORE_ORIGIN (gate hook-parity-count reads them). The listing named
  plane, hook and export instances in a neutral crate: kernel x plane +84, x hooks +18, and the
  instance-noun-neutrality llm census.
- config-schema: a section a plane owns beside its declaring one is the endpoint DOOR only for the
  plane the kernel names its owner (EndpointSection::OWNER); any other is RAW, carried by
  DeployCfg::plane_raw, as the pre-pass lifts it since #966 (a2a's agent_push, #1001). Selftest: two
  doors under the owner stay RED; a non-owner's beside section is carried.
- reachability: serve_datagram.rs is the module `serve_datagram`, named for its file like serve_framed.
- teller-steps / libtest_path: door cells are read off the linked rows on the plane-door axis, the
  rows build.rs mounts since #1006 deleted [package.metadata.busbar.door-cells].
- plane-purity dialect / neutral-no-dialect: LegacyLaneKeys flattens ProviderLaneCaps rather than
  spelling its fields (#957).
- structure-lint: stand_in.rs's inline tests move to tests/stand_in_tests.rs (#1010).
- config-scope: auth/mod.rs's test-idp-module arm is braced like its sibling, so the scanner sees
  the `new` construction in the arm after it.
- instance-noun-neutrality mcp: the a2a client cell's rationale (and its capability-equality row)
  names no other plane.
- hold-escapes: host_disk.rs::start (#864's disk lane job loop) is a reviewed known site.
- hook-parity-count: the TODO's M4 row reads 181.
- design-bindings: PB-50's config.migrate family is 158 cells (#1026 added two).
- kind-isolation law0: busbar auth 24, instance:auth 10, instance:export 25, plane 525, transport 97
  are the merged tree's measure (#1038's figures were T+O-B over a virtual base carrying #993, #1017,
  #1020, which w2 does not carry); busbar-contract export 1 -> 0 and transport 226 -> 225 (slack).
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