Skip to content

Releases: docker/docker-agent

v1.46.0

16 Apr 19:39
005f1e2

Choose a tag to compare

This release adds OAuth credential configuration for MCP servers, evaluation testing improvements, and numerous stability fixes.

What's New

  • Adds support for explicit OAuth credentials configuration for remote MCP servers that don't support Dynamic Client Registration
  • Adds --repeat flag to eval command for running evaluations multiple times
  • Adds support for xhigh effort level in Anthropic adaptive thinking (Claude Opus 4.7+)
  • Adds task_budget configuration field for Claude Opus 4.7 to cap total tokens across multi-step tasks
  • Adds markdown rendering support in user_prompt dialog messages

Improvements

  • Improves image attachment handling by inlining as base64 data URLs for cross-provider compatibility
  • Improves robots.txt caching to store parsed data per host instead of boolean results
  • Improves session database version detection with clear upgrade messages for newer databases

Bug Fixes

  • Fixes --attach flag being silently ignored when used without a message argument
  • Fixes data race in AddMessageUsageRecord by adding mutex lock
  • Fixes data race in rule-based router by protecting lastSelectedID with mutex
  • Fixes panic in extractSystemBlocks when system message is empty with CacheControl
  • Fixes empty messages slice handling in SendUserMessage path
  • Fixes symlink-based path traversal vulnerability in ACP filesystem toolset
  • Fixes OAuth callback CSRF vulnerability by rejecting when expected state is not set
  • Fixes MCP tryRestart to use context-aware select instead of time.Sleep
  • Fixes assistant text being discarded when tool calls are present in Responses API conversion
  • Fixes MCP OAuth token refresh by remembering the discovered auth server

Technical Changes

  • Updates mutex handling for MCP Toolset.Instructions() method
  • Updates Go dependencies including Anthropic SDK and various UI libraries

What's Changed

  • docs: update CHANGELOG.md for v1.45.0 by @docker-read-write[bot] in #2427
  • fix: reject OAuth callback when expected state has not been set (CSRF) by @dgageot in #2434
  • fix: prevent symlink-based path traversal in ACP filesystem toolset by @dgageot in #2433
  • fix: guard against empty messages slice in SendUserMessage path by @dgageot in #2432
  • fix: prevent panic in extractSystemBlocks on empty system message wit… by @dgageot in #2431
  • fix: hold mutex for instructions read in MCP Toolset.Instructions() by @dgageot in #2430
  • fix: add mutex to protect lastSelectedID in rule-based router by @dgageot in #2429
  • fix: add mutex lock to AddMessageUsageRecord to prevent data race by @dgageot in #2428
  • Add --repeat flag to eval command for running evaluations multiple times by @dgageot in #2440
  • fix: replace time.Sleep with context-aware select in MCP tryRestart by @dgageot in #2436
  • fix: preserve assistant text when tool calls present in Responses API conversion by @dgageot in #2438
  • fix: detect newer session database and show clear upgrade message by @dgageot in #2441
  • Support explicit OAuth credentials for remote MCP servers by @dgageot in #2394
  • fix: cache parsed robots.txt per host instead of boolean result by @dgageot in #2437
  • bump direct Go dependencies by @dgageot in #2444
  • Render markdown in user_prompt dialog messages by @dgageot in #2446
  • Add a pokemon example by @dgageot in #2445
  • Add an advanced coder example by @dgageot in #2447
  • fix(mcp): reuse discovered auth server for token refresh by @pandego in #2448
  • Fix --attach flag by @rumpl in #2449
  • Support xhigh effort for Anthropic adaptive thinking (Opus 4.7+) by @dgageot in #2450
  • feat(anthropic): add task_budget for Claude Opus 4.7 by @dgageot in #2453
  • chore: update cagent-action to v1.4.1 by @derekmisler in #2454

Full Changelog: v1.45.0...v1.46.0

v1.45.0

15 Apr 09:01
b4894c8

Choose a tag to compare

