This release adds agent switching commands, MCP server discovery capabilities, and runtime model switching, along with UI improvements and stability fixes.
What's New
- Adds slash commands for agent switching (e.g.,
/planto hand off to planner agent) - Adds MCP catalog toolset for on-demand discovery and activation of remote MCP servers
- Adds runtime model switching with GET/PATCH/POST endpoints for changing models during sessions
- Adds sampling/createMessage support for MCP servers to use the host's LLM
- Adds identity headers (X-Docker-Agent-Version, X-Docker-Desktop-Version) to built-in tool requests
Improvements
- Renders user pasted content in TUI and collapses large pasted file contents (over 30 lines) into toggleable view
- Routes mouse-wheel events to background dialogs instead of falling through to chat area
- Uses Claude Sonnet 4.6 as default model in Anthropic provider
- Switches to non-preview Gemini model
- Adds configurable thinking expansion in user config
Bug Fixes
- Fixes evaluation builds with legacy Docker builder by using printf instead of heredoc for /run.sh
- Fixes crash prevention by explicitly sending tool_choice=auto in OpenAI requests with tools
- Fixes Desktop version lookup to be TTL-based and context-independent
- Fixes command resolution before agent switching to prevent lookup failures
- Fixes concurrent access issues by using thread-safe methods and improving snapshot isolation
Technical Changes
- Refactors toolset creation into individual packages with standardized naming
- Improves concurrent package with thread-safe methods and uses it across multiple components
- Centralizes context-limit resolution in runtime
- Moves concurrency deduplication from trigger to review workflow in CI
- Updates example configuration to use xai/grok-2-latest model
What's Changed
- fix(evals): build /run.sh with printf so legacy builder works by @hamza-jeddad in #2779
- bump github.com/coder/acp-go-sdk from v0.12.2 to v0.13.0 by @dgageot in #2782
- docs: update CHANGELOG.md for v1.59.0 by @docker-read-write[bot] in #2783
- route mouse-wheel events to background dialogs by @dgageot in #2787
- Use a non preview gemini model by @dgageot in #2785
- Use sonnet 4.6 as default in anthropic by @rumpl in #2786
- feat(tui): show user pasted content by @joshbarrington in #2784
- ci: move concurrency dedup from trigger to review workflow by @dgageot in #2789
- docs(site): make the docs site feel like part of Docker, and explain what Docker Agent is by @dgageot in #2793
- Expand thinking configuration by @rumpl in #2802
- fix(examples): use xai/grok-2-latest in grok.yaml by @dgageot in #2806
- bump direct go dependencies by @dgageot in #2803
- feat: add X-Docker-Agent-Version and X-Docker-Desktop-Version headers to built-in tools by @dgageot in #2795
- Improve concurrent package by @dgageot in #2810
- bump direct go dependencies by @dgageot in #2811
- feat(mcp): add sampling/createMessage support by @dgageot in #2815
- fix(runtime): use provider_opts.context_size for compaction by @dgageot in #2814
- fix(openai): explicitly send tool_choice=auto when tools are provided by @dgageot in #2813
- Better tool registry by @dgageot in #2807
- feat(api): accept model overrides on session creation and add runtime model switching endpoints by @dgageot in #2791
- feat: add mcp_catalog toolset for on-demand MCP server discovery by @dgageot in #2794
- feat: add slash commands for agent switching by @dgageot in #2790
Full Changelog: v1.59.0...v1.60.0