github docker/docker-agent v1.147.0

latest release: v1.148.0
3 hours ago

This release adds hook-driven agent routing, a lean TUI settings panel, codemode tool call visibility, and several new CLI and eval capabilities, alongside a broad set of bug fixes for assistant message handling, DMR routing, and TUI rendering.

What's New

  • Adds a /settings command to the lean TUI with an inline settings panel supporting keyboard navigation, save/cancel, and persistence of preferences
  • Adds hook-driven agent routing with a routing block (allowed_agents, default_agent) and new before_agent_run/after_agent_complete hook events
  • Adds native JSON field selection (transform_json) as a builtin hook for trimming tool response payloads
  • Adds a debug tool command (docker agent debug tool <config> <tool> [JSON params]) to call tools directly outside of any LLM loop
  • Adds --last flag to docker agent run --exec to print only the final answer, buffering intermediate output
  • Adds max_output_bytes field to the openapi toolset to cap response text size (omitting it keeps the 30,000-byte default; 0 disables the cutoff)
  • Adds SessionRecovered event for idle recovery boundaries in the runtime
  • Exposes codemode tool calls and highlights scripts in TUIs, emitting standard tool-call, streamed-output, and response events for tools invoked inside Code Mode
  • Returns promises from codemode tool calls, supporting concurrent execution, Promise.all, Promise.allSettled, and top-level await
  • Supports DOCKER_AGENT_DATA_DIR environment variable for setting the data directory
  • Adds repeat stability and cost outlier reporting to eval runs with --repeat > 1
  • Adds --flavor support and structured tool output capture to docker agent eval

Improvements

  • Lean TUI unmatched slash queries now fall back to model selection instead of dismissing the menu, supporting multi-term queries like /openai astra
  • Prompt history now follows --data-dir (including ~ expansion) and forwards the setting to the sandbox
  • Eval judge model default updated to openai/gpt-5.6-terra

Bug Fixes

  • Fixes DMR commands routing through the selected Docker connection (context/host/config/TLS) instead of falling back to a hardcoded local socket
  • Fixes DMR transport errors to include the name of the selected Docker connection (--host, --context, etc.)
  • Fixes assistant messages being dropped across TUIs, remote sessions, and recovery
  • Fixes tool-call XML leaking into canonical and reloaded assistant text
  • Fixes generated media losing stable identity on redraw in the TUI
  • Fixes remote session history loss across idle recovery, OAuth elicitation, and snapshots taken mid-turn
  • Fixes lean TUI tool updates duplicating content in terminal scrollback
  • Fixes lean TUI replaying the full offscreen suffix on every redraw
  • Fixes tool argument declaration order not being preserved in generated schemas
  • Fixes reasoning and response output running together in exec text mode — a blank line is now inserted between them
  • Fixes eval containers picking up a stale local agent image digest instead of the most recently built one
  • Fixes --data-dir not expanding ~ and not forwarding the path to the sandbox
  • Clarifies /speak transcription requirements: requires OPENAI_API_KEY and does not work with the Docker models gateway

Technical Changes

  • Removes flaky TestTmuxVisibilityLifecycle tmux integration test

What's Changed

  • chore: refresh models.dev snapshot (+38 -14 ~95) by @github-actions[bot] in #4482
  • chore: refresh models.dev snapshot (+30 -14 ~39) by @github-actions[bot] in #4483
  • feat: add settings command to lean TUI by @rumpl in #4484
  • fix: route DMR through the selected Docker connection safely by @dgageot in #4481
  • feat: return promises from codemode tool calls by @rumpl in #4487
  • test(tui): remove flaky tmux visibility lifecycle test by @rumpl in #4488
  • docs: auto-update for merged PRs (2026-10-01) by @aheritier in #4489
  • fix: name selected Docker connection in DMR transport errors by @dgageot in #4491
  • feat(openapi): add max_output_bytes to cap response text size by @dgageot in #4490
  • feat: add debug tool command to call tools directly by @dgageot in #4492
  • fix: stop dropping assistant turns across TUIs, remote sessions and recovery by @dgageot in #4493
  • feat: expose codemode tool calls and highlight scripts in TUIs by @rumpl in #4494
  • feat: honor --data-dir for prompt history and sandbox forwarding by @dgageot in #4496
  • feat: add hook-driven agent routing by @hamza-jeddad in #4495
  • fix: clarify speech input requirements by @aheritier in #4498
  • feat(eval): forward --flavor overrides and record structured tool output by @dgageot in #4499
  • feat(eval): report repeat stability and cost outliers by @dgageot in #4500
  • docs: auto-update for merged PRs (2026-10-03) by @aheritier in #4502
  • fix: prevent lean TUI tool updates from duplicating scrollback by @rumpl in #4501
  • fix(eval): pin local agent image digest when building containers by @dgageot in #4506
  • fix(leantui): switch unmatched slash queries to model selection by @rumpl in #4507
  • chore: refresh models.dev snapshot (+132 -38 ~155) by @github-actions[bot] in #4511
  • feat: add --last flag for exec to print only the final answer by @dgageot in #4504
  • feat(hooks): add transform_json builtin for field selection by @dgageot in #4505
  • fix: preserve tool argument declaration order by @rumpl in #4508
  • fix(cli): separate reasoning from response in exec text mode by @dgageot in #4513
  • eval: default judge model to openai/gpt-5.6-terra by @dgageot in #4514
  • docs: auto-update for merged PRs (2026-10-05) by @aheritier in #4509

Full Changelog: v1.146.0...v1.147.0

Don't miss a new docker-agent release

NewReleases is sending notifications on new releases.