This release improves template expression handling, adds circular navigation to completions, and fixes issues with skills and MCP toolset loading.

Bug Fixes

  • Fixes evaluation of JavaScript template expressions to handle failures independently - when one expression fails, other valid expressions in the same template are still expanded
  • Fixes skills loading functionality
  • Fixes retry behavior for MCP toolset startup when server is unavailable
  • Fixes MCP toolset creation to proceed even when command binary is unavailable

Improvements

  • Adds circular navigation wrapping to completion component, allowing users to cycle through completion options

What's Changed

  • docs: update CHANGELOG.md for v1.44.0 by @docker-read-write[bot] in #2403
  • add circular navigation wrapping to completion component by @maxcleme in #2407
  • fix: evaluate JS template expressions independently on failure by @dgageot in #2400
  • fix: retry stdio MCP toolset when binary is unavailable at startup by @simon-agent-go-expert in #2413
  • Fix skills loading by @dgageot in #2414

Full Changelog: v1.44.0...v1.45.0

v1.44.0

13 Apr 15:35
ded8733

Choose a tag to compare

This release introduces TUI customization capabilities, session management improvements, and OAuth security enhancements, along with numerous bug fixes and stability improvements.

What's New

  • Adds support for extending and customizing TUI with additional commands through new Immediate flag and Parser struct
  • Adds session delete functionality to session browser
  • Adds click-to-select support for agents in the sidebar
  • Adds /fork slash command to duplicate current session into a new tab
  • Adds mid-turn message steering for running agent sessions with new /steer and /followup API endpoints
  • Adds OAuth token storage in OS keychain with silent refresh token support
  • Adds debug OAuth commands: list, remove, and login
  • Adds support for shell expansions (~, env vars) in config paths
  • Adds total session count display in session browser dialog title

Improvements

  • Improves TUI rendering to match sandbox template
  • Makes Ctrl+W context-aware to preserve word deletion in editor when focused
  • Makes /exit close only the current tab when multiple tabs are open

Bug Fixes

  • Fixes crash when opening empty websocket frames in OpenAI provider
  • Fixes Gemini thinking tokens not included in output token count for cost calculation
  • Fixes tool calls getting stuck as running when moved out of active reasoning block
  • Fixes missing type in schema and orphaned function calls in Responses API
  • Fixes spurious blank line appearing in every assistant message
  • Fixes layout shift when hovering over assistant messages to reveal copy button
  • Fixes concurrent RunSession calls causing tool_use/tool_result mismatch
  • Fixes panic in code mode when tool handler is nil
  • Fixes suggestion ghost text remaining when completion dialog closes on backspace
  • Fixes skill frontmatter parsing when description contains a colon
  • Fixes sidebar agent click zones mapping all lines to first agent
  • Fixes OAuth token security vulnerabilities and infinite recursion issues
  • Fixes auto-detect tool install failures being treated as fatal
  • Fixes background agent context being cancelled with parent message lifecycle

Technical Changes

  • Stores OAuth tokens in OS keychain with graceful fallback to in-memory storage
  • Serializes concurrent RunSession calls to prevent race conditions
  • Sanitizes message history to ensure all tool calls have results
  • Adds regression tests for SSE comment lines from OpenRouter
  • Uses in-memory store in keyring tests to avoid macOS keychain permission dialog
  • Separates steer and follow-up into distinct queues with lock/confirm semantics
  • Adds documentation for OpenAPI toolset
  • Optimizes PR CI build process

