Skip to content

kernel D2 K1: the pool vocabulary leaves failover/ for config/pools.rs - #933

Merged
MattJackson merged 1 commit into
predevfrom
lane-kdel-k1-failover-cfg
Oct 15, 2026
Merged

MattJackson merged 1 commit into
predevfrom
lane-kdel-k1-failover-cfg

Conversation

@MattJackson

Copy link
Copy Markdown
Collaborator

KERNEL-DELETE lane, slice K1 (TODO l.24-27, /status row 82; ARCHITECT R-A 2026-10-14: neutral code stays in the kernel under a home named by what it does).

  • CandidatePoolCfg, Repeatable, DEFAULT_FAILOVER_CAP, DEFAULT_FAILOVER_DEADLINE_SECS, MAX_FAILOVER_DEADLINE_SECS move verbatim from busbar-kernel/src/failover/mod.rs into config/pools.rs, beside FailoverCfg.
  • failover/ is left with only the walk machinery. Its only callers are busbar-a2a (P3 FLIP-A2A: the a2a plane served through its door; busbar-a2a deleted (stacked on #778) #787) and busbar-llm (row 155 C), so the directory deletes whole with them. A pub use keeps the historical failover:: path for root serve.rs and the legacy crates, whose files are held by open PRs.
  • state.rs and config/mod.rs name config::pools directly. config/mod.rs edits are import paths only (agreed with the kernel-neutrality lane).
  • The config-schema gate drops failover/mod.rs from its source list. Types are fingerprinted by name and config/pools.rs is tracked through the grammar directory, so the snapshot is unchanged.
  • core-admin reads APPLICATION_JSON from busbar_contract::protocol, its defining home, not through busbar_kernel::proxy (K2). core-admin src/tests/tests.rs is held by row 88: busbar-core-admin tests drop the busbar-export-prometheus dev-dep (ship twin: cleanliness -> export) #917, so it is left alone.

The move is inside one crate, so no ceiling changes. Behaviour is unchanged.

`CandidatePoolCfg` (the `tool_pools:`/`agent_pools:` serde shape), `Repeatable`, and the failover
budget's defaults and bound (`DEFAULT_FAILOVER_CAP`, `DEFAULT_FAILOVER_DEADLINE_SECS`,
`MAX_FAILOVER_DEADLINE_SECS`) are configuration, not walk machinery. They move verbatim into
`config/pools.rs` beside `FailoverCfg`, whose serde defaults read them. `failover/` keeps only the
walk (`walk`, `walk_with`, `record_*`, `Candidate`, `Stage`, `Refusal`, `Admitted`, `Attempt`,
`Order`, `InOrder`), whose only callers are the legacy plane crates, so the directory deletes
whole with busbar-a2a (#787) and busbar-llm (row 155 C). Until then `failover` re-exports the moved
items at their historical path for the callers that still spell it so (root serve.rs and its tests,
the legacy crates).

Kernel-internal callers (state.rs, config/mod.rs) now name `config::pools` directly. The
config-schema gate's source list drops `failover/mod.rs`: the type is fingerprinted by name, and
`config/pools.rs` is already tracked through the kernel's grammar directory, so the snapshot does
not move. core-admin reads `APPLICATION_JSON` from its defining home, `busbar_contract::protocol`,
not through the kernel's `proxy` facade.

Intra-kernel move: no behaviour change, no ceiling change.
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