github docker/docker-agent v1.159.0

one hour ago

This release adds new providers and Anthropic fast mode support, completes built-in agent definitions, fixes several correctness and security issues, and includes extensive internal refactoring.

What's New

  • Adds Obscurify.ai to the built-in provider catalog (OpenAI-compatible, default model deepseek/deepseek-v4-flash)
  • Adds fast mode to the Anthropic provider via provider_opts.speed (fast | standard) for the Messages API
  • Adds support for Claude Fable 5.2 and Mythos 5.2 on Bedrock
  • Completes default and minimal built-in agents; the built-in default is now a coding agent with a minimal general-purpose alternative
  • Emits a warning when a final reply is missing after tool use, instead of silently treating it as successful

Improvements

  • Ends the Kitty graphics terminal probe on the DA1 reply, reducing startup delay for terminals that do not support Kitty graphics
  • Loads prompt history off the startup path, cutting time to first TUI frame

Bug Fixes

  • Fixes MCP tool results where separate text blocks were concatenated without separators, causing file lists and other multi-element results to run together
  • Fixes Gemini handling of MALFORMED_FUNCTION_CALL / UNEXPECTED_TOOL_CALL to fail the stream with a non-retryable error instead of silently ending as a finished answer
  • Fixes Gemini to omit thinkingConfig for non-reasoning models (fixes Gemini Flash Image)
  • Fixes Gemini to keep invalid function calls non-retryable
  • Fixes OpenAI-compatible stream adapter to treat content_filter finish reason as a refusal instead of passing it through unhandled
  • Fixes config loading to accept agent configs and .env files saved with a UTF-8 BOM (affects files written by PowerShell 5 on Windows)
  • Fixes .agentsignore parsing to remove the 64 KiB per-line scanner limit
  • Fixes RAG package detection to stop dropping files with over-long lines
  • Fixes transcript writes to be flushed before compaction is persisted, preventing ordering issues on Windows
  • Fixes inherited Windows socket handles to be released with closesocket instead of CloseHandle
  • Fixes docker agent serve acp to use the default agent when no agent argument is specified
  • Fixes API read-only hints to apply only to GET requests; other HTTP methods are no longer incorrectly classified as read-only
  • Fixes sandbox auto-kits to exclude workspace prompt symlinks, preventing host targets from being copied in
  • Fixes message-merge probes to report aggregate prompt tokens correctly
  • Fixes Anthropic catalogue pricing to be preserved for ANTHROPIC_BASE_URL endpoints in fast mode

Technical Changes

  • Extensive internal refactoring across runtime, TUI, RAG, providers, shell, config, and other packages — removes redundant helpers, unused adapters, write-only state, and duplicate logic (net ~169 lines removed from production code)
  • Refreshes the models.dev catalog snapshot (32 models added, 14 removed, 84 updated)
  • Isolates test suites from the developer's home directory to prevent personal config from affecting test results
  • Adds opt-in message-merging compatibility probes for provider testing