What's Changed

  • docs: update CHANGELOG.md for v1.43.0 by @docker-read-write[bot] in #2347
  • Better sandbox by @dgageot in #2348
  • support session delete to session browser by @shaj13 in #2352
  • fix: include Gemini thinking tokens in output token count for cost calculation by @dgageot in #2353
  • fix(openai): ignore empty websocket frames by @pandego in #2350
  • Store OAuth tokens in OS keychain and add silent refresh token support by @dgageot in #2355
  • bump direct Go dependencies by @dgageot in #2358
  • Allow to extend and customize TUI with additional commands by @shaj13 in #2346
  • Debug oauth by @dgageot in #2365
  • fix: handle missing type in schema and orphaned function calls in Responses API by @dgageot in #2362
  • Fix tool call stuck as running when moved out of active reasoning block by @dgageot in #2360
  • Add regression tests for SSE comment lines from OpenRouter by @dgageot in #2359
  • feat: click on agent in sidebar to switch to it by @dgageot in #2356
  • fix(tui): remove spurious blank line from every assistant message by @steilerDev in #2369
  • fix: use in-memory store in keyring tests to avoid macOS keychain permission dialog by @dgageot in #2367
  • docs: add documentation for OpenAPI toolset by @dgageot in #2371
  • fix(tui): reserve stable top row for copy icon to prevent layout shift by @dgageot in #2374
  • fix: serialize concurrent RunSession calls to prevent tool_use/tool_result mismatch by @dgageot in #2375
  • Faster PR CI by @rumpl in #2378
  • Sanitize message history by @rumpl in #2377
  • fix(toolinstall): soft-fail auto-detect installs by @pandego in #2386
  • fix: prevent panic in code mode when tool handler is nil by @dgageot in #2388
  • optional title and app name by @shaj13 in #2366
  • fix: /exit closes only the current tab when multiple tabs are open by @dgageot in #2387
  • Add support for shell expansions (~, env vars) in config paths by @dgageot in #2389
  • Bump direct Go dependencies by @dgageot in #2398
  • fix: OAuth token security and bug fixes by @dgageot in #2395
  • fix: decouple background agent context from parent message lifecycle by @dgageot in #2392
  • Show total session count in session browser dialog title by @dgageot in #2391
  • fix: make Ctrl+W context-aware to preserve word deletion in editor by @dgageot in #2390
  • Add /fork slash command to duplicate current session into a new tab by @shaj13 in #2385
  • Fix: allow tab auto-complete without executing by @joshbarrington in #2325
  • Fix skill frontmatter parsing when description contains a colon by @dgageot in #2401
  • fix: clear suggestion ghost text when completion dialog closes on backspace by @dgageot in #2399
  • Add mid-turn message steering for running agent sessions by @trungutt in #2363
  • Fix sidebar agent click zones mapping all lines to first agent by @dgageot in #2402

New Contributors

Full Changelog: v1.43.0...v1.44.0

v1.43.0

08 Apr 08:21
375ee41

Choose a tag to compare

This release adds non-interactive mode capabilities, improves TUI interactions with mouse support, and includes several bug fixes for RAG tools and streaming responses.

What's New

  • Adds auto-stop for max iterations in non-interactive mode to prevent hanging when tools are approved
  • Adds non-interactive mode flag to distinguish from tools approval scenarios
  • Adds mouse drag-to-move support for TUI dialogs, allowing repositioning by clicking and dragging the title area
  • Adds custom session ID support through WithID option instead of relying on UUID generation
  • Adds support for custom providers in RAG embedding and reranking models
  • Adds underline styling for URLs on mouse hover

Improvements

  • Evolves providers config to support any provider type with shared model defaults
  • Improves mise build output to show go build command and resulting binary
  • Exempts background-agent polling from loop-termination detection to prevent false positives

Bug Fixes

  • Fixes agent accent color application for working spinners in sidebar
  • Fixes duplicate RAG tool names and nil pointer panic in file watcher
  • Fixes toolset startup triggering from emitToolsChanged callback to avoid spurious timeout warnings
  • Fixes missing Models map in RAG ManagersBuildConfig for model alias resolution
  • Fixes nil pointer dereference in BM25Strategy.watchLoop during session teardown
  • Fixes extraction of reasoning_content from DMR streaming responses
  • Fixes scrollbar rendering in web terminals by replacing problematic characters

Technical Changes

  • Adds nocgo build support for rag/treesitter
  • Updates error message display when only one model is available

