Skip to content

refactor(orchestration): retire last bare AgentRegistry + canonical capability lookup (#6828) - #11756

Merged
mrveiss merged 2 commits into
Dev_new_guifrom
issue-6828
Jul 15, 2026
Merged

mrveiss merged 2 commits into
Dev_new_guifrom
issue-6828

Conversation

@mrveiss

@mrveiss mrveiss commented Jul 15, 2026

Copy link
Copy Markdown
Owner

Closes #6828

Thinking Path

Owner green-lit this design refactor today. Wiring map established first (the issue's table had gone stale): the 4-way class rename already landed via #8082/#11430, and the "orphan" claim on orchestration/agent_registry.py is false — it feeds the REAL production tool-dispatch seam (chat_workflow/tool_handler.py) plus orchestrator/API callers. This PR delivers the reopened scope's remaining substance, not docs.

What Changed

  • Retired the LAST bare AgentRegistry name (zero-importer compat alias in agent_evolution.py); post-grep exactly 2 class defs remain (AgentRegistryService, AgentRegistryProtocol) — issue AC met.
  • Canonical "find an agent that can do X": new runtime-checkable AgentCapabilityLookup Protocol in autobot_shared/agent_registry_protocol.py; AgentCapabilityRegistry is the canonical implementer and now concretely implements AgentRegistryProtocol.update_specializations — the Protocol's first real implementer, verified end-to-end.
  • New get_default_capability_registry() singleton accessor — folded 3 ad-hoc registry constructions onto one instance.
  • GET /api/agent/agents/available now merges AI Stack agents with the canonical local registry, optional capability filter, and degrades to local-only 200 instead of 503 when AI Stack is down (the one deliberate behavior change; follows bug(agents): /api/agents/status 503 in single_user — agent registries are PG-gated, no unified runtime source #10511 precedent; no frontend consumers — grep-verified; covered by test).
  • Stale protocol-module docstring fixed (pre-rename names, false orphan claim).

Verification

Follow-up (orphans left tracked, not deleted): AgentEvolutionTracker has a real registry seam now but no scheduler — wire-in issue text provided in #6828 closure; AgentClient/get_agent_client zero external callers.

Model Used

Claude Fable 5 (subagent: general-purpose)

… canonical service + renamed distinct registries (#6828)
@github-actions

Copy link
Copy Markdown
Contributor

✅ SSOT Configuration Compliance: Passing

🎉 No hardcoded values detected that have SSOT config equivalents!

Auto-regenerated (py3.14) to match the backend schema so the required
verify-generated-types gate passes. Triggered by auto-fix-generated-types.yml.
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