v2.8.0

actualbudget/actualv2.8.0Jul 10, 2026by dsfaccini

AI Summary

This release focuses on enhancing agent configuration and tool validation, including a chat UI update and fixes for response handling.

Key Highlights

  • Bumped bundled chat UI to version 2.0.0
  • Fixed validation for Tool parameters (max_retries, timeout)
  • Fixed `JsonSchemaTransformer` recursion into `allOf` composition
  • Fixed handling of empty and thinking-only responses

New Features

  • Allow `to_cli()` to pass `model` for unset-model agents
  • Bump bundled chat UI to `2.0.0` and target `sdk_version=7`

Full Release Notes

<!-- Release notes generated using configuration in .github/release.yml at main -->

## What's Changed
### 🚀 Features
* Allow `to_cli()` to pass `model` for unset-model agents by @hramezani in https://github.com/pydantic/pydantic-ai/pull/6384
* Bump bundled chat UI to `2.0.0` and target `sdk_version=7` in `Agent.to_web()` by @dsfaccini in https://github.com/pydantic/pydantic-ai/pull/6296
### 🐛 Bug Fixes
* fix: validate Tool max_retries and timeout parameters by @isheng-eqi in https://github.com/pydantic/pydantic-ai/pull/6375
* fix: validate ToolOutput max_retries by @isheng-eqi in https://github.com/pydantic/pydantic-ai/pull/6377
* fix: validate Agent tool_timeout by @isheng-eqi in https://github.com/pydantic/pydantic-ai/pull/6383
* fix: validate max_queued in ConcurrencyLimit and ConcurrencyLimiter by @isheng-eqi in https://github.com/pydantic/pydantic-ai/pull/6373
* Fix `JsonSchemaTransformer` to recurse into `allOf` composition by @pydanty[bot] in https://github.com/pydantic/pydantic-ai/pull/6394
* Fix empty and thinking-only responses reusing earlier text as the run output by @DouweM in https://github.com/pydantic/pydantic-ai/pull/6403

## New Contributors
* @isheng-eqi made their first contribution in https://github.com/pydantic/pydantic-ai/pull/6375

**Full Changelog**: https://github.com/pydantic/pydantic-ai/compare/v2.7.0...v2.8.0