Repository navigation
row 166 PR2b: a program's environment secrets resolve at declaration and are held; a spawn resolves nothing - #865
Merged
Merged
Conversation
… are held for its spawns: a spawn resolves nothing Row 166 PR2b, ARCHITECT ruling 2026-10-13. A spawn serves a request (a member's first lease, a respawn after its child exits, every open of a program need), and a secret source can block for its whole deadline, so no resolution runs there. - busbar-core-connector spawn_env: HeldEnv, resolved at the need's declaration (declare_program / declare_member_programs build the config-time proof; a kept member re-resolves at an apply), held in an ArcSwap that a spawn loads lock-free. The refresher re-resolves every live HeldEnv each SPAWN_ENV_LEASE (60 s) on its own thread, keeping each weakly like #787's PerHop. A reference that stops resolving empties the cell, so every spawn after it is refused (fail closed). - Dest::Program and Admission::Spawn carry the HeldEnv to the host's io.spawn, which loads it and resolves nothing. SpawnSecretFn takes the proof; the root installs resolve_linked_string_at_config. - config-scope gate: allow-list rows for the two declarations and the refresher. - docs/mcp.md: a rotated secret reaches the first NEW child after the next refresh. Stdio members are new in 1.6.0, so there is no 1.5.5 baseline and no register entry. - config-schema snapshot: SpawnSecretFn's target now takes the proof. - RED: a_spawn_resolves_nothing_and_a_rotation_reaches_the_first_child_after_the_refresh (two spawns, one resolution; a rotation reaches no child before the refresh and the first child after it; a reference gone at a refresh refuses the spawn). The member-program cell asserts its first lease's spawn resolved nothing.
… fixed interval with no setting; a rotation reaches the first new child within it
This was referenced Oct 14, 2026
Merged
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.
MattJackson
added a commit
that referenced
this pull request
Oct 15, 2026
…redev, by cause - cap_perf_streams_2000 (#1039 made the llm door the default path): every piece of an admitted unit took an instance max_inflight unit on worker 0, so 2000 stream endings overflowed the door's cap and the refused pieces cut answered streams. plugin-loader: Dispatcher::submit_unit (an admitted unit's on_piece/serve hold no max_inflight unit, as driver-ticket ops do; spec A.4.1, one ticket per unit reused for its ops); PlaneInstance spreads unit tickets over the dispatcher's workers (one slab per instance and worker); a session's two legs mint on one worker (PlaneCalls::mint_beside). - #958 (bedrock over-budget = 429 ThrottlingException, accepted difference C-22): exchange_refuse x2, on_driver refusals, plane_node bedrock fixture, pools_door spent-budget x2 and governance. - llm door projection reads bedrock inferenceConfig.maxTokens where the top-level cap is absent (#912's on_driver pin, now that the door serves by default, #824). - on_driver seam: a hook veto ends the route leg Failed(Route, HookVeto) as the kernel pins; the completion tap carries no response_tokens_out, as 1.5.5 (#919's test change only). - kernel config_validate: the unknown-protocol list names each dialect once (cli_validate x2). - root model_egress: the far end's RecordNothing is the caller's fault, counted in observe (the one call it records through). - kernel secret_refs: SpawnEnv inventoried (#865); plugin-loader: the forged-ticket latch test reaches its 16th forgery, the dispatch fixture's stale wakes use the tickets it was handed (#1018). - xtask: posture case reads construction figures (fixfwd-2 emptied structure-lint's); reachability selftest's name-only case uses busbar-plane-llm; segregation SRC_FLOOR follows xtask/src's growth (a floor, stricter); conformance_rigs counts 18 suites (#885). - busbar-plane-llm dialect.rs: every dialect states its `protocol` param (the auth-header plugin's no-header line reads it), with the fixture's families/own/passthrough.
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.
Stacked on #864 (and #863). Row 166 PR2b implements the ARCHITECT ruling of 2026-10-13 on stdio member env timing.
busbar-core-connector::spawn_env::HeldEnv: env secret references resolve at the need's declaration (declare_program/declare_member_programshold the config-time proof; a kept member re-resolves at an apply). They are held in anArcSwap, so a spawn loads them without a lock and resolves nothing.SPAWN_ENV_LEASE(60 s), off the request path, keeping each weakly, as P3 FLIP-A2A: the a2a plane served through its door; busbar-a2a deleted (stacked on #778) #787'sPerHopdoes. A reference that stops resolving empties the cell, and every spawn after it is refused.Dest::ProgramandAdmission::Spawncarry the held env to the host'sio.spawn.SpawnSecretFntakes the proof, and the root installsresolve_linked_string_at_config.SpawnSecretFntarget updated, since it now takes the proof.a_spawn_resolves_nothing_and_a_rotation_reaches_the_first_child_after_the_refresh:The member-program cell asserts that its first lease's spawn resolved nothing.
The 60 s lease is a fixed host constant: stdio members have no lease key, and adding one would add config surface.