Skip to content

feat(router): complete requiresSearch policy integrity - #55

Closed
cryptoxdog wants to merge 1 commit into
mainfrom
campaign/7-router-search-policy
Closed

feat(router): complete requiresSearch policy integrity#55
cryptoxdog wants to merge 1 commit into
mainfrom
campaign/7-router-search-policy

Conversation

@cryptoxdog

Copy link
Copy Markdown
Collaborator

Summary

Type of Change

  • Bug fix
  • Feature / enhancement
  • Refactor (no behavior change)
  • Documentation
  • CI / governance change
  • Breaking change (see rollback plan below)

Governance Checklist

  • Governance setup verified — ran setup_workspace_symlinks.sh, symlinks resolve (§2)
  • Symlinks validatedls -la .cursor/rules .cursor/skills .cursor/commands all resolve
  • All CI gates green — no required checks failing or bypassed
  • Anti-patterns checked — reviewed CANONICAL_LAW.md §7 — none violated
  • CODEOWNERS notified — blast-radius files trigger auto-request; confirmed reviewers assigned
  • Workspace wiring intact§8 wiring requirements satisfied
  • TRACEABILITY_MAP.yaml updated — if this PR resolves an open unknown, mark as RESOLVED
  • Kernel ref discipline — thin callers use @v1, never @main or bare SHA

Breaking Change

  • This is a breaking change

If checked, describe the impact and migration path:

Rollback Plan


Related Issues

Closes #

Commits

  • feat(router): complete requiresSearch policy integrity

Test plan

  • make pr-check (local changed-files gate) PASS before open
  • L4 kernels: Recursive Alignment + Validate & Repair (release authorized)
  • CI green; agent PR remediation subscribed after open

Close the remaining gaps of the requiresSearch-authoritative policy (#45):

- Fail closed on search+vision: a search-required route carrying images now
  throws UnsupportedCapabilityCombinationError (code
  SEARCH_VISION_COMBINATION_UNSUPPORTED) at resolution time, before budget
  reservation and provider dispatch. Previously resolveRoute selected the
  text-only Perplexity path and silently dropped the images.
- Remove the unreachable disableSearch logic in resolvePerplexityConfig: a
  Perplexity route is only selected when search is required, so the resolved
  config now always enables search (field kept for 1.x provider config
  compatibility).
- Add routing audit evidence to every RoutingResolution/RoutingDecision:
  searchRequired (boolean) and searchPolicySource (EXPLICIT | TASK_DEFAULT),
  exposed through route() and the call log.
- Classify the new capability-combination error as a local error so it can
  never poison provider circuit health.
- Add tests/routing-matrix.test.ts: table-driven matrix A-M, audit evidence,
  dispatch-path selection with injected provider doubles, consensus
  non-authority, and Perplexity config/route agreement.

verify:all passes (build, types, declarations, lint, provider-boundary,
125 tests, audit, package smoke).

Co-Authored-By: Claude <noreply@anthropic.com>
@sonarqubecloud

Copy link
Copy Markdown

@cryptoxdog

Copy link
Copy Markdown
Collaborator Author

Superseded by campaign/7-router-capability-integrity (capability-integrity hardening, blueprint llm_router_capability_integrity_3045134d).

@cryptoxdog cryptoxdog closed this Aug 18, 2026
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