What's Changed

  • docs: update CHANGELOG.md for v1.42.0 by @docker-read-write[bot] in #2317
  • fix: use agent accent color for working spinners in sidebar by @jiahuipaung in #2315
  • Exempt background-agent polling from loop-termination detection by @krissetto in #2319
  • fix: pass Models map to RAG ManagersBuildConfig for model alias resolution by @dgageot in #2324
  • fix: avoid triggering toolset startup from emitToolsChanged callback by @dgageot in #2323
  • fix: resolve duplicate RAG tool names and nil pointer panic in file watcher by @dgageot in #2322
  • rag/treesitter: add nocgo build support by @shaj13 in #2329
  • Bump go dependencies by @dgageot in #2330
  • session: add WithID option for custom session IDs by @shaj13 in #2331
  • feat(runtime): add auto-stop for max iterations in non-interactive mode by @tdabasinskas in #2208
  • Fix nil pointer dereference in BM25Strategy.watchLoop during session teardown by @dgageot in #2334
  • Fix scrollbar rendering in web terminals by @dgageot in #2340
  • Improve mise build output to show go build command and resulting binary by @dgageot in #2338
  • fix: extract reasoning_content from DMR streaming responses by @dgageot in #2335
  • feat: add mouse drag-to-move support for TUI dialogs by @dgageot in #2339
  • Evolve providers to support any provider type with shared model defaults by @dgageot in #2343
  • feat: support custom providers in RAG embedding and reranking models by @dgageot in #2344
  • Underline URLs on mouse hover by @dgageot in #2316
  • Nicer message by @rumpl in #2345

New Contributors

Full Changelog: v1.42.0...v1.43.0

v1.42.0

03 Apr 13:28
8a128f5

Choose a tag to compare

This release improves evaluation output with structured JSON results and fixes several Windows compatibility issues.

What's New

  • Adds URL click detection for terminals with mouse tracking support
  • Includes structured results, run configuration, and summary in evaluation JSON output
  • Includes judge reasons for passed relevance criteria in evaluation results

Bug Fixes

  • Fixes Windows OS detection typo in session environment (corrects "window" to "windows")
  • Replaces removed claude-3-7-sonnet-latest alias with explicit model ID in examples
  • Uses platform-aware shell detection for Windows compatibility in skill expansion, script_shell, post-edit hooks, and bang commands

Technical Changes

  • Pre-populates criterion names in CheckRelevance results
  • Fixes lint issues including gci formatting and testifylint float comparisons

What's Changed

  • docs: update CHANGELOG.md for v1.41.0 by @docker-read-write[bot] in #2307
  • eval: include structured results, run config, and summary in JSON output by @hamza-jeddad in #2309
  • fix: correct Windows OS detection typo in session environment by @trungutt in #2312
  • fix: replace removed claude-3-7-sonnet-latest alias in examples by @trungutt in #2313
  • fix: use platform-aware shell for skill expansion, script_shell, post-edit hooks, and bang command by @trungutt in #2314
  • tui/messages: Add URL click detection for terminals with mouse tracking by @vvoland in #2308

Full Changelog: v1.41.0...v1.42.0

v1.41.0

01 Apr 16:36
d3a94ec

Choose a tag to compare

This release introduces a new models discovery command, contextual help system, and several TUI improvements including persistent warnings and simplified lean mode.

What's New

  • Adds docker agent models command to list available models for the --model flag
  • Adds contextual help dialog accessible via Ctrl+H (or F1/Ctrl+?) showing all keyboard shortcuts
  • Adds --lean flag for simplified TUI mode with minimal interface (just message stream and editor)
  • Adds copy button on hover for assistant messages to copy content to clipboard
  • Adds Vertex AI Model Garden support for non-Gemini models (Claude, Llama) hosted on Google Cloud

Improvements

  • Makes TUI warnings persist until manually dismissed instead of auto-dismissing after 3 seconds
  • Preserves recent messages during session compaction to maintain conversational context
  • Shows elapsed time and warning for long-running tool calls in the TUI
  • Adds desktop_uuid in telemetry alongside user_uuid for better tracking

