What's Changed
🚀 Features
- Support hiding function tools until revealed — via tool search,
load_capability, orToolReturn.tools— using each provider's native deferral/addition channel by @DouweM in #7104 - Add first-party run cancellation:
AgentRun.cancel(),RunContext.cancel(),RunCancelledby @DouweM in #6497 - Add
Model.resolve_prompt_cache_retention()to resolve effective prompt-cache retention from model settings by @DouweM in #7254 - Promote
run_stream_events()iterator to publicAgentRunEventshandle withcancel()and run-state access by @DouweM in #6498 - Cover and document DeepSeek V4 Flash via
OpenAIResponsesModel+DeepSeekProviderby @dsfaccini in #7202
🐛 Bug Fixes
- Forward
model_idthroughWrapperModeland resolve it against the active model inTemporalModelby @dsfaccini in #7181 - Map streamed OpenRouter reasoning details by their index by @VictorPeralta in #7214
- Gate OpenRouter off native mid-conversation system messages with
supports_inline_system_prompts=Falseby @DouweM in #7253 - Restore the released legacy profile-key shim and fix two reveal-state edges (
is_tool_available,TestModelnative additions) by @DouweM in #7260 - Keep deferred tools searchable after discovery and reset reveal state at
CompactionPartboundaries by @DouweM in #7225 - Forward events from
UIEventStreamcallbacks that return an async iterator without being an async generator function by @DouweM in #7256 - Send only the compacted window: drop history before the latest same-provider
CompactionPartby @DouweM in #7228
New Contributors
- @VictorPeralta made their first contribution in #7214
Full Changelog: v2.25.0...v2.26.0