Releases: docker/cagent
v1.27.1
This release improves the user interface experience with better message editing capabilities and fixes several issues with token usage tracking and session loading.
What's New
- Adds
on_user_inputhook that triggers when the agent is waiting for user input or tool confirmation
Improvements
- Improves multi-line editing of past user messages
- Adds clipboard paste support during inline message editing
- Makes loading past sessions faster
- Updates TUI display when the current agent changes
Bug Fixes
- Fixes token usage being recorded multiple times per stream, preventing inflated telemetry counts
- Fixes empty inline edit textarea expanding to full height
- Fixes docker ai shellout to cagent for standalone invocations
Technical Changes
- Updates schema tests to only run for latest version
- Fixes documentation issues
What's Changed
- docs: update CHANGELOG.md for v1.27.0 by @docker-read-write[bot] in #1846
- Repaint the TUI when the current agent changes by @dgageot in #1845
- fix: record token usage once per stream to prevent inflated telemetry by @dgageot in #1855
- Make loading past sessions faster by @dgageot in #1854
- Improve editing past user messages by @dgageot in #1850
- Schema tests should be only for latest version by @dgageot in #1857
- feat(hooks): add on_user_input by @doringeman in #1847
- Fix doc by @dgageot in #1858
- Fix docker ai shellout to cagent by @gtardif in #1860
New Contributors
- @doringeman made their first contribution in #1847
Full Changelog: v1.27.0...v1.27.1
v1.27.0
This release introduces dynamic agent color styling for multi-agent teams, adds new filesystem tools, and includes several bug fixes and security improvements.
What's New
- Adds dynamic agent color styling system that assigns unique, deterministic colors to each agent in multi-agent teams for visual distinction across the TUI
- Adds hue-based agent color generation with theme integration that adapts saturation and lightness based on theme background
- Adds mkdir and rmdir filesystem tools so agents can create and remove directories without using shell commands
- Allows .github and .gitlab directories in WalkFiles traversal for better CI workflow support
Bug Fixes
- Fixes race condition in agent color style lookups
- Fixes path traversal vulnerability in ACP filesystem operations
- Fixes YAML marshalling issues that could produce corrupted configuration files
- Handles case-insensitive filesystems properly
- Logs errors when persisting session title in TUI
Technical Changes
- Consolidates color utilities into styles/colorutil.go
- Unexports internal color helpers and deduplicates fallbacks
- Fixes cassettes functionality
What's Changed
- docs: update CHANGELOG.md for v1.26.0 by @docker-read-write[bot] in #1841
- Daily fixes by @dgageot in #1832
- tools/fs: Add mkdir and rmdir by @vvoland in #1781
- feat(#1756): Add dynamic agent color styling system by @aheritier in #1757
- allow .github and .gitlab directories in WalkFiles traversal by @maxcleme in #1833
- Fix yaml marshalling by @dgageot in #1844
Full Changelog: v1.26.0...v1.27.0
v1.26.0
This is a maintenance release with dependency updates and internal improvements.
Technical Changes
- Maintenance release with dependency updates
Full Changelog: v1.25.0...v1.26.0
v1.24.0
This release introduces remote skills discovery capabilities and improves file reading tools with pagination support.
What's New
- Adds remote skills discovery with disk cache and dedicated tools, supporting the well-known skills discovery specification
- Adds offset and line_count pagination parameters to read_file and read_multiple_files tools for incremental reading of large files
Improvements
- Limits output size for read_file and read_multiple_files tools to prevent excessive token usage
- Removes pagination instructions from tool descriptions for cleaner interface
Bug Fixes
- Fixes LineCount metadata on truncated read_multiple_files results
Technical Changes
- Freezes configuration version v5 and bumps to v6
- Updates test cassettes to match schema changes for file reading tools
What's Changed
- docs: update CHANGELOG.md for v1.23.6 by @docker-read-write[bot] in #1829
- builtin: add offset and line_count pagination to read_file and read_multiple_files by @trungutt in #1828
- Implement remote skills discovery with disk cache and dedicated tools by @rumpl in #1822
- Freeze v5 (and a few refactoring) by @dgageot in #1810
Full Changelog: v1.23.6...v1.24.0
v1.23.6
This release improves cost tracking accuracy, enhances session management, and fixes several UI and functionality issues.
What's New
- Adds tab completion for /commands dialog
- Adds mouse support for selecting and opening sessions in the sessions dialog
Improvements
- Computes session cost from messages instead of accumulating on session for better accuracy
- Includes compaction cost in /cost dialog
- Displays original YAML model names in sidebar instead of resolved aliases
- Improves emoji copying support by reversing clipboard copy order (OSC52 first, then pbcopy fallback)
Bug Fixes
- Fixes token usage percentage display during and after agent transfers
- Fixes session forking and costs calculation
- Fixes actual provider display for alloy models in sidebar (was showing wrong provider)
- Restores ctrl-1, ctrl-2... shortcuts for quick agent selection
- Fixes NewHandler panic on parameterless tool calls
Technical Changes
- Consolidates TokenUsage event constructors
- Removes dead UpdateLastAssistantMessageUsage method
- Emits TokenUsageEvent on session restore for context percentage display
- Emits TokenUsageEvent after compaction so sidebar cost updates
- Adds e2e tests on binaries for CLI plugin execution
- Creates ~/.docker/cli-plugins directory if it doesn't exist
What's Changed
- docs: update CHANGELOG.md for v1.23.5 by @docker-read-write[bot] in #1803
- Better support copying emojis by @dgageot in #1804
- Fix multiple cost/tokens related issues by @dgageot in #1795
- Tab completion for /commands dialog by @dgageot in #1806
- Update winget workflow by @lorenrh in #1808
- feat: use docker read write bot by @lorenrh in #1813
- Binary e2e tests by @gtardif in #1812
- fix: use actual provider for alloy models in sidebar by @Aliexe-code in #1807
- Improve sessions dialog by @dgageot in #1811
- Bump Go dependencies by @dgageot in #1817
- fix: restore ctrl-1, ctrl-2... shortcuts for quick agent selection by @dgageot in #1816
- Refactor winget workflow to use wingetcreate CLI by @gtardif in #1826
- get_memories errors on new memories by @derekmisler in #1827
New Contributors
- @Aliexe-code made their first contribution in #1807
Full Changelog: v1.23.5...v1.23.6
v1.23.5
This release improves the session browser interface and fixes several issues with the docker-agent standalone binary.
Improvements
- Shows message count in session browser dialog for better session overview
Bug Fixes
- Fixes recognition of cobra internal completion commands as subcommands
- Fixes help text display for docker-agent standalone binary exec
- Fixes version output for docker-agent CLI plugin and standalone exec
Technical Changes
- Renames internal schema structure
What's Changed
- docs: update CHANGELOG.md for v1.23.4 by @docker-read-write[bot] in #1792
- Rename schema by @dgageot in #1793
- Show message count in session browser dialog by @dgageot in #1791
- Fix bash/zsh/... completion by @dgageot in #1794
- Fix help for docker-agent standalone binary exec by @gtardif in #1796
- Fix docker-agent version for cli plugin & standalone exec by @gtardif in #1802
Full Changelog: v1.23.4...v1.23.5
v1.23.4
This release introduces parallel session support with tab management, major command restructuring, and enhanced UI interactions.
What's New
- Adds parallel session support with a new tab view to switch between sessions
- Adds drag and drop functionality for reordering tabs
- Adds mouse click support to elicitation, prompt input, and tool confirmation dialogs
- Adds
X-Cagent-Model-Nameheader to models gateway requests - Adds Ask list to permissions config to force confirmation for read-only tools
- Defaults to running the default agent when no subcommand is given
Improvements
- Restores ctrl-r binding for searching prompt history
- Updates Claude Sonnet model version to 4.6
- Prevents closing the last remaining tab with Ctrl+W
- Makes fetch tool not read-only
- Handles Claude overloaded_error with retry logic
Bug Fixes
- Fixes ctrl-c in docker agent and
docker agentdefaulting todocker agent run - Fixes completion command
- Fixes cagent-action to expect a prompt
- Fixes gemini use of vertexai environment variables
- Fixes CPU profile file handling and error handling in isFirstRun
Technical Changes
- Removes
cagent configcommands (breaking change) - Removes
cagent feedbackcommand (breaking change) - Removes
cagent buildcommand (breaking change) - Removes
cagent catalogcommand (breaking change) - Moves a2a, acp, mcp and api commands under
cagent serve(breaking change) - Replaces
cagent execwithcagent run --exec(breaking change) - Moves pull and push under
cagent share(breaking change) - Hides
cagent debug - Adds skills to the default agent
- Defaults restore_tabs to false
What's Changed
- docs: update CHANGELOG.md for v1.23.3 by @docker-read-write[bot] in #1753
- Parallel sessions! Tabs! by @krissetto in #1695
- Restore ctrl-r binding for searching prompt history by @krissetto in #1759
- Review cagent commands by @dgageot in #1755
- default restore_tabs to false by @krissetto in #1760
- Fix completion command by @dgageot in #1761
- fix: cagent-action expects a prompt by @derekmisler in #1762
- feat: add
X-Cagent-Model-Nameheader to models gateway requests by @tdabasinskas in #1751 - chore(config): Update Claude Sonnet model version to 4.6 by @aheritier in #1768
- Add mouse click support to elicitation, prompt input, and tool confirmation dialogs by @dgageot in #1766
- temp home dir to avoid issues in some environments by @krissetto in #1773
- drag 'n drop tabs by @krissetto in #1772
- fix: gemini use of vertexai environment variables by @abaez-pantheon in #1763
- fallback: Handle overloaded_error by @vvoland in #1780
- permissions: add Ask list to force confirmation for tools by @dgageot in #1785
- Bump Go dependencies by @dgageot in #1777
- Fix ctrl-c in
docker agent serve apiand fixdocker agentdefaulting todocker agent runby @dgageot in #1782 - Make fetch tool not read-only by @dgageot in #1786
- Keep same error handling for main cli plugin execution by @gtardif in #1789
- tui/tabbar: Prevent closing the last remaining tab by @vvoland in #1790
- Fix path and typo by @dgageot in #1788
- Daily fixes for the Nightly issue detector by @dgageot in #1787
New Contributors
- @abaez-pantheon made their first contribution in #1763
Full Changelog: v1.23.3...v1.23.4
v1.23.3
This release adds Docker CLI plugin support and improves TUI performance by making model reasoning checks asynchronous.
What's New
- Adds support for using cagent as a Docker CLI plugin with
docker agentcommand (no functional changes to existingcagentcommand) - Handles Windows .exe binary suffix for CLI plugin compatibility
Improvements
- Makes model reasoning support checks asynchronous to prevent TUI freezing (previously could block for up to 30 seconds)
- Threads context.Context through modelsdev store API to allow proper cancellation and deadline propagation
Technical Changes
- Renames cagent OCI annotation to
io.docker.agent.versionwhile maintaining backward compatibility with the old annotation - Updates config media type to use
docker.agent - Adds TUI general guidelines to AGENTS.md documentation
What's Changed
- Thread context.Context through modelsdev store API by @rumpl in #1747
- Rename cagent OCI annotation, keep old one by @gtardif in #1745
- docs: update CHANGELOG.md for v1.23.2 by @docker-read-write[bot] in #1746
- Move ModelSupportsReasoning calls to async bubbletea commands by @rumpl in #1749
- Allow to use cagent binary as a docker cli plugin docker-agent. No functional change for cagent command. by @gtardif in #1748
New Contributors
Full Changelog: v1.23.2...v1.23.3
v1.23.2
This release adds header forwarding capabilities for toolsets and includes several bug fixes and code improvements.
What's New
- Adds support for
${headers.NAME}syntax to forward upstream API headers to toolsets, allowing toolset configurations to reference incoming HTTP request headers
Bug Fixes
- Fixes race condition in isFirstRun using atomic file creation
- Fixes nil pointer dereference when RateLimit is present without Usage
- Fixes double-counting of session costs with cumulative usage providers
- Fixes Ctrl+K key binding conflict in session browser by reassigning CopyID to Ctrl+Y
- Fixes model selection functionality
Improvements
- Adds input validation and audit logging to shell tool
- Adds input validation and error handling to RunBangCommand
Technical Changes
- Extracts shared helpers for command-based providers to reduce code duplication
- Removes duplication from config.Resolv
- Moves GetUserSettings() from pkg/config to pkg/userconfig as Get()
- Removes redundant Reader interface from pkg/config
- Fixes leaked os.Root handle in fileSource.Read
- Makes small improvements to cmd/root
What's Changed
- docs: update CHANGELOG.md for v1.23.1 by @docker-read-write[bot] in #1727
- Fix two issues with costs by @dgageot in #1732
- Daily fixes by @dgageot in #1731
- Cleanup config code by @dgageot in #1729
- Support ${headers.NAME} syntax to forward upstream API headers to toolsets by @dgageot in #1725
- refactor(environment): extract shared helpers for command-based providers by @dgageot in #1730
- Small improvements to cmd/root by @dgageot in #1734
- fix(#1741): resolve Ctrl+K key binding conflict in session browser by @aheritier in #1742
- Fix model switcher by @dgageot in #1740
New Contributors
- @aheritier made their first contribution in #1742
Full Changelog: v1.23.1...v1.23.2
v1.23.1
This release introduces a new OpenAPI toolset for automatic API integration, task management capabilities, and several improvements to message handling and testing infrastructure.
What's New
- Adds Tasks toolset with support for priorities and dependencies
- Adds OpenAPI built-in toolset type that automatically converts OpenAPI specifications into usable tools
- Adds support for custom telemetry tags via
TELEMETRY_TAGSenvironment variable
Improvements
- Preserves line breaks and indentation in welcome messages for better formatting
- Updates documentation links to point to GitHub Pages instead of code repository
Bug Fixes
- Fixes recursive enforcement of required properties in OpenAI tool schemas (resolves Chrome MCP compatibility with OpenAI 5.2)
- Returns error when no messages are available after conversion instead of sending invalid requests
Technical Changes
- Replaces time.Sleep in tests with deterministic synchronization for faster, more reliable testing
- Refactors models store implementation
- Adds .idea/ directory to gitignore
- Removes fake models.dev and unused code
What's Changed
- docs: update CHANGELOG.md for v1.23.0 by @docker-read-write[bot] in #1714
- Tasks toolset by @rumpl in #1704
- preserve line breaks and indentation in welcome messages by @maxcleme in #1718
- Add openapi built-in toolset type by @dgageot in #1719
- return error if no messages are available after conversion by @krissetto in #1720
- fix: recursively enforce required properties in OpenAI tool schemas by @dgageot in #1710
- Replace time.Sleep in tests with deterministic synchronization by @dgageot in #1722
- Allow passing in custom tags to telemetry by @derekmisler in #1723
- Update documentation links to GitHub Pages by @lorenrh in #1726
- Speed up fallback tests by @dgageot in #1724
- Refactor models store by @dgageot in #1721
New Contributors
Full Changelog: v1.23.0...v1.23.1