fix(plugin-host): source declared_supports_mcp from the plugin manifest (REQUIREMENT-039)#315
Merged
Merged
Conversation
Provider discovery now reads declared_supports_mcp from the plugin's DECLARED manifest field (PluginManifest.supports_mcp) instead of a hardcoded true (TASK-277 / REQUIREMENT-039). The #314 plumbing already threads declared_supports_mcp into capabilities().supports_mcp; this only changes its SOURCE. - New helper declared_supports_mcp_from_manifest reads manifest.supports_mcp with a back-compat default of true, so an undeclared field (older plugins before protocol 1.2.0) keeps the historical MCP-capable default; only an explicit false opts a provider out. Unit test covers None/false/true. - All in-tree PluginManifest literals gain supports_mcp: None (mechanical, required by the new protocol field). - animus-plugin-runtime provider manifest emits None with a TODO(codex-p2) to plumb an opt-out through ProviderInfo (mirrors the protocol repo deferral). Protocol dep temporarily repinned to the animus-protocol branch agent/v0.7.0/declared-supports-mcp so this builds; the main session repins the fleet to the cut protocol tag.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…upports-mcp-from-manifest
…ts_mcp landed) Protocol #4 (supports_mcp manifest field) is merged + tagged v0.7.0-rc.6; repin all animus-protocol git deps from the dev branch to that tag. Merged current release/0.7 (rc.8 cleanup PRs) in; builds clean.
Shooksie
marked this pull request as ready for review
July 9, 2026 22:27
Shooksie
added a commit
that referenced
this pull request
Jul 9, 2026
Consolidated cleanup on top of rc.8, all driven by the 'ask the plugin, don't hardcode' principle: - TASK-275 (#319): migrate ALL role resolution to serves_kind/discover_by_kind (fixes log_storage + trigger silent role-miss) + a reserved-provider-name install-gate bypass (P1). - TASK-276 (#318): route task-status OUTPUT projections through the subject router, not the empty in-tree hub.tasks() store (fixes portal tasks stuck InProgress after a run finishes/fails). - TASK-278 (#317): remove the deprecated --task-id/--requirement-id flags from the CLI + MCP; task/requirement are ordinary subject kinds via --subject-id. BREAKING: external callers must switch; requirement runs via --subject-id need an explicit --workflow-ref. - TASK-277 (#315 + animus-protocol v0.7.0-rc.6): supports_mcp is now a first-class DECLARED plugin manifest field; the kernel reads it instead of a name heuristic. Protocol deps repinned to v0.7.0-rc.6. - TASK-284 (#320): new 'animus mcp call' / 'animus mcp tools' — invoke MCP tools from the CLI via the proxy (enabler for deterministic MCP use in command phases + scripts).
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.
What
The provider plugin host now sources declared_supports_mcp from the plugin's DECLARED manifest field (PluginManifest.supports_mcp) instead of a hardcoded true. First slice of TASK-277 / REQUIREMENT-039.
The #314 (rc.8) plumbing already threads declared_supports_mcp all the way into capabilities().supports_mcp and the MCP-injection decision. This PR only changes its SOURCE from a constant to the manifest.
Changes
Back-compat
An undeclared field (older plugins built before protocol 1.2.0, which omit it) resolves to true via unwrap_or(true) — identical to today behavior. Only an explicit false opts a provider out of host MCP-server injection.
Coordination for main session — REQUIRED before merge
Gates
Part of TASK-277 / REQUIREMENT-039.