What's Changed
🔒 Security
- Fix exponential-time regex in Google
FileSearchToolresponse parsing by @DouweM in #5106. This was first released in yesterday's v1.83.0. The pattern was reachable in principle from Gemini streaming responses but could not be triggered via real Gemini output in testing, so we're treating it as a hardening fix rather than a vulnerability.
🚀 Features
- Add Claude Opus 4.7 support by @dsfaccini in #5118
- Add stateful compaction mode to
OpenAICompactionby @DouweM in #5108 - Add
OllamaModelsubclass and correct Ollama capability flags to fix structured output on Ollama Cloud by @Goldokpa in #4160
🐛 Bug Fixes
- Fix deferred tool search keyword matching by @pandego in #5014
- Fixing parsing
openai_logprobsfor streamed responses by @iAmir97 in #5091 - fix(openai): handle null text in Responses API output by @DouweM in #5124
- Chain OpenAI Responses retries through concrete
openai_previous_response_idseeds by @DouweM in #5126 - fix: exclude resumed requests from
new_messages()even with currentrun_idby @madanlalit in #4731
New Contributors
Full Changelog: v1.83.0...v1.84.0