What's Changed
🚀 Features
- Add Bedrock support for
ModelSettings.extra_headersby @kkauy in #4825 - Restore stable
gemini-3-pro-imageandgemini-3.1-flash-imageGateway aliases by @adtyavrdhn in #7069 - Add
costtoRunUsageandcost_limittoUsageLimitsby @Kludex in #2684 - Add
ToolAvailabilityDeltaPartwith nativetool_additionandadditional_toolsrendering by @DouweM in #6793
🐛 Bug Fixes
- Validate
bedrock_max_concurrencyinstead of deadlocking on0by @LHMQ878 in #6878 - Fix
GoogleCloudProvidercredential scoping and ADC auth env-var leak by @pydanty[bot] in #6500 - Read provider
createdtimestamp from any chunk in OpenAI streaming responses by @LKRCharon in #5496 - Preserve capability container subclasses during binding by @pydanty[bot] in #6677
- Drop the bound on the Temporal payload
TypeAdaptercache by @DouweM in #7085 - Preserve the host's Pydantic AI instrumentation in the Temporal
LogfirePluginby @DouweM in #7086 - Fire capability event-stream and node hooks under
agent.iter()by @DouweM in #6871 - Close async streams on teardown instead of waiting for the garbage collector by @DouweM in #7095
New Contributors
- @ayaangazali made their first contribution in #7020
- @kkauy made their first contribution in #4825
- @LHMQ878 made their first contribution in #6878
- @LKRCharon made their first contribution in #5496
Full Changelog: v2.22.0...v2.23.0