Repository navigation
row 155 B1a: DEFAULT_PROTOCOL leaves busbar-kernel; the 1.5.5 refusals of the provider dialect keys are pinned - #937
Open
MattJackson wants to merge 3 commits into
Open
MattJackson wants to merge 3 commits into
MattJackson wants to merge 3 commits into
Conversation
…the provider dialect keys are pinned (row 155 B1a) The kernel named a dialect as the serde default for an omitted provider `protocol:` (config/providers.rs, `DEFAULT_PROTOCOL = "anthropic"`). BUSBAR-1.6.0.md #49: the kernel contains zero transport-protocol literals; THE DESIGN §4: a plane receives the dialect fields of the providers it references and resolves model -> dialect itself. The const and its `default_protocol()` are deleted; `ProviderCfg::protocol` is `#[serde(default)]` (empty, the kernel fills in no dialect). Only a direct `ProviderCfg` parse reached that default (tests); the catalog's `ProviderDef::protocol` is required, so every resolved provider carries the catalog's dialect and no customer-visible byte moves. The config-schema snapshot already records the field as optional and does not change. RED: config::tests::an_omitted_provider_protocol_names_no_dialect_in_the_kernel (base: the omitted key read the kernel's dialect name). Pins (coordinator guard: the dialect keys' validation stays byte-identical to 1.5.5): config/tests/provider_refusal_pins.rs pins the 1.5.5 refusals of protocol, error_map, path and path_base no oracle cell or test pinned: the deployment invalid-type sentences at their positions, the catalog missing-`protocol` sentence, and the composed base_url+path / base_url+path_base metadata refusals (v1.5.5 crates/busbar/src/config_validate/mod.rs:406, :430). Rows drained: - qa/c1-literals.toml: the c1-literals:literal finding providers.rs `anthropic` struck. - qa/construction.toml: known_site `crates/busbar-kernel/src/config/providers.rs :: anthropic` struck. - scripts/plane-grep-gate.sh: the `anthropic|...providers.rs|DEFAULT_PROTOCOL` ALLOWLIST row struck (it would suppress nothing and fail the dead-row check). - one plane-purity frozen-wire pragma (providers.rs) and its test-scope twin deleted.
This was referenced Oct 14, 2026
… from a literal (clippy useless_format); busbar-kernel x plane 1122 -> 1121, the drain DEFAULT_PROTOCOL's removal gave (Law 9); merged origin/predev
This branch has not been deployed
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.
Row 155 B1, first slice (B1a). Not a money ($) change. Not run locally: per the lane rules there is no cargo build/test/clippy/xtask on the laptop, only
cargo fmt. ModernCI is the proof.What
DEFAULT_PROTOCOL = "anthropic"anddefault_protocol()are deleted frombusbar-kernel(config/providers.rs:112).ProviderCfg::protocolbecomes#[serde(default)]: an omitted key is empty, and the kernel fills in no dialect.busbar-plane-llmexchange::shaping::DEFAULT_PROTOCOL).ProviderCfgparse ever reached the kernel default, and only tests do that.ProviderDef::protocolis required (1.5.5 too, and pinned below), so every resolved provider carries the catalog's dialect.config-schema.snapshot.jsonis unchanged: it already recordsProviderCfg.protocolasoptional: true.crates/busbar-kernel/src/config/tests/provider_refusal_pins.rspins each 1.5.5 refusal ofprotocol,error_map,pathandpath_basethat no oracle cell or test already pinned:line/column;missing field \protocol``;base_url+pathandbase_url+path_base(v1.5.5crates/busbar/src/config_validate/mod.rs:406and:430), in order./), BOOT-122 (catalog protocol type) and NEUT-U-providers (unknown key).RED
config::tests::an_omitted_provider_protocol_names_no_dialect_in_the_kernel. On base, an omittedprotocol:read the kernel's dialect name; after this PR it is empty.Rows drained (before → after)
qa/c1-literals.toml: findingc1-literals:literal·crates/busbar-kernel/src/config/providers.rs·anthropic: 1 → struck.qa/construction.tomlkernelknown_sites:crates/busbar-kernel/src/config/providers.rs :: anthropic: 1 → struck.scripts/plane-grep-gate.shALLOWLIST:anthropic|crates/busbar-kernel/src/config/providers.rs|DEFAULT_PROTOCOL: 2 rows → 1. The row would now suppress nothing and fail the dead-row check.serde_default_fns_return_their_documented_constants) are deleted.The B1 field split (lane design; not all in this PR)
base_url,api_key(SecretRef),health,allow_metadata_hosts, and the outbound-auth bindingauth,token_url,scope,subject.pathandpath_base. The boot destination guard composesbase_url+pathandbase_url+path_base(config_validate/mod.rs:2281-2335).protocol(core reads it only as an opaque word through contractMODEL_PROTOCOL_KEYSfor the auth default style, #50),error_map,organization,project,max_output_key,anthropic_adaptive_thinking,native_structured_output,model_capabilities.What follows (not this PR)
ProviderCfg'sprotocol,error_map,pathandpath_baseare in the v1.5.3 config-schema baseline. Removing them is an additive-only RED that needs owner waivers or a new resolved type; this is with the ARCHITECT.crates/busbar/src/root/door_steps.rs(kernel_sections,provider_routes). That file is edited by the open row 155: the door path serves budget on_exhaust: downgrade as 1.5.5 did ($, ahead of #824) #833, row 155 (L1#3): a model's protocol override reaches the llm plane and is served, fail-closed (#51) #841, row 166 PR1: secret resolve takes a config-time proof (ConfigScope) and the config-scope gate #863 and row 74 F25: a lane base URL's userinfo is stripped, never dialled, sent or printed, as 1.5.5 did #876 (queue rule 20).Shared-file note
crates/busbar-kernel/src/config/tests/tests.rsis also touched by #900 (and draft #571). The hunks are disjoint: lines 1-10, around 1440-1580, and around 2240.