Releases: docker/cagent
v1.28.1
This release adds image support for AI agents, improves cross-platform compatibility, and includes various stability fixes.
What's New
- Adds image support to read_file tool and MCP tool results, allowing agents to view and describe images
- Adds content-based MIME detection and automatic image resizing for vision capabilities
- Strips image content for text-only models using model capabilities detection
Improvements
- Reduces builtin tool prompt lengths while preserving key examples for better performance
- Skips hidden directories in recursive skill loading to avoid walking large trees like .git and .node_modules
- Only uses insecure TLS for localhost OTLP endpoints for better security
Bug Fixes
- Fixes Esc key not interrupting sub-agents in multi-agent sessions
- Fixes slice bounds out of range panic for short JWT tokens
- Fixes goroutine tight loop in LSP readNotifications
- Fixes race condition with elicitation events channel
- Avoids looping forever on symlinks during skill loading
- Handles json.Marshal errors for tool Parameters and OutputSchema
Technical Changes
- Replaces syscall.Rmdir with golang.org/x/sys for cross-platform directory removal
- Removes per-chunk UpdateMessage debug log from SQLite store to reduce log noise
- Stops tool sets for team loaded in GetAgentToolCount
- Migrates GitHub pages to markdown with Jekyll
What's Changed
- docs: update CHANGELOG.md for v1.28.0 by @docker-read-write[bot] in #1892
- Replace syscall.Rmdir with golang.org/x/sys for cross-platform directory removal by @rumpl in #1885
- Remove per-chunk UpdateMessage debug log by @trungutt in #1896
- Fixes to the documentation by @dgageot in #1893
- Pushes docker/docker-agent next to docker/cagent hub image by @gtardif in #1897
- Reduce builtin tool prompt lengths while preserving key examples by @dgageot in #1879
- Daily fixes of the bot-detected issues by @dgageot in #1895
- Skip hidden directories in recursive skill loading by @dgageot in #1875
- 👀 Vision 👀 by @rumpl in #1889
- Migrate our GitHub pages to markdown, with Jekyll by @dgageot in #1900
- fix: Esc key not interrupting sub-agents in multi-agent sessions by @dgageot in #1899
Full Changelog: v1.28.0...v1.28.1
v1.28.0
This release improves authentication debugging, session management, and MCP server reliability, along with UI enhancements to the command palette.
What's New
- Adds 'debug auth' command to inspect Docker Desktop JWT with optional JSON output
- Adds automatic retry functionality for all models, including those without fallbacks
Improvements
- Improves MCP server lifecycle with caching and auto-restart capabilities using exponential backoff
- Sorts command palette actions alphabetically within each group
- Uses tea.View.ProgressBar instead of raw escape codes for better display
Bug Fixes
- Fixes session derailment by preserving user messages during conversation trimming
- Fixes duplicate Session header in command palette on macOS
- Fixes mcp/notion not working with OpenAI models by properly walking additionalProperties in schemas
- Defaults to string type for script tool arguments when type is not specified
Technical Changes
- Updates tool filtering documentation
- Updates CHANGELOG.md for v1.27.1
- Updates Charm libraries to stable v2.0.0 releases (bubbletea, bubbles, lipgloss)
What's Changed
- docs: update CHANGELOG.md for v1.27.1 by @docker-read-write[bot] in #1862
- Fix
mcp/notionnot working with OpenAI models by @vvoland in #1871 - Fix script args with DMR by @dgageot in #1859
- Add 'debug auth' command to inspect Docker Desktop JWT by @dgageot in #1861
- Improve MCP server lifecycle: caching and auto-restart by @dgageot in #1872
- fix(#1863): preserve user messages in trimMessages to prevent session derailment by @aheritier in #1864
- Improve tool filtering doc by @dgageot in #1874
- Improve Commands dialog by @dgageot in #1877
- Bump dependencies by @dgageot in #1876
- Add retries even for models without fallbacks by @rumpl in #1886
Full Changelog: v1.27.1...v1.28.0
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