Skip to content

feat(capabilities): advertise protocolVersion/pluginVersion in ping; 404 on unknown route - #20

Closed
D3vCrow wants to merge 1 commit into
AnkleBreaker-Studio:mainfrom
D3vCrow:capability-handshake
Closed

feat(capabilities): advertise protocolVersion/pluginVersion in ping; 404 on unknown route#20
D3vCrow wants to merge 1 commit into
AnkleBreaker-Studio:mainfrom
D3vCrow:capability-handshake

Conversation

@D3vCrow

@D3vCrow D3vCrow commented Jul 12, 2026

Copy link
Copy Markdown

Plugin half of a capability handshake so the server can negotiate features across version drift.

  • Ping response now advertises protocolVersion and pluginVersion.
  • Unknown routes now return HTTP 404, so the server can detect an unsupported route and degrade gracefully instead of failing on an ambiguous response.

Pairs with the server-side protocolVersion gate. No behavior change for existing routes.

…4 on unknown route

New MCPCapabilities.cs (ProtocolVersion=1, PluginVersion=2.27.0). /api/ping now
carries both so the MCP server can feature-detect this plugin and degrade
gracefully on version drift. Unknown routes return a typed {error,unknownRoute}
dict, mapped to HTTP 404 on the direct sync path so a route miss cannot read as
HTTP-200 success (queued path keeps its in-band error; server detects both).
Pattern ported (not copied) from Unity ML-Agents UnityRLCapabilities.
Ref: knowledge/research/2026-07-12-vet-unity-ml-agents.md
NOTE: not yet compiler-verified - needs a Unity recompile (domain reload).
@francoios

Copy link
Copy Markdown
Contributor

Thank you for this, @D3vCrow — the capability-handshake idea (advertise protocolVersion/pluginVersion in ping, handle unknown routes gracefully) was genuinely valuable. It's been re-implemented on the current main (now merged via #21): the plugin advertises protocolVersion/pluginVersion in its ping, and the server gates features on it with reactive unknown-route detection that covers every plugin era (legacy 404, old-plugin enveloped error, failed ticket). Your PR is credited in the changelog.

Closing as superseded by the forward-port — but the idea and the credit are yours. 🙏

@francoios francoios closed this Jul 24, 2026
@D3vCrow
D3vCrow deleted the capability-handshake branch July 25, 2026 05:59
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.

2 participants