This release introduces file drag-and-drop support, background agent tasks, and completes the transition from "cagent" to "docker-agent" branding throughout the codebase.
What's New
- Adds file drag-and-drop support for images and PDFs with visual file type indicators and 5MB size limit per file
- Adds background agent task tools (
run_background_agent,list_background_agents,view_background_agent,stop_background_agent) for concurrent sub-agent dispatch - Adds
--sandboxflag to run command for Docker sandbox isolation - Adds model_picker toolset for dynamic model switching between LLM models mid-conversation
- Adds search, update, categories, and default path functionality to memory tool
- Adds MiniMax as a built-in provider alias with
MINIMAX_API_KEYsupport - Adds top-level
mcpssection for reusable MCP server definitions in agent configs - Adds support for OCI/catalog and URL references as sub-agents and handoffs
Improvements
- Auto-continues max iterations in
--yolomode instead of prompting - Improves toolset error reporting to show specific toolset information
- Improves user_prompt TUI dialog with title, free-form input, and navigation
- Auto-pulls DMR models in non-interactive mode
- Animates window title while working for tmux activity detection
- Supports comma-separated string format for allowed-tools in skills
Bug Fixes
- Fixes thread blocking when attachment file is deleted
- Fixes max iterations handling in JSON output mode
- Fixes text to speech on macOS
- Fixes context window overflow with auto-recovery and proactive compaction
- Fixes data races in Session Messages slice and test functions
- Fixes SSE streaming by disabling automatic gzip compression
- Applies ModifiedInput from pre-tool hooks to tool call arguments
Technical Changes
- Completes rename from "cagent" to "docker-agent" throughout codebase, documentation, and repository URLs
- Supports both
DOCKER_AGENT_*and legacyCAGENT_*environment variables - Removes
--exit-on-stdin-eofflag and ConnectRPC code - Adds timeouts to shutdown contexts to prevent goroutine leaks
- Extracts TodoStorage interface with in-memory implementation
- Refactors listener lifecycle to return cleanup functions
- Updates Dockerfile to use docker-agent binary with cagent as compatible symlink
What's Changed
- docs: update CHANGELOG.md for v1.29.0 by @docker-read-write[bot] in #1909
- Bump Go dependencies by @dgageot in #1913
- update taskfile to build both images docker/cagent and docker/docker-agent by @gtardif in #1916
- Remove --exit-on-stdin-eof by @dgageot in #1918
- Rename env vars CAGENT_ to DOCKER_AGENT_ (keep support for old env vars) by @gtardif in #1917
- agent: Improve toolset error reporting by @vvoland in #1914
- Nightly scanner should be less nit-picky about docs by @derekmisler in #1921
- Update docs and samples to rename docker-agent, change usage samples to
docker agentby @gtardif in #1915 - Simplify the AGENTS.md a LOT by @dgageot in #1923
- Fix a few issues in the docs by @dgageot in #1924
- docs: remove generated pages/ from git tracking by @dgageot in #1927
- Fix speech to text on macOS by @dgageot in #1922
- More docs rename (in / docs), fix remaining
docker agent serve a2a/acp/mcpby @gtardif in #1928 - Fix test by @dgageot in #1929
- Fix #1911 by @dgageot in #1931
- Validate yaml in doc by @dgageot in #1932
- Fix a few race conditions seen in tests by @dgageot in #1930
- Fix broken links in docs pages, were not using relative urls by @gtardif in #1939
- Rename CAGENT_HIDE_TELEMETRY & CAGENT_EXP_DEBUG_LAYOUT. Still support old env vars by @gtardif in #1926
- Teach the agent to work with our config versions by @dgageot in #1938
- Improve pkg/js by @dgageot in #1933
- Improve README by @dgageot in #1936
- Add model_picker toolset for dynamic model switching by @dgageot in #1937
- cagent run --sandbox by @dgageot in #1904
- Support auto-downloading tools by @dgageot in #1925
- Leverage latest MCP spec features from go-sdk v1.4.0 by @dgageot in #1955
- bump google.golang.org/adk from v0.4.0 to v0.5.0 by @dgageot in #1954
- Animate window title while working for tmux activity detection by @dgageot in #1949
- Fix listener resource leaks in serve commands by @dgageot in #1945
- Show the new TUI by @dgageot in #1942
- Auto-pull DMR models in non-interactive mode by @dgageot in #1944
- Improve user_prompt TUI dialog: title, free-form input, and navigation by @dgageot in #1943
- Improve sub-sessions usage by @dgageot in #1941
- Add MiniMax as a built-in provider alias by @dgageot in #1948
- Bump go dependencies by @dgageot in #1953
- Rename repo URL and pages URL by @gtardif in #1957
- Support OCI/catalog and URL references as sub-agents and handoffs by @dgageot in #1946
- Improve docs search by @dgageot in #1959
- Use docker agent command by @dgageot in #1958
- todo: extract storage interface with in-memory implementation by @rumpl in #1960
- docker-agent is primary binary in taskfile by @gtardif in #1961
- Add top-level mcps section for reusable MCP server definitions by @dgageot in #1947
- A few more renames from cagent by @dgageot in #1962
- Some more cagent urls by @gtardif in #1964
- fix(cli): auto-continue max iterations in --yolo mode by @frntn in #1737
- fix(editor): prevent thread block when attachment file is deleted by @Pnkcaht in #1736
- Fix main branch by @dgageot in #1968
- feat: add file drag-and-drop support for images and PDFs by @ambigois in #1658
- Add background agent task tools for concurrent sub-agent dispatch (#863) by @jfrey in #1908
- fix(hooks): apply ModifiedInput from pre-tool hooks to tool call arguments by @aheritier in #1950
- Add timeouts to shutdown contexts to prevent goroutine leaks by @dgageot in #1965
- Update winget workflow to modify Docker.Agent package, with the new GH repo name by @gtardif in #1972
- updated GHA with new checks:write permission by @derekmisler in #1974
- Disable automatic gzip compression to fix SSE streaming by @dgageot in #1967
- Fix cobra command and rename more things from cagent to docker agent by @dgageot in #1979
- Support comma-separated string for allowed-tools in skills by @dgageot in #1984
- Fix documentation by @dgageot in #1983
- Fix model name by @dgageot in #1991
- Fix gopls versions by @dgageot in #1988
- Daily fixes by @dgageot in #1990
- auto-complete tests by @gtardif in #1989
- Dockerfile with docker-agent binary, keeping cagent only as compatible symlink by @gtardif in #1992
- Rename cagent in eval by @gtardif in #1993
- Fix documentation by @dgageot in #1995
- More renames from cagent to docker-agent by @dgageot in #1994
- Rename e2e test files by @dgageot in #1997
- Remove useless documentation by @dgageot in #1998
- Remove ConnectRPC code by @dgageot in #1996
- Add search, update, categories, and default path to memory tool by @nunocoracao in #1971
- More renames by @dgageot in #1999
- Fix context window overflow: auto-recovery and proactive compaction by @yunus25jmi1 in #1973
- Remove my name :-) by @dgageot in #2001
- Remove package to github.com/docker/docker-agent by @dgageot in #2000
New Contributors
- @frntn made their first contribution in #1737
- @ambigois made their first contribution in #1658
- @jfrey made their first contribution in #1908
- @yunus25jmi1 made their first contribution in #1973
Full Changelog: v1.29.0...v1.30.0