What's Changed
⚠️ Compatibility Notes
- Protect the
gh-awcanonical session capture from agent tools by @dsfaccini in #10606 - Add multimodal notes to
AskUserAnswerby @dsfaccini in #11664 - Count
BrowserUsemodel calls toward the host run's usage andUsageLimitsby @mpfaffenberger in #11860 - Name the V2 replacement when code imports a name V2 removed, like
OpenAIModelorMCPServerStdioby @DouweM in #12035 - Fall back to the next model in
ModelFallbackwhen a model refuses, and letContentFilterErrorinfallback_onmatch refusals by @DouweM in #12039 - Raise
ModelQuotaExceededErrorinstead ofModelRateLimitErrorfor Z.ai balance and plan-limit 429s by @DouweM in #12042 - Support the
'12h'prompt cache retention on the OpenAI Responses API for GPT-5.6 and later by @DouweM in #12046 - Send Google a server deadline of at least 20 minutes instead of the client's read timeout, and warn about httpx's 5 s default by @DouweM in #12057
- Stop Temporal from retrying model errors that can't succeed on retry by default, via
non_retryable_model_errorsby @DouweM in #12107
🚀 Features
- Add WebSocket transport to OpenAI Responses by @dsfaccini in #10444
- Add
ConversationStore, which keeps a conversation as a log of messages stored once, andConversation.revisionto catch conflicting saves by @DouweM in #10658 - Add multimodal notes to
AskUserAnswerby @dsfaccini in #11664 - Add
anthropic_web_tools_allowed_callersto setallowed_callerson Anthropic's web tools by @aweis89 in #10489 - Support the
'12h'prompt cache retention on the OpenAI Responses API for GPT-5.6 and later by @DouweM in #12046 - Send mid-conversation system prompts natively on OpenRouter OpenAI routes and the Claude models that support them by @DouweM in #12056
- Name the V2 replacement when code imports a name V2 removed, like
OpenAIModelorMCPServerStdioby @DouweM in #12035 - Fall back to the next model in
ModelFallbackwhen a model refuses, and letContentFilterErrorinfallback_onmatch refusals by @DouweM in #12039
🐛 Bug Fixes
- Raise
ModelContextWindowExceededErrorandModelQuotaExceededErrorfor Bedrock errors onAsyncAnthropicBedrockby @DouweM in #12040 - Raise
ContentFilterErrorinstead ofTypeErrorwhen Azure filters a streamedOpenAIChatModelprompt by @DouweM in #12041 - Re-surface nested
RepoContextinstruction files after compaction, and stop repeating notes still in history by @DouweM in #11704 - Include the refusal text in
ContentFilterErrorwhen the provider also reports a finish reason by @DouweM in #12036 - Raise
ModelQuotaExceededErrorinstead ofModelRateLimitErrorfor Z.ai balance and plan-limit 429s by @DouweM in #12042 - Protect the
gh-awcanonical session capture from agent tools by @dsfaccini in #10606 - Close
PlaywrightBrowser's Chromium and driver when ananyioscope cancels a run by @dsfaccini in #12047 - Ask
Coderto match the surrounding code's style instead of applying SOLID by @mpfaffenberger in #12120 - Return a
Codertool's error to the model once its retries run out instead of ending the run by @mpfaffenberger in #12121 - Keep
*argsand**kwargsdocstring descriptions on tool parameters by @Aryapatel-007 in #12126 - Read tool parameter descriptions from
Keyword ArgsandOther Parametersdocstring sections by @roydonsequeira in #10035 - Let a retired
aws_lambdaagent loop finish its own cleanup at the grace deadline by @dsfaccini in #12140 - Treat
auth=''as unset alongsideclientinGitHub,Notion,Ordinal,PostHog,Pylon, andSlackby @mpfaffenberger in #11852 - Count
BrowserUsemodel calls toward the host run's usage andUsageLimitsby @mpfaffenberger in #11860 - Let
FileSystemtools emit their events underPrefixToolsby @mpfaffenberger in #11867 - Forward
cache='1h'to Claude Haiku 5.5 on Bedrock instead of snapping it to'5m'by @DouweM in #12045 - Mark
<context>elements in user and tool content as not from the application by @DouweM in #12050 - Stop Temporal from retrying subclasses of non-retryable errors, like
ContentFilterErroror aUserErrorsubclass by @DouweM in #12105 - Stop Temporal from retrying model errors that can't succeed on retry by default, via
non_retryable_model_errorsby @DouweM in #12107 - Stop sending a history container on Anthropic requests without code execution by @dsfaccini in #11764
- Send Google a server deadline of at least 20 minutes instead of the client's read timeout, and warn about httpx's 5 s default by @DouweM in #12057
- Place the OpenRouter Gemini message cache breakpoint before the final message, where it no longer doubles the billed prompt by @DouweM in #12048
📦 Dependencies
- Remove the Daytona
close()workaround and requiredaytona>=0.226.1by @mislavivanda in #11977
New Contributors
- @Aryapatel-007 made their first contribution in #12126
- @roydonsequeira made their first contribution in #10035
- @mislavivanda made their first contribution in #11977
Full Changelog: v2.64.0...v2.65.0