Retire wording tied to pre-2.0 milestones (#3211)

This commit is contained in:
Max 2026-07-29 14:54:23 +01:00 • committed by GitHub
commit b31ddf37ed
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 26 additions and 28 deletions

View file

@ -94,8 +94,7 @@ eras need different auth, rate limits, or scaling.
- DNS-rebinding protection is on by default; the harness disables it
(`NO_DNS_REBIND`) because the in-process httpx2 client sends no `Origin`.
Drop the kwarg for a real deployment.
- `mcp.shared.inbound` is a deep import path — a shorter re-export is planned
before beta.
- `mcp.shared.inbound` is a deep import path; there is no shorter re-export.
## Spec

View file

@ -31,12 +31,13 @@ uv run python -m stories.middleware.client --http
## Caveats
- **Lowlevel-only.** `Server.middleware` on `mcp.server.lowlevel.Server` is the
one public hook; `MCPServer` has no public accessor for it yet (a
`MCPServer.middleware` accessor is planned before beta).
- **One list, two accessors.** `Server.middleware` on
`mcp.server.lowlevel.Server` is the hook this story uses; `MCPServer`
exposes the same list as `MCPServer.middleware` (or takes it at
construction as `MCPServer(name, middleware=[...])`).
- The middleware signature is **provisional** (see the TODO in
`src/mcp/server/lowlevel/server.py`): it tightens to a covariant `Context[L]`
and gains an outbound seam before v2 final.
`src/mcp/server/lowlevel/server.py`): it may change in a 2.x minor release,
tightening to a covariant `Context[L]` and gaining an outbound seam.
- `ServerMiddleware` / `CallNext` / `HandlerResult` are imported from
`mcp.server.context` (helper tier); not re-exported at `mcp.server.lowlevel`.
- Do **not** `await ctx.session.send_request(...)` while wrapping `initialize`

View file

@ -1,7 +1,7 @@
"""Dispatch-layer middleware: `Server.middleware` is the public hook.
A lowlevel-only story: `MCPServer` has no public middleware accessor yet, so the
one supported registration point is the `middleware` list on `lowlevel.Server`.
This story registers on the lowlevel `Server`; `MCPServer` exposes the same
list as `MCPServer.middleware`, so the recipe carries over unchanged.
"""
import json

View file

@ -3,7 +3,6 @@
> **Deprecated** in the 2026-07-28 protocol (SEP-2577); functional through the
> deprecation window. Migration: accept directory paths as ordinary tool
> parameters or resource URIs instead of relying on `roots/list`.
> TODO(maxisbey): revisit before beta.
The client passes a `list_roots_callback` returning the filesystem locations it
is willing to expose; a server tool calls `ctx.session.list_roots()` mid-request

View file

@ -3,7 +3,6 @@
> **Deprecated** in the 2026-07-28 protocol (SEP-2577); functional through the
> deprecation window. Migration: call your LLM provider directly from the
> server instead of requesting completions through the client.
> TODO(maxisbey): revisit before beta.
A tool that asks the **client's** LLM for a completion mid-call — the inverted
MCP direction. The server holds no model API key; it awaits

View file

@ -34,15 +34,15 @@ uv run python -m stories.serve_one.client
## Caveats
- **Deep imports** — `serve_one`, `serve_connection`, and `Connection` are only
reachable at `mcp.server.runner` / `mcp.server.connection` today; a shorter
`mcp.server.*` re-export is tracked for beta.
reachable at `mcp.server.runner` / `mcp.server.connection`; there is no
shorter `mcp.server.*` re-export.
- **Lowlevel-only.** The drivers take a `lowlevel.Server` and `MCPServer` has
no public accessor for its underlying one (`_lowlevel_server` is private), so
there is no `MCPServer`-tier variant of this story. Build the lowlevel
`Server` directly until that accessor lands.
- **No public `DispatchContext`** — `SingleExchangeContext` is hand-rolled
boilerplate; a public helper (or a `serve_one` overload that builds one) is
tracked for beta.
boilerplate; there is no public helper (or `serve_one` overload) that builds
one.
- **Lifespan** — the transport entry enters `server.lifespan(server)` **once**
and threads `lifespan_state` to every `handle_one()` call; never enter it
per-request.

View file

@ -4,7 +4,7 @@
> the sessionful transport are removed in the 2026-07-28 protocol (SEP-2575)
> with no modern-era equivalent; the closest 2026-era pattern is client-side
> reconnection over a persisted `DiscoverResult` —
> [`reconnect/`](../reconnect/). TODO(maxisbey): revisit before beta.
> [`reconnect/`](../reconnect/).
SEP-1699 server-initiated SSE disconnection with `Last-Event-ID` replay. The
server's `EventStore` stamps every SSE event with an ID and opens each response

View file

@ -45,8 +45,7 @@ kill "$SERVER_PID"
no `Origin` header. Remove it (or configure allowed hosts) for a real
deployment.
- The parent-lifespan dance is a known SDK ergonomics gap (other SDKs mount
with no extra ceremony); tracked for the beta reshape. The recipe shown here
is what works today.
with no extra ceremony). The recipe shown here is what works today.
## Spec

View file

@ -55,7 +55,7 @@ uv run python -m stories.streaming.client --http --server server_lowlevel
through the deprecation window. Migration: write to stderr or emit
OpenTelemetry instead of `notifications/message`. It is shown here because
servers still need to support 2025-era clients during that window. Progress
and cancellation are **not** deprecated. TODO(maxisbey): revisit before beta.
and cancellation are **not** deprecated.
- A cancelled request is not answered: no response follows
`notifications/cancelled`. (The 2025-era streamable HTTP transport is the one
exception - its wire ends a request only with a response, so it terminates