This release adds XML tool call parsing for better model compatibility, performance improvements for TUI rendering, and enhanced remote runtime capabilities.
What's New
- Adds XML tool call fallback parsing for models that return
<tool_call>...</tool_call>text instead of using OpenAI function-calling API - Adds fd:// scheme support to server.Listen for parent process socket passing
- Adds per-code-block copy affordance with clickable copy glyphs in TUI
- Adds session persistence and resumption for A2A (agent-to-agent) interactions using SQLite
- Adds comprehensive remote runtime API with SSE event streaming, session management, and graceful degradation
Improvements
- Improves TUI rendering performance with cached output, targeted invalidation, and incremental markdown rendering
- Improves ACP support with session management, event handling, and structured error codes
- Preserves user input across tab switches in TUI dialogs
Bug Fixes
- Fixes crash during tool auto-install by adding panic recovery
- Fixes SSE stream cancellation and IPv6 address binding issues
- Fixes Vertex AI Model Garden provider capability lookups by rewriting provider to publisher mapping
Technical Changes
- Replaces internal secretsscan with github.com/docker/portcullis library
- Centralizes modelsdev.Store creation via RuntimeConfig with lazy initialization
- Merges modelcaps into modelinfo and introduces strongly-typed modelsdev.ID
- Refactors event handling to use EventSink interface instead of channel threading
- Removes experimental send, watch, and proto subcommands
What's Changed
- docs: update CHANGELOG.md for v1.58.0 by @docker-read-write[bot] in #2745
- feat: add fd:// scheme support to server.Listen by @dgageot in #2744
- refactor: replace internal secretsscan with github.com/docker/portcullis by @dgageot in #2747
- refactor: centralize modelsdev.Store creation and inject via RuntimeConfig by @dgageot in #2746
- docs: Docker-branded redesign with dark-mode-first theme and improved homepage by @dgageot in #2750
- feat(modelsdev): add WithCache option to override cache file path by @rumpl in #2753
- feat: wire TUI/CLI to emit Document parts and render attachments by @simonferquel-clanker in #2751
- fix: avoid sub-agent terminology in skill instructions to prevent transfer_task confusion by @dgageot in #2748
- refactor: merge modelcaps into modelinfo and simplify by @dgageot in #2755
- refactor: simplify RuntimeConfig by removing dead field and caching env provider by @dgageot in #2754
- refactor: extract loopState struct to bundle runTurn parameters by @dgageot in #2759
- feat: add docs preview workflow for PRs by @dgageot in #2752
- feat(runtime): remote runtime with full TUI parity and production readiness by @dgageot in #2749
- feat(a2a): allow session to be resumed interactively by @maxcleme in #2762
- feat: improve TUI control plane API for external consumers by @dgageot in #2757
- perf: TUI rendering performance improvements by @dgageot in #2756
- drop send, watch and proto subcommands by @dgageot in #2763
- xml fallback for llama.cpp models by @areebahmeddd in #2732
- refactor: replace chan Event threading with EventSink interface by @dgageot in #2760
- Improve ACP support: session management, event handling, and code simplification by @dgageot in #2758
- refactor: introduce modelsdev.ID for provider-qualified model identity by @dgageot in #2766
- fix(toolinstall): recover from panics during auto-install by @dgageot in #2768
- fix: rewrite Vertex AI Model Garden provider to publisher for capability lookups by @dgageot in #2767
- bump direct go dependencies by @dgageot in #2771
- Fix linter by @dgageot in #2772
- fix(tui): preserve user_prompt input across tab switches by @dgageot in #2774
- perf(tui): make streaming chunk rendering linear by @dgageot in #2773
- fix: two TUI control-plane bugs (SSE cancel, IPv6 listen) by @dgageot in #2775
- set working dir properly by @krissetto in #2777
- feat(tui): add per-code-block copy affordance by @rumpl in #2778
New Contributors
- @areebahmeddd made their first contribution in #2732
Full Changelog: v1.58.0...v1.59.0