[FEATURE] Adopt rmcp 3.2.0 for MCP initialize/session negotiation - #90
Merged
Merged
Conversation
rmcp 3.2.0 treats any initialize as a legacy handshake and keeps it on the session path (modelcontextprotocol/rust-sdk#1228). pTask's /mcp mount is StreamableHttpService; 3.1.4 could accept a 2026-07-28 initialize and then handle the session with modern-lifecycle semantics.
puretensor
force-pushed
the
grok/review/rmcp-3-2-0
branch
from
September 6, 2026 08:17
c9ddce4 to
b0519f8
Compare
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.
Seat: grok-4.6 / xhigh (adversarial review wave 4, 2026-09-06)
Category: [FEATURE]
Problem / Opportunity: pTask's MCP surface is
rmcp::transport::streamable_http_server::StreamableHttpServicemounted at/mcp(plus stdio viapt mcp). The repo pins rmcp 3.1.4. rmcp 3.2.0 (crates.io, published 2026-08-31) fixes initialize negotiation on that exact tower path so a handshake cannot be routed as a modern stateless session.Evidence: Fetched this session.
crates.io JSON (
https://crates.io/api/v1/crates/rmcp):"default_version":"3.2.0","max_stable_version":"3.2.0", version 3.2.0"created_at":"2026-08-31T23:16:49.374902Z","yanked":false. 3.1.4 remains listed as the previous stable.Changelog (https://raw.githubusercontent.com/modelcontextprotocol/rust-sdk/main/crates/rmcp/CHANGELOG.md):
Server-side contract, from modelcontextprotocol/rust-sdk#1228 (merged 2026-08-31):
pTask uses that tower service:
Not claimed: #1186 concurrent HTTP. That PR is client-transport (
StreamableHttpClientTransportConfig::max_concurrent_requests); quote from the PR: "The shared worker's control queue is opt-in; server scheduling is unchanged." pTask is a server. OAuth (#1232) and request-state (#1128) are unused (those features are not enabled).Change: Workspace pin
rmcp = "3.1.4"→"3.2.0".cargo update -p rmcp --precise 3.2.0movedrmcpandrmcp-macros3.1.4 → 3.2.0. pTask 3.24.1 → 3.25.0. No pTask source changes; the public MCP tool surface is unchanged.Verification:
Lockfile delta is 22 lines (
rmcp+rmcp-macros+ workspace package stamps).initializekeep a session instead of the 3.1.4 stateless mis-route. Revert is a clean single-commit revert.