Bug Fixes

  • Fixes markdown rendering in callout notes by adding markdown="1" attribute
  • Fixes panic on closed channel by making chanSend non-blocking
  • Fixes recursive run_skill loop in context:fork skill sub-sessions
  • Fixes docker run --sandbox functionality
  • Fixes eval tool_call_response to use correct event field names
  • Fixes guard against nil tool_definition in buildTranscript

Technical Changes

  • Replaces kin-openapi with pb33f/libopenapi for OpenAPI parsing
  • Removes trailing headers handling for rate limit headers
  • Tracks command errors with success=false and error details in telemetry
  • Ports build system to mise
  • Updates Go module dependencies

What's Changed

  • Add desktop_uuid in telemetry (next to user_uuid) by @gtardif in #2279
  • docs: update CHANGELOG.md for v1.40.0 by @docker-read-write[bot] in #2281
  • Preserve recent messages during session compaction by @rumpl in #2259
  • Make TUI warnings persist until manually dismissed by @dgageot in #2252
  • Fix markdown rendering in documentation callout notes by @dgageot in #2285
  • go mod tidy by @dgageot in #2292
  • docs: add Vertex AI Model Garden section to Google provider docs by @dgageot in #2290
  • Add copy button on hover for assistant messages by @dgageot in #2288
  • Add Vertex AI Model Garden support for non-Gemini models by @dgageot in #2287
  • fix: make chanSend non-blocking to prevent panic on closed channel by @dgageot in #2286
  • tui: show elapsed time and warning for long-running tool calls by @dgageot in #2291
  • Bump direct Go module dependencies by @dgageot in #2284
  • Fix TUI stuck in Working state after failed sub-agent transfer_task by @dgageot in #2294
  • Add --lean flag for simplified TUI mode by @dgageot in #2253
  • Port to mise by @dgageot in #2293
  • Track command errors with success=false and error details by @gtardif in #2283
  • Remove trailing headers handling for rate limit headers by @dgageot in #2298
  • fix: prevent recursive run_skill loop in context:fork skill sub-sessions by @dgageot in #2289
  • Replace kin-openapi with pb33f/libopenapi for OpenAPI parsing by @dgageot in #2299
  • fix: eval tool_call_response uses correct event field names by @hamza-jeddad in #2302
  • Fix docker run --sandbox by @dgageot in #2301
  • use DD proxy when available, also from WSL by @gtardif in #2306
  • Add contextual help dialog (Ctrl+H) by @masegraye in #2305
  • feat: add docker agent models command by @masegraye in #2304

New Contributors

Full Changelog: v1.40.0...v1.41.0

v1.40.0

30 Mar 14:26
e7c47c8

Choose a tag to compare

This release improves AI assistant capabilities with better response tracking and Google integration, plus fixes a critical exit hang issue.

What's New

  • Adds Google Search, Google Maps, and code execution capabilities for Gemini models
  • Surfaces finish_reason information on assistant messages and token usage events to track why the AI stopped generating responses

Bug Fixes

  • Fixes process hang when using /exit command due to bubbletea renderer deadlock

Technical Changes

  • Adds tests reproducing bubbletea renderer deadlock on exit
  • Adds safety-net exit mechanism for bubbletea renderer deadlock prevention

What's Changed

  • docs: update CHANGELOG.md for v1.39.0 by @docker-read-write[bot] in #2265
  • Fix process hang on /exit due to bubbletea renderer deadlock by @aheritier in #2269
  • Fix url by @dgageot in #2277
  • Google grounding by @dgageot in #2276
  • Surface finish_reason on assistant messages and token usage events by @trungutt in #2254

Full Changelog: v1.39.0...v1.40.0

v1.39.0

27 Mar 16:40
ff3a63d

Choose a tag to compare

This release adds new color themes for the terminal interface and includes internal version management updates.