What's Changed

  • refactor(leantui): clone cached tool lines directly by @dgageot in #4868
  • refactor(rag): reuse initialization file sets by @dgageot in #4867
  • refactor(rag): stop collecting unused fusion ranks by @dgageot in #4865
  • refactor(markdown): reuse incremental renderer reset by @dgageot in #4866
  • refactor(leantui): inline single-use command filter by @dgageot in #4864
  • refactor(cli): reuse model-list JSON encoder by @dgageot in #4863
  • refactor(runtime): remove redundant JSON key sorting by @dgageot in #4862
  • refactor(bedrock): remove lazy document forwarder by @dgageot in #4861
  • refactor(effort): use standard first-match lookup by @dgageot in #4860
  • refactor(tui): remove write-only inline edit content by @dgageot in #4859
  • refactor(markdown): remove unused derived style state by @dgageot in #4856
  • refactor(tui): reuse snapshot pluralization helper by @dgageot in #4857
  • refactor(runtime): remove harness tool ID accessor by @dgageot in #4858
  • refactor(tasks): remove JSON result forwarder by @dgageot in #4855
  • build(deps): bump the actions group across 1 directory with 2 updates by @dependabot[bot] in #4827
  • refactor(shell): remove shell detection forwarder by @dgageot in #4853
  • refactor(mermaid): reuse sequence canvas for lifelines by @dgageot in #4854
  • refactor(skills): consolidate skill lookup by @dgageot in #4851
  • refactor(providers): remove stream adapter forwarders by @dgageot in #4852
  • refactor(runtime): reuse prompt joiner for delegation notes by @dgageot in #4850
  • refactor(codemode): use maps.Clone for schema copies by @dgageot in #4849
  • refactor(codemode): remove unused comment indentation layer by @dgageot in #4848
  • refactor(tui): remove redundant extractor state flags by @dgageot in #4846
  • refactor(leantui): remove image forwarding layer by @dgageot in #4845
  • refactor(fetch): remove HTML-to-text forwarding helper by @dgageot in #4844
  • refactor(kit): remove unused auto-install check by @dgageot in #4834
  • refactor(shellpath): collapse redundant Unix shell helper by @dgageot in #4835
  • refactor(runtime): remove unused approval source mappers by @dgageot in #4833
  • refactor(skills): remove unused git root helper by @dgageot in #4832
  • refactor(httpclient): inline test-only ID source option by @dgageot in #4838
  • refactor(path): delegate home shortening to shared helper by @dgageot in #4840
  • refactor(tui): remove test-only validation adapters by @dgageot in #4841
  • refactor(tui): remove write-only pointer state by @dgageot in #4843
  • fix(runtime): flush transcript writes before persisting compaction by @dgageot in #4871
  • refactor(anthropic): remove test-only content helper by @dgageot in #4837
  • docs: update CHANGELOG.md for v1.158.0 by @docker-read-write[bot] in #4830
  • fix(oaistream): end a content_filter turn as a refusal by @jaeminbird in #4825
  • fix(acp): use default agent when none is specified by @dgageot in #4876
  • Make the default built-in a coding agent by @dgageot in #4875
  • refactor(runtime): reuse notifier pointer identity helper by @dgageot in #4847
  • refactor(tui): inline agent registry index lookups by @dgageot in #4839
  • refactor(rag): remove BM25 document-loading adapter by @dgageot in #4870
  • refactor(config): share instruction-file decoder callback by @dgageot in #4869
  • refactor(providerutil): remove redundant nil-map guards by @dgageot in #4842
  • fix(config): accept agent configs and env files saved with a UTF-8 BOM by @jaeminbird in #4826
  • chore: bump direct Go dependencies by @dgageot in #4878
  • Bump golang.org/x/term to v0.48.0 by @dgageot in #4879
  • fix(server): release inherited Windows sockets with closesocket by @dgageot in #4872
  • fix(gemini): fail invalid function calls, end unfinished continuations by @jaeminbird in #4808
  • feat: add Obscurify.ai to the built-in provider catalog by @tonydavis629 in #4751
  • chore: refresh models.dev snapshot (+32 -14 ~84) by @github-actions[bot] in #4880
  • docs: correct configuration and tool guidance by @dgageot in #4885
  • feat: support Claude Fable and Mythos 5.2 by @aheritier in #4883
  • test(providers): add opt-in message-merging compatibility probes by @onatozmenn in #4831
  • refactor: remove accidental complexity in 33 small, behavior-preserving steps by @dgageot in #4887
  • fix(mcp): keep separate text blocks of a tool result apart by @jaeminbird in #4802
  • fix(rag): stop dropping files with over-long lines in package detection by @TDnorthgarden in #4828
  • fix(fsx): read .agentsignore lines without the 64 KiB scanner limit by @TDnorthgarden in #4836
  • fix(gemini): omit thinking config for non-reasoning models by @gargsajal9 in #4884
  • perf(tui): cut time to first frame (Kitty probe, prompt history) by @dgageot in #4888
  • Warn when a final reply is missing after tool use by @dgageot in #4892
  • test: isolate test suites from the developer's home directory by @dgageot in #4893
  • feat(anthropic): add fast mode via provider_opts.speed by @simonferquel-clanker in #4886
  • fix: restrict API read-only hints to GET requests by @dgageot in #4896
  • fix(sandbox): keep workspace prompt symlinks out of auto-kits by @dgageot in #4897
  • fix(providers): report aggregate prompt tokens in message-merge probes by @TDnorthgarden in #4894

New Contributors

Full Changelog: v1.158.0...v1.159.0

Don't miss a new docker-agent release

NewReleases is sending notifications on new releases.