Publish docs for v3.2.0#3713
Conversation
* Add settings reference page * Note .env caveat for nested Docket settings
* feat: add --config-path flag to claude-desktop install command * feat: add --config-path flag to claude-desktop install command * docs: add --config-path option to install-mcp documentation * fix: show specific error message when provided --config-path does not exist
* Fix auto-close MRE script posting comment without closing issue * Surface partial failures when comment post fails after close
🤖 Generated with GPT-5.2-Codex
Message.content now accepts ImageContent and AudioContent in addition to TextContent and EmbeddedResource, matching MCP's ContentBlock type. This fixes ProxyPrompt.render() silently JSON-serializing image/audio content instead of preserving it. 🤖 Generated with Claude Code Co-Authored-By: Claude Opus 4.6 <[email protected]>
* Deprecate PromptToolMiddleware and ResourceToolMiddleware * Remove deprecated middleware from docs entirely * Remove entire Tool Injection section from middleware docs
🤖 Generated with GPT-5.2-Codex
…3411) * Cap client auto-pagination pages 🤖 Generated with GPT-5.2-Codex * Raise on pagination limit instead of returning partial data Add max_pages kwarg (default 250) to list_tools/list_resources/ list_resource_templates/list_prompts so users can control the bound.
* Validate version metadata to reject non-scalar types (#3422) 🤖 Generated with Claude Code * Reject bool values in version coercion
* Bind Cognito verifier audience to client ID 🤖 Generated with GPT-5.2-Codex * Fix ty error: narrow return type of AWSCognitoProvider.get_token_verifier 🤖 Generated with Claude Code
…roxyClient (#3408) * Avoid reusing connected ProxyClient sessions 🤖 Generated with Codex * Fix static analysis: ruff format + ty type narrowing
🤖 Generated with GPT-5.2-Codex
🤖 Generated with GPT-5.2-Codex
* Guard OAuth callback result overwrite 🤖 Generated with GPT-5.2-Codex * Fix ruff formatting in test_oauth_callback_race.py Co-authored-by: Jeremiah Lowin <[email protected]> Co-Authored-By: Claude Opus 4.6 <[email protected]> --------- Co-authored-by: Marvin Context Protocol <41898282+Marvin Context [email protected]> Co-authored-by: Jeremiah Lowin <[email protected]> Co-authored-by: Claude Opus 4.6 <[email protected]>
* Block HS* algorithms with JWKS in JWT verifier 🤖 Generated with GPT-5.2-Codex * Fix ruff format: remove extra blank line in test_supabase.py 🤖 Generated with Claude Code Co-authored-by: Jeremiah Lowin <[email protected]> --------- Co-authored-by: Marvin Context Protocol <41898282+Marvin Context [email protected]> Co-authored-by: Jeremiah Lowin <[email protected]>
🤖 Generated with GPT-5.2-Codex
🤖 Generated with GPT-5.2-Codex
* Block BulkToolCaller self-invocation 🤖 Generated with GPT-5.2-Codex * Fix ruff format violation in test_bulk_tool_caller.py 🤖 Generated with Claude Code
* Fix get_* returning None when latest version is disabled (#3421) When a visibility transform disabled the highest version of a component, get_tool/get_resource/get_resource_template/get_prompt returned None instead of falling back to the next-highest enabled version. The list_* path already worked correctly because deduplication runs after visibility filtering. The get_* path now falls back to listing all versions and picking the highest enabled one when the top version is disabled. * Apply auth checks in version fallback paths The fallback code in get_tool, get_resource, get_resource_template, and get_prompt bypassed auth filtering when falling back to older versions after the highest version was disabled. This could expose auth-protected older versions to unauthorized users.
* Fix server lifespan overlap teardown 🤖 Generated with GPT-5.2-Codex * Clear lifespan state when non-owner session is last to exit
* Fix output schema object detection 🤖 Generated with GPT-5.2-Codex * Fix ty invalid-type-alias-type error Co-authored-by: Jeremiah Lowin <[email protected]> 🤖 Generated with Claude Code * Fix $ref resolution to handle JSON Pointer escaping and nested paths --------- Co-authored-by: Marvin Context Protocol <41898282+Marvin Context [email protected]> Co-authored-by: Jeremiah Lowin <[email protected]>
…tations (#3429) * Preserve kw-only defaults in cloned adapters (🤖 GPT-5.2-Codex) * Fix ruff format violation in test_types.py
…ting_demo in the uv group across 1 directory (#3685) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: marvin-context-protocol[bot] <225465937+marvin-context-protocol[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: marvin-context-protocol[bot] <225465937+marvin-context-protocol[bot]@users.noreply.github.com>
Co-authored-by: marvin-context-protocol[bot] <225465937+marvin-context-protocol[bot]@users.noreply.github.com>
Co-authored-by: Claude <[email protected]>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 665514e19a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if token_id not in self._refresh_locks: | ||
| self._refresh_locks[token_id] = anyio.Lock() | ||
| lock = self._refresh_locks[token_id] |
There was a problem hiding this comment.
Evict per-token refresh locks after refresh attempt
The new transparent-refresh path stores an anyio.Lock per upstream_token_id in _refresh_locks, but those entries are never removed. In a long-running OAuth proxy with normal token churn, this dictionary will grow monotonically with every distinct token and retain stale locks indefinitely, creating an avoidable memory leak. Please clean up the lock (for example in a finally block once the locked section completes, with a safety check for waiters) or otherwise bound this map.
Useful? React with 👍 / 👎.
Merge main into published-docs for the v3.2.0 release.