What's New

  • Adds Calm Roots theme with warm white accents, sage green info messages, and charcoal background
  • Adds Neon Pink theme with vibrant pink tones and high-contrast white accents for readability

Technical Changes

  • Freezes v7 version
  • Updates CHANGELOG.md for v1.38.0

What's Changed

  • docs: update CHANGELOG.md for v1.38.0 by @docker-read-write[bot] in #2256
  • Add Calm Roots and Neon Pink themes by @ambigois in #2260
  • Freeze v7 by @dgageot in #2264

Full Changelog: v1.38.0...v1.39.0

v1.38.0

26 Mar 12:15
8d9a4c5

Choose a tag to compare

This release improves OAuth configuration and fixes tool caching issues with remote MCP server reconnections.

Improvements

  • Changes OAuth client name to "docker-agent" for better identification
  • Reworks compaction logic to prevent infinite loops when context overflow errors occur repeatedly

Bug Fixes

  • Fixes tool cache not refreshing after remote MCP server reconnects, ensuring updated tools are available after server restarts

Technical Changes

  • Updates CHANGELOG.md for v1.37.0 release documentation

What's Changed

  • docs: update CHANGELOG.md for v1.37.0 by @docker-read-write[bot] in #2243
  • Change the oauth client name to docker-agent by @rumpl in #2245
  • fix: refresh tool and prompt caches after remote MCP server reconnect by @dgageot in #2246
  • Refactor compaction by @dgageot in #2242

Full Changelog: v1.37.0...v1.38.0

v1.37.0

25 Mar 14:57
4292f97

Choose a tag to compare

This release adds support for forwarding sampling parameters to provider APIs, introduces global user-level permissions, and includes several bug fixes and improvements.

What's New

  • Adds support for forwarding sampling provider options (top_k, repetition_penalty, etc.) to provider APIs
  • Adds global-level permissions from user config that apply across all sessions and agents
  • Adds a welcome message to the interface
  • Adds custom linter to enforce config version import chain

Improvements

  • Refactors RAG from agent-level config to standard toolset type for consistency with other toolsets
  • Restores RAG indexing event forwarding to TUI after toolset refactor
  • Simplifies RAG event forwarding and cleans up RAGTool

Bug Fixes

  • Fixes Bedrock interleaved_thinking defaults to true and adds logging for provider_opts mismatches
  • Fixes issue where CacheControl markers were preserved during message compaction, exceeding Anthropic's limit
  • Fixes tool loop detector by resetting it after degenerate loop error
  • Fixes desktop proxy socket name on WSL where http-proxy socket is not allowed for users

Technical Changes

  • Documents max_old_tool_call_tokens and max_consecutive_tool_calls in agent config reference
  • Documents global permissions from user config in permissions reference and guides
  • Pins GitHub actions for improved security
  • Updates cagent-action to latest version with better permissions

What's Changed

  • docs: update CHANGELOG.md for v1.36.1 by @docker-read-write[bot] in #2227
  • Add custom linter to enforce config version import chain by @dgageot in #2225
  • feat: forward sampling provider_opts (top_k, repetition_penalty) to provider APIs by @dgageot in #2226
  • Refactor RAG from agent-level config to standard toolset type by @dgageot in #2210
  • docs: add max_old_tool_call_tokens and max_consecutive_tool_calls to agent config reference by @dgageot in #2229
  • Pin GitHub actions by @dgageot in #2231
  • update cagent-action to latest (with better permissions) by @derekmisler in #2233
  • Bump direct Go module dependencies by @dgageot in #2238
  • fix: strip CacheControl from messages during compaction by @dgageot in #2236
  • Reset tool loop detector after degenerate loop error by @dgageot in #2237
  • Add global-level permissions from user config by @trungutt in #2230
  • docs: document global permissions from user config by @trungutt in #2241
  • Fix desktop proxy socket name on WSL by @gtardif in #2240

Full Changelog: v1.36.1...v1.37.0