Skip to content

fix(search): preserve coordinator filter and degradation contract - #1629

Draft
ohdearquant wants to merge 1 commit into
mainfrom
codex/coordinator-search-contract
Draft

fix(search): preserve coordinator filter and degradation contract#1629
ohdearquant wants to merge 1 commit into
mainfrom
codex/coordinator-search-contract

Conversation

@ohdearquant

Copy link
Copy Markdown
Owner

Summary

  • validate the complete KG search request once before coordinator fan-out, including granular/legacy kind reconciliation and substrate-specific filters
  • forward every applicable filter to each backend and reject malformed, contradictory, or wrong-substrate inputs instead of silently broadening searches
  • preserve typed partial-result metadata (partial and missing_backends) through MCP and kkernel single, batch, chain, presentation, audit, and frame-budget paths
  • make backend task panics explicit per-backend failures and cover the cross-surface contract with regression tests and operator documentation

Why these issues belong together

Both failures occur at the same coordinator interception boundary: one loses accepted search filters before fan-out, while the other loses degradation metadata after fan-out. Keeping the fixes together lets the boundary use one validated request type and one typed intercepted-dispatch result without duplicating compatibility glue across MCP and kkernel.

Verification

All checks passed at exact commit fb1feb7e92ea60e36a811a834ed22f381b3100fa:

  • cargo test --manifest-path crates/Cargo.toml --workspace
  • cargo check --manifest-path crates/Cargo.toml --workspace
  • cargo clippy --manifest-path crates/Cargo.toml --workspace --all-targets -- -D warnings
  • cargo fmt --manifest-path crates/Cargo.toml --all -- --check
  • RUSTDOCFLAGS=-Dwarnings cargo doc --manifest-path crates/Cargo.toml --workspace --no-deps

An independent review found no actionable issues.

Closes #1370
Closes #1377

AI-assisted contribution: Codex prepared this change and PR description.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant