Releases: docker/cagent
v1.22.0
This release enhances the chat experience with history search functionality and improves file attachment handling, along with multi-turn conversation support for command-line operations.
What's New
- Adds Ctrl+R reverse history search to the chat editor for quickly finding previous conversations
- Adds support for multi-turn conversations in
cagent exec,cagent run, andcagent evalcommands - Adds support for queueing multiple messages with
cagent run question1 question2 ...
Improvements
- Improves file attachment handling by inlining text-based files and fixing placeholder stripping
- Refactors scrollbar into a reusable scrollview component for more consistent scrolling behavior across the interface
Bug Fixes
- Fixes pasted attachments functionality
- Fixes persistence of multi_content for user messages to ensure attachment data is properly saved
- Fixes session browser shortcuts (star, filter, copy-id) to use Ctrl modifier, preventing conflicts with search input
- Fixes title generation spinner that could spin forever
- Fixes scrollview height issues when used with dialogs
- Fixes double @@ symbols when using file picker for @ attachments
Technical Changes
- Updates OpenAI schema format handling to improve compatibility
What's Changed
- docs: update CHANGELOG.md for v1.21.0 by @docker-read-write[bot] in #1649
- better file attachments by @krissetto in #1640
- OpenAI doesn't like those format indications on the schema by @dgageot in #1650
- feat: add Ctrl+R reverse history search by @Mostamhd in #1630
- Prevent title generation spinner to spin forever by @dgageot in #1645
- Refactor scrollbar into more reusable
scrollviewcomponent by @krissetto in #1654 - fix scrollview using too much height with dialogs by @krissetto in #1660
- Fix: persist multi_content for user messages by @trungutt in #1652
- fix: use ctrl modifier for session browser shortcuts to avoid search conflict by @dgageot in #1656
- Fix pasted attachments by @krissetto in #1659
- deleting version 2 so i can use permissions by @derekmisler in #1661
- Multi turn (cagent exec|run|eval) by @dgageot in #1662
Full Changelog: v1.21.0...v1.22.0
v1.21.0
This release adds a new generalist coding agent, improves agent configuration handling, and includes several bug fixes and UI improvements.
What's New
- Adds a generalist coding agent for enhanced coding assistance
- Adds OCI artifact wrapper for spec-compliant manifest with artifactType
Improvements
- Supports recursive ~/.agents/skills directory structure
- Wraps todo descriptions at word boundaries in sidebar for better display
- Preserves 429 error details on OpenAI for better error handling
Bug Fixes
- Fixes subagent delegation and validates model outputs when transfer_task is called
- Fixes YAML parsing issue with unquoted strings containing special characters like colons
Technical Changes
- Freezes config version v4 and bumps to v5
What's Changed
- docs: update CHANGELOG.md for v1.20.6 by @docker-read-write[bot] in #1634
- Support recursive ~/.agents/skills by @dgageot in #1631
- Help fix #1419 by @dgageot in #1632
- Fix subagent logic by @krissetto in #1637
- Add OCI artifact wrapper for spec-compliant manifest with artifactType by @dgageot in #1633
- unquoted strings are fine until they contain special characters like : by @derekmisler in #1641
- Wrap todo descriptions at word boundaries in sidebar by @rumpl in #1643
- Preserve 429 error details on OpenAI by @dgageot in #1647
- Freeze v4 and bump config version to v5 by @dgageot in #1635
- Add a generalist coding agent by @dgageot in #1625
- Bump Go dependencies by @dgageot in #1646
Full Changelog: v1.20.6...v1.21.0
v1.20.6
This release introduces branching sessions, model fallbacks, and automated code quality scanning, along with performance improvements and enhanced file handling capabilities.
What's New
- Adds branching sessions feature that allows editing previous messages to create new session branches without losing original conversation history
- Adds automated nightly codebase scanner with multi-agent architecture for detecting code quality issues and creating GitHub issues
- Adds model fallback system that automatically retries with alternative models when inference providers fail
- Adds skill invocation via slash commands for enhanced workflow automation
- Adds
--prompt-fileCLI flag for including file contents as system context - Adds debug title command for troubleshooting session title generation
Improvements
- Improves @ attachment performance to prevent UI hanging in large or deeply nested directories
- Switches to Anthropic Files API for file uploads instead of embedding content directly, dramatically reducing token usage
- Enhances scanner resilience and adds persistent memory system for learning from previous runs
Bug Fixes
- Fixes tool calls score rendering in evaluations
- Fixes title generation for OpenAI and Gemini models
- Fixes GitHub Actions directory creation issues
Technical Changes
- Refactors to use cagent's built-in memory system and text format for sub-agent output
- Enables additional golangci-lint linters and fixes code quality issues
- Simplifies PR review workflow by adopting reusable workflow from cagent-action
- Updates Model Context Protocol SDK and other dependencies
What's Changed
- docs: update CHANGELOG.md for v1.20.5 by @docker-read-write[bot] in #1610
- Only create a new modelstore if none is given by @rumpl in #1612
- Improve @ attachments perf by @krissetto in #1611
- [evals] Fix tool calls score rendering by @dgageot in #1613
- Added space between release links by @derekmisler in #1614
- Simplifies PR review workflow by adopting the new reusable workflow from cagent-action by @derekmisler in #1595
- Automated nightly codebase scanner by @derekmisler in #1573
- Model fallbacks by @krissetto in #1589
- Opus 4.6 by @dgageot in #1617
- Update Go deps by @dgageot in #1621
- Fix schema and add drift test by @dgageot in #1624
- Add debug title command for session title generation by @dgageot in #1622
- Add skill invocation via slash commands by @dgageot in #1623
- Enable more linters and fix existing issues by @dgageot in #1627
- Update Nightly Scan Workflow by @derekmisler in #1619
- feat: add --prompt-file CLI flag for including file contents as system context by @derekmisler in #1618
- /attach use file upload instead of embedding in the context by @jeanlaurent in #1620
- Branching sessions on message edit by @krissetto in #1578
Full Changelog: v1.20.5...v1.20.6
v1.20.5
This release improves stability for non-interactive sessions, updates the default Anthropic model to Claude Sonnet 4.5, and adds support for private GitHub repositories and standard agent directories.
What's New
- Adds support for using agent YAML files from private GitHub repositories
- Adds support for standard
.agents/skillsdirectory structure - Adds deepwiki integration to the librarian
- Adds timestamp tracking to runtime events
- Allows users to define their own default model in global configuration
Improvements
- Updates default Anthropic model to Claude Sonnet 4.5
- Adds reason explanations when relevance checks fail during evaluations
- Persists ACP sessions to default SQLite database unless specified with
--session-dbflag - Makes aliased agent paths absolute for better path resolution
- Produces session database for evaluations to enable investigation of results
Bug Fixes
- Prevents panic when elicitation is requested in non-interactive sessions
- Fixes title generation hanging with Gemini 3 models by properly disabling thinking
- Fixes current agent display in TUI interface
- Prevents TUI dimensions from going negative when sidebar is collapsed
- Fixes flaky test issues
Technical Changes
- Simplifies ElicitationRequestEvent check to reduce code duplication
- Allows passing additional environment variables to Docker when running evaluations
- Passes LLM as judge on full transcript for better evaluation accuracy
What's Changed
- docs: update CHANGELOG.md for v1.20.4 by @docker-read-write[bot] in #1577
- Fix cagent eval metric by @dgageot in #1579
- Update default anthropic model to sonnet 4.5 by @krissetto in #1580
- Support aliases to urls by @dgageot in #1581
- Bump dependencies by @dgageot in #1582
- Produce a session db for the evals by @dgageot in #1583
- Allow passing more env to docker run when running evals by @dgageot in #1585
- Fix flaky test by @dgageot in #1587
- Include reason in relevance check failures by @dgageot in #1584
- 🫡 by @krissetto in #1588
- Don't go negative in tui dimensions in collapsed sidebar by @krissetto in #1598
- Put back the sessions json. It was useful after all by @dgageot in #1597
- Add a timestamp to runtime events by @dgageot in #1590
- Fix current agent in TUI by @dgageot in #1596
- Support using agent yamls from private github repos by @dgageot in #1594
- Fix
cagent acpsession persitence by @krissetto in #1601 - cli: prevent panic when elicitation is requested in non-interactive s… by @Pnkcaht in #1567
- make aliased agent paths absolute by @krissetto in #1607
- Add deepwiki to the librarian by @dgageot in #1608
- Pass LLM as a judge on the full transcript by @dgageot in #1605
- fix: prevent title generation from hanging with Gemini 3 models by @dgageot in #1602
- Support for the
.agents/skillsstandard by @krissetto in #1609
Full Changelog: v1.20.4...v1.20.5
v1.20.4
This release improves session handling with relative references and tool permissions, along with better table rendering in the TUI.
What's New
- Adds support for relative session references in --session flag (e.g.,
-1for last session,-2for second to last) - Adds "always allow this tool" option to permanently approve specific tools or commands for the session
- Adds granular permission patterns for shell commands that auto-approve specific commands while requiring confirmation for others
Improvements
- Updates shell command selection to work with the new tool permission system
- Wraps tables properly in the TUI's experimental renderer to fit terminal width with smart column sizing
Bug Fixes
- Fixes reading of legacy sessions
- Fixes getting sub-session errors where session was not found
Technical Changes
- Adds test databases for better testing coverage
- Automatically runs PR reviewer for Docker organization members
- Exposes new approve-tool confirmation type via HTTP and ConnectRPC APIs
What's Changed
- docs: update CHANGELOG.md for v1.20.3 by @docker-read-write[bot] in #1563
- Always permissions for tools commands by @stanislavHamara in #1558
- Test older database by @dgageot in #1576
- Handle relative session references in --session flag by @vvoland in #1559
- Wrap tables properly in the TUI by @krissetto in #1564
- Automatically run PR reviewer if author is org member by @derekmisler in #1565
Full Changelog: v1.20.3...v1.20.4
v1.20.3
This release migrates PR review workflows to packaged actions and includes visual improvements to the Nord theme.
Improvements
- Migrates PR review to packaged cagent-action sub-actions, reducing workflow complexity
- Changes code fences to blue color in Nord theme for better visual consistency
Technical Changes
- Adds task rebuild when themes change to ensure proper theme updates
- Removes local development configuration that was accidentally committed
What's Changed
- Migrate PR review to packaged cagent-action sub-actions by @derekmisler in #1543
- docs: update CHANGELOG.md for v1.20.1 by @docker-read-write[bot] in #1556
- docs: update CHANGELOG.md for v1.20.2 by @docker-read-write[bot] in #1557
- Change the code fences to blue in nord by @rumpl in #1560
- task rebuild if themes change by @krissetto in #1561
- remove local dev oopsie by @krissetto in #1562
Full Changelog: v1.20.2...v1.20.3
v1.20.2
This release improves the tools system architecture and enhances TUI scrolling performance.
Improvements
- Improves render and mouse scroll performance in the TUI interface
Technical Changes
- Adds StartableToolSet and As[T] generic helper to tools package
- Adds capability interfaces for optional toolset features
- Adds ConfigureHandlers convenience function for tools
- Migrates StartableToolSet to tools package and cleans up ToolSet interface
- Removes BaseToolSet and DescriptionToolSet wrapper
- Reorganizes tool-related code structure
What's Changed
- Work on Tool Wrappers by @dgageot in #1548
- Make TUI more responsive when scrolling by @krissetto in #1555
Full Changelog: v1.20.1...v1.20.2
v1.20.1
This release includes UI improvements, better error handling, and internal code organization enhancements.
Improvements
- Changes audio listening shortcut from ctrl-k to ctrl-l (ctrl-k is now reserved for line editing)
- Improves title editing by allowing double-click anywhere on the title instead of requiring precise icon clicks
- Keeps footer unchanged when using /session or /new commands unless something actually changes
- Shows better error messages when using "auto" model with no available providers or when dmr is not available
Bug Fixes
- Fixes flaky test that was causing CI failures
- Fixes
cagent newcommand functionality - Fixes title edit hitbox issues when title wraps to multiple lines
Technical Changes
- Organizes TUI messages by domain concern
- Introduces SessionStateReader interface for read-only access
- Introduces Subscription type for cleaner animation lifecycle management
- Improves tool registry API with declarative RegisterAll method
- Introduces HitTest for centralized mouse target detection in chat
- Makes sidebar View() function pure by moving SetWidth to SetSize
- Introduces cmdbatch package for fluent command batching
- Organizes chat runtime event handlers by category
- Introduces subscription package for external event sources
- Separates CollapsedViewModel from rendering in sidebar
- Improves provider handling and error messaging
What's Changed
- docs: update CHANGELOG.md for v1.20.0 by @docker-read-write[bot] in #1538
- fix flaky test by @krissetto in #1537
- Keep footer unless something actually changes by @krissetto in #1541
- double click to edit title by @krissetto in #1542
- Use ctrl-l for the audio listening. ctrl-k is for line editing by @dgageot in #1545
- Fix and improve
cagent newby @dgageot in #1546 - TUI refactor by @dgageot in #1547
- Show better errors if
dmrnot found or no providers formodel: "auto"by @krissetto in #1552
Full Changelog: v1.20.0...v1.20.1
v1.20.0
This release introduces editable session titles, custom TUI themes, and improved evaluation capabilities, along with database improvements and bug fixes.
What's New
- Adds editable session titles with
/titlecommand and TUI support for renaming sessions - Adds custom TUI theme support with built-in themes and hot-reloading capabilities
- Adds permissions view dialog for better visibility into agent permissions
- Adds concurrent LLM-as-a-judge relevance checks for faster evaluations
- Adds image cache to cagent eval for improved performance
Improvements
- Makes slash commands searchable in the command palette
- Improves command palette with scrolling, mouse support, and dynamic resizing
- Adds validation error display in elicitation dialogs when Enter is pressed
- Adds Ctrl+z support for suspending TUI application to background
- Adds
--exit-on-stdin-eofflag for better integration control - Adds
--keep-containersflag to cagent eval for debugging
Bug Fixes
- Fixes auto-heal corrupted OCI local store by forcing re-pull when corruption is detected
- Fixes input token counting with Gemini models
- Fixes space key not working in elicitation text input fields
- Fixes session compaction issues
- Fixes stdin EOF checking to prevent cagent api from terminating unexpectedly in containers
Technical Changes
- Extracts messages from sessions table into normalized session_items table
- Adds database backup and recovery on migration failure
- Maintains backward/forward compatibility for session data
- Removes ESC key from main status bar (now shown in spinner)
- Removes progress bar from cagent eval logs
- Sends mouse events to dialogs only when open
What's Changed
- docs: update CHANGELOG.md for v1.19.7 by @docker-read-write[bot] in #1507
- build(deps): bump the pip group across 1 directory with 2 updates by @dependabot[bot] in #1509
- Remove ESC from main status bar by @dgageot in #1511
- Session messages by @rumpl in #1510
- Remove annoying warning by @dgageot in #1512
- improve check on stdin EOF by @krissetto in #1513
- Fix input tokens counting with Gemini by @dgageot in #1515
- Pass a custom base image to cagent eval by @dgageot in #1516
- Custom TUI themes by @krissetto in #1514
- Make /commands searchable in the command palette by @krissetto in #1521
- only change theme when actually changing theme by @krissetto in #1522
- Add more info to cagent eval's json by @dgageot in #1517
- avoid parallel tests in the teamloader load examples test by @krissetto in #1523
- improve command palette by @krissetto in #1524
- Send all mouse events only to dialogs when open by @krissetto in #1525
- Remove the progress bar from cagent eval's log by @dgageot in #1518
- make stdin EOF checking optional and enabled by flag by @krissetto in #1519
- fix: auto-heal corrupted OCI local store by forcing re-pull by @Pnkcaht in #1455
- Simpler cagent eval by @dgageot in #1526
- evaluation: add concurrent LLM-as-a-judge relevance checks by @dgageot in #1527
- Faster evals thanks to an image cache by @dgageot in #1528
- tui: Handle Ctrl+z by @vvoland in #1530
- Keep messages column for backward/forward compatibility by @dgageot in #1532
- Remove comment by @dgageot in #1533
- Fix space key not working in elicitation text input fields by @dgageot in #1535
- Fix the session compaction by @dgageot in #1531
- Show validation errors in elicitation dialog when Enter is pressed by @dgageot in #1536
- Permissions view dialog by @stanislavHamara in #1534
- Editable session titles by @krissetto in #1503
Full Changelog: v1.19.7...v1.20.0
v1.19.7
This release improves the user experience with better error handling and enhanced output formatting.
Improvements
- Improves error handling and user feedback throughout the application
- Enhances output formatting for better readability and user experience
Technical Changes
- Updates internal dependencies and build configurations
- Refactors code structure for improved maintainability
- Updates development and testing infrastructure
What's Changed
- Add rate limits to the token_usage event by @dgageot in #1505
- docs: update CHANGELOG.md for v1.19.6 by @docker-read-write[bot] in #1506
Full Changelog: v1.19.6...v1.19.7