mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-09 15:19:10 +02:00
* Design doc: stateless session state * Add stateless session-state primitives: Scope, SessionCodec, scoped state * Add SessionProvider and Session() annotation for stateless session state * Rewrite session-state design to final shape (Session object, two patterns, no seal) * Rework stateless session state to final Session/SessionId design Remove Scope, SessionCodec/sealing, and scoped ctx.get_state. Add the Session object (get/set/delete/clear over one dict per (principal, session_id) key), injected session: Session (keyed by principal, requires auth), session_id: SessionId argument with auto-filled description, and SessionProvider contributing create_session/end_session. * Rename injected marker to UserSession; auto-wire SessionProvider on SessionId * Document stateless session state as a v4 feature * Require SessionProvider and make sessions create-then-validate Remove the implicit SessionProvider auto-wiring; a SessionProvider must now be registered explicitly. create_session records an owned session and get_session validates the id, rejecting uncreated or foreign ids. * Add Session.id (public id for session_id sessions, None for UserSession) * Fix ty: narrow Tool | None and ToolResult.structured_content in session tests * Fix session-provider enforcement gap for non-local tools; stop embedding raw principal in UserSession key * Fix disabled session_id tools blocking listing; reject local tools shadowing SessionProvider lifecycle names * Decouple SessionId description from lifecycle tool name so it survives namespaced mounts * Remove SessionProvider enforcement; get_session validation is the guarantee * Fix stale enforcement/key-format docs; document store-owned session TTL * Dedup SessionId contract description; tighten context.mdx session-state lead * Make session store/description resolution work in Docket task workers and for partial tools * Expose get_session as a standalone task-safe function; drop foreground-only Context.get_session * Move get_session to dependencies alongside the other request accessors * Reframe context state docs as Request State; cross-request persistence points to Session State * Address UserSession injection edge cases from review - inject a UserSession instance (not bare Session) so isinstance holds - support session: UserSession | None = None (inject None when unauth) - detect SessionId params past a partial's positional binding |
||
|---|---|---|
| .. | ||
| .cursor/rules | ||
| apps | ||
| assets | ||
| cli | ||
| clients | ||
| community | ||
| css | ||
| deployment | ||
| development | ||
| getting-started | ||
| integrations | ||
| more | ||
| patterns | ||
| public/schemas/fastmcp.json | ||
| python-sdk | ||
| servers | ||
| snippets | ||
| tutorials | ||
| v2 | ||
| .ccignore | ||
| changelog.mdx | ||
| docs.json | ||
| fastmcp-analytics.js | ||
| prefab-demo-payloads.js | ||
| python-sdk-pages.json | ||
| unify-intent.js | ||
| updates.mdx | ||
| v2-banner.js | ||
| v2-navigation.json | ||