Resource templates now match what clients actually send: literals raw or percent-encoded, and list query parameters exploded or comma-joined. A Client whose exit is cancelled releases its session instead of leaking it, completion no longer answers for prompts and templates the caller can't see, and JSON schemas with float or oversized length limits load instead of failing. The auth fixes cache OIDC discovery and keep Google tokens out of request URLs.
What's Changed
Enhancements ✨
- Name nested fields in detailed CodeMode schemas by @zzstoatzz in #5111
- Add a docs skill by @zzstoatzz in #5175
- Add constrained Fire TV tools to the smart-home example by @zzstoatzz in #5187
- transforms: add experimental JevSearchTransform by @zzstoatzz in #5170
- Expose FileSystemProvider discovery failures by @spark-328 in #5164
- Run Windows tests on main and manual runs only by @zzstoatzz in #5198
- Add langchain.mcp, ClientGroup, and a FastMCP proxy to the downstream smoke by @zzstoatzz in #5222
Security 🔒
- fix(auth): keep Google access tokens out of request URLs by @zzstoatzz in #5185
- completions: answer only references the caller can list by @zzstoatzz in #5240
Fixes 🐞
- codemode: raise legible errors in the sandbox; render enums and defaults in
get_schemaby @zzstoatzz in #4970 - fix(ci): stabilize Marvin label triage by @zzstoatzz in #5197
- fix(resources): percent-encode URI template literals (RFC 6570 §3.1) by @LGUIUX in #5167
- fix(resources): encode data-backed file names by @RaycarlLei in #5140
- Preserve binary resource contents in response cache by @brennanbutler01 in #5181
- fix(auth): preserve DNS resolver order when deduplicating resolved IP addresses (#5151) by @seotarek in #5157
- Keep shared stdio sessions alive until the last client exits by @Aurelucien in #5180
- fix(transforms): bound Jev search narrowing by @zzstoatzz in #5199
- fix(auth): cache OIDC discovery configuration by @sui-ni2 in #4861
- fix(resources): support exploded list query parameters by @zzstoatzz in #5206
- Keep string length and pattern constraints when a format is set by @zzstoatzz in #5208
- fix(openapi): rewrite model references in prefixItems by @asts-top in #5131
- Accept integral float counts like minLength 2.0 in JSON schemas by @zzstoatzz in #5214
- Stop an unshared stdio subprocess when its session exits under cancellation by @zzstoatzz in #5215
- Match resource template literals whether they arrive raw or percent-encoded by @zzstoatzz in #5216
- Accept non-exploded list query params as comma-joined values by @zzstoatzz in #5218
- Revert shared keep_alive=False stdio sessions (#5180, #5215) by @zzstoatzz in #5219
- Render non-JSON schema defaults and enums in the markdown tool serializer by @zzstoatzz in #5220
- Tolerate JSON schema counts larger than any real length by @zzstoatzz in #5221
- Release a Client's session hold before any await when a context exits by @zzstoatzz in #5223
- ci: retry downstream version lookups and bind the wedge test's names by @zzstoatzz in #5239
Docs 📚
- docs: explain HttpResource uri versus url by @zzstoatzz in #5168
- docs: fix version label and language dropdown overlap by @zzstoatzz in #5172
- docs: accessibility sweep by @zzstoatzz in #5174
- docs: fix dead links to relocated Anthropic and Docket docs by @uhhgxg in #5205
- Update the Pydantic AI integration docs for MCPToolset and the 2.45 floor by @zzstoatzz in #5211
- docs: add v4.0.6 changelog entries by @zzstoatzz in #5241
Dependencies 📦
- chore(deps): bump the uv group across 2 directories with 3 updates by @dependabot[bot] in #5171
Other Changes 🦾
- chore(deps): Update astral-sh/setup-uv action to v10.1.0 by @prefect-renovate[bot] in #5191
New Contributors
- @LGUIUX made their first contribution in #5167
- @RaycarlLei made their first contribution in #5140
- @brennanbutler01 made their first contribution in #5181
- @seotarek made their first contribution in #5157
- @spark-328 made their first contribution in #5164
- @Aurelucien made their first contribution in #5180
- @uhhgxg made their first contribution in #5205
Full Changelog: v4.0.5...v4.0.6