Retire wording tied to pre-2.0 milestones - #3211
Conversation
Several docstrings, comments, and story READMEs still described work as "expected before v2 is final", "planned before beta", or "revisit before beta" — milestones that passed with the 2.0 release. Reword the provisional middleware/dispatcher notes as "may change in a 2.x minor release", drop the stale beta TODOs, and correct the middleware story: MCPServer now exposes the same middleware list as the lowlevel Server. No-Verification-Needed: doc, comment, and docstring wording only
📚 Documentation preview
|
There was a problem hiding this comment.
LGTM — wording-only change retiring stale pre-2.0 milestone language; no behavioral changes.
What was reviewed:
- Confirmed every hunk touches only comments, docstrings, README prose, or a divergence-note string in test metadata (
tests/interaction/_requirements.py) — no executable code changes. - Verified the middleware-story correction against the source:
MCPServer.middlewareand themiddleware=constructor kwarg do exist insrc/mcp/server/mcpserver/server.py, so the old "no public accessor yet" claim was indeed stale. - Checked the new "may change in a 2.x minor release" caveat is applied consistently across the middleware doc, both server docstrings, and the dispatcher protocol.
Extended reasoning...
Overview
This PR updates wording in 14 files — docs (docs/advanced/middleware.md), story READMEs and one story module docstring under examples/stories/, code comments/docstrings in src/mcp/server/lowlevel/server.py, src/mcp/server/mcpserver/server.py, and src/mcp/shared/dispatcher.py, and one description string in tests/interaction/_requirements.py. All changes replace milestone-relative language ("before beta", "before v2 is final", "before v2 stable") with forward-looking phrasing ("may change in a 2.x minor release") or plain statements of the current state, now that 2.0 has shipped.
Security risks
None. No executable code paths are modified — the diff consists entirely of comments, docstrings, markdown prose, and a string literal inside test requirement metadata.
Level of scrutiny
Low. The only substantive claim requiring verification was the middleware-story correction — that MCPServer now exposes middleware publicly. I confirmed both the middleware= constructor parameter and the middleware property exist in src/mcp/server/mcpserver/server.py, matching the PR description's reference to #3201. The _requirements.py edit changes a divergence note (documentation embedded in test data), not any assertion or test behavior.
Other factors
The bug hunting system found no issues. The PR is consistent with the repo's own AGENTS.md branching-model guidance (main is the stable v2 line), the author deliberately scoped out two adjacent notes that don't name milestones, and the remaining provisional caveats keep their intent — they just no longer point at a milestone in the past. No prior reviewer comments are outstanding.
Several docstrings, comments, and story READMEs still describe work as "expected before v2 is final", "planned before beta", or "revisit before beta" — milestones that passed when 2.0 shipped.
Motivation and Context
The provisional middleware/dispatcher surface stays provisional, but the caveat now says what it means going forward — "may change in a 2.x minor release" — instead of pointing at a milestone in the past. The stale beta TODOs on the stories are dropped, and the middleware story is corrected: it claimed
MCPServerhas no public middleware accessor yet, butMCPServer.middleware(and themiddleware=constructor argument) shipped in #3201.How Has This Been Tested?
Wording only.
ruffandpyrightclean via pre-commit.Breaking Changes
None.
Types of changes
Checklist
Additional context
Two adjacent notes were left alone on purpose:
stories/error_handling("the contract is under design") andstories/README.md("hosting surface that are still moving") — neither names a milestone, and whether they still hold is a separate call.AI Disclaimer