Skip to content

row 166 PR2a: a disk-declared secret source resolves on the one disk lane at config time only - #864

Merged
MattJackson merged 1 commit into
predevfrom
lane-row166-secret-disk
Oct 15, 2026
Merged

MattJackson merged 1 commit into
predevfrom
lane-row166-secret-disk

Conversation

@MattJackson

Copy link
Copy Markdown
Collaborator

Stacked on #863. Row 166 design B, PR2a (THE DESIGN §11.11 R4 as the OWNER amended it 2026-10-13).

  • Disk-need fact: declares.disk (off the wire when false; refused at phase 1 on any kind but secret). Carried on Candidate from a dropped-in manifest, or from a linked row through the new linked-declares conduit (LINKED.secret_declares -> SecretRows::declare_linked).
  • LoadedSecret split: for a disk source, resolve is refused (DENIED, RESOLVE_OFF_CONFIG_TIME), and resolve_at_config runs the plugin's resolve ticket-less on the lane thread through the host's DiskRun hook, the caller waiting with its own bound. A host with no lane refuses. A source with no disk need is unchanged.
  • Kernel: DiskLane::run(job) runs in order with the appends, and a panicking job never ends the lane. KernelServices::with_disk_lane: the root hands its ONE lane to both the services and the secret axis. OpenedSecrets and the dropped-in resolver carry the caller's proof (with_scoped_plugin).
  • REDs: (a) request path refused, linked and dropped in; (b) the config-time resolve is one lane job, and a lane job runs on busbar-disk-lane; (c)/(e) no disk need answers byte-identically and never reaches the lane; (d) a full or dropping lane answers at once. Also: an unwired host refuses; a non-secret kind declaring disk is refused; OpenedSecrets hands the proof through.

No behaviour changes until PR3 declares busbar-secret-file's disk need. PR3 lands only after PR2b (the stdio member spawn-env cache).

…disk lane at config time only, and is refused on a request path

THE DESIGN §11.11 R4 as the OWNER amended it (2026-10-13), row 166 PR2a (design B), on #863:

- plugin-loader: declares.disk (left off the wire when false), refused at phase 1 on any kind but
  secret; Candidate carries it (a dropped-in manifest's, or a linked row's through the new
  linked-declares conduit, SecretRows::declare_linked). LoadedSecret is split by it: a disk source's
  resolve is refused (DENIED, RESOLVE_OFF_CONFIG_TIME); its resolve_at_config runs the plugin's
  resolve ticket-less on the lane thread through the host's DiskRun hook, the caller waiting with
  its own bound; no lane wired refuses every resolve. A source with no disk need is unchanged.
- busbar-kernel: DiskLane runs a generic job in order with the appends (a panicking job never ends
  the lane); KernelServices takes the process's one lane (with_disk_lane). OpenedSecrets and the
  dropped-in resolver carry the caller's proof (with_scoped_plugin), opening the plugin's own
  references at config time too.
- busbar root: the process's one disk lane, shared by the kernel's services and the secret axis;
  LINKED.secret_declares generated from [package.metadata.busbar.linked-declares].
- REDs: (a) request-path refused, linked and dropped in; (b) the config-time resolve runs as one lane
  job, and a lane job runs on the lane thread; (c)/(e) no disk need answers byte-identically and
  never reaches the lane; (d) a full or dropping lane answers at once; an unwired host refuses; a
  non-secret kind declaring disk is refused; OpenedSecrets hands the proof through.
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).
MattJackson added a commit that referenced this pull request Oct 15, 2026
…eld; clippy; the six Law 0 cells the merge grew; config-schema snapshot

- busbar-core-connector dialled.rs (#837 over #893's Piece): the datagram leg's body piece states
  `fault: None` and `declared_len: None` (E0063).
- busbar-kernel appbuild: build_app_from_config takes the root's rules as an eighth input (#1001);
  allowed too_many_arguments with that reason. plugin-loader secret_disk_tests: let-else for the
  refused declare (clippy err_expect).
- Law 0 growth over the merge-base (gates log of 3598829 and the group measures):
  kernel x plane: the failover predicate's docs and test say verdict, not decision (#890);
  kernel x instance:secret: the two new SecretRef literals key on SECRET_MODULE_ENV (#863/#864);
  kernel x auth: the resolved provider's and the token endpoint's docs name the client-credentials
  style without spelling the module (#957, #876);
  connector x transport: spawn_env's doc says program members (#865);
  contract x plane: section.rs's trust_from doc names a plane's push trust (#1001);
  busbar x vendor: the health-probe cell's catalog entry is testing/root-fixtures data (#1039);
  busbar x instance:secret: the pinned-cells selftest builds its fixture citing the pinned file
  rather than re-keying it (#1006).
- config-schema: the RAW carrier records each section as the map's value type; the snapshot gains
  DeployCfg.agent_push (serde_yaml::Value, #1001), ProviderLaneCaps (its Deserialize, round 2) and
  the `type ProviderTable` alias (#957).
- qa/scripts-allowlist.toml: the three twilio conformance legs (#998), oracle-driver like their
  siblings.
Base automatically changed from lane-row166-secret-lane to predev October 15, 2026 13:54
@MattJackson
MattJackson merged commit 542e304 into predev Oct 15, 2026
1 check was pending
@MattJackson
MattJackson deleted the lane-row166-secret-disk branch October 15, 2026 13:54
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