Release history
docker-agent releases
AI Agent Builder and Runtime by Docker Engineering
All releases
93 shown
Eval input_id passthrough + Private IP MCP OAuth
Error handling, coding harnesses, TUI improvements
- Hardens `http_post` hook with SSRF‑safe client, scheme validation, and request logging
- Adds security hardening for secrets provider, archive extraction, OAuth HTTP client, and shell tool
- External control of running TUI via `--listen`, `send`, and `watch` commands
- `http_post` builtin hook for making HTTP POST requests from agent workflows
- `bump-config-version` skill for configuration version management
Full changelog
This release adds external TUI control capabilities, HTTP POST hooks, and several security hardening improvements.
What's New
- Adds
http_postbuiltin hook for making HTTP POST requests from agent workflows - Adds
--listenflag toruncommand to expose the running TUI for external control - Adds
sendsubcommand to drive a live TUI session from external processes - Adds
watchsubcommand to stream events from a running TUI - Adds
--on-eventhooks to observe arbitrary events during runs - Adds
--attachflag toserve mcpcommand to expose running TUI via MCP - Adds newline-delimited JSON protocol over stdio for external communication
- Adds discovery files for live runs in run registry
- Adds
bump-config-versionskill for configuration management
Bug Fixes
- Fixes filesystem tool path expansion for
~(home directory) in file paths - Fixes model ID handling to use fully-qualified provider/model identifiers for capability lookups
- Fixes Nebius example to use available Kimi-K2.5 model instead of deprecated Kimi-K2-Instruct
- Fixes dry-run mode to work properly before contacting remote servers
- Fixes request context propagation in echo logging
- Fixes run registry permissions and session lifecycle cleanup
Improvements
- Makes
max_iterationsbuiltin stateless by using runtime's existing iteration counter - Hardens
http_posthook with SSRF-safe client, scheme validation, and request logging - Consolidates home directory path expansion across the codebase
- Shows current git branch when working in a repository
- Unifies local and remote run dispatch through shared backend interface
Technical Changes
- Refactors snapshot handling into dedicated
SnapshotControllerseparate from runtime - Refactors unload builtin to be pure and runtime-agnostic
- Promotes model switching and tools change subscription onto Runtime interface
- Adds security hardening for secrets provider, archive extraction, OAuth HTTP client, and shell tool
- Enables gosec linter for file permission validation
- Updates Go to version 1.26.3
- Adds migration content pinning to enforce append-only database schema changes
What's Changed
- docs: update CHANGELOG.md for v1.57.0 by @docker-read-write[bot] in https://github.com/docker/docker-agent/pull/2703
- fix: expand ~ in filesystem tool paths by @dgageot in https://github.com/docker/docker-agent/pull/2704
- feat(hooks): add http_post builtin by @dgageot in https://github.com/docker/docker-agent/pull/2705
- fix: use available Kimi-K2.5 model in nebius example by @dgageot in https://github.com/docker/docker-agent/pull/2711
- fix: make max_iterations builtin stateless (#2698) by @dgageot in https://github.com/docker/docker-agent/pull/2708
- update PR reviewer to 1.5.1 by @derekmisler in https://github.com/docker/docker-agent/pull/2717
- Show the current git branch when in a repo by @rumpl in https://github.com/docker/docker-agent/pull/2721
- Consolidate home directory path expansion by @rumpl in https://github.com/docker/docker-agent/pull/2720
- Change the default models for the golang dev by @rumpl in https://github.com/docker/docker-agent/pull/2718
- Change the app name in otel to docker-agent by @rumpl in https://github.com/docker/docker-agent/pull/2719
- bump direct go dependencies by @dgageot in https://github.com/docker/docker-agent/pull/2709
- bump go to 1.26.3 by @dgageot in https://github.com/docker/docker-agent/pull/2712
- feat: let external processes drive a running TUI by @dgageot in https://github.com/docker/docker-agent/pull/2714
- security: five defense-in-depth fixes (secrets, archives, oauth, shell tool, request logs) by @dgageot in https://github.com/docker/docker-agent/pull/2713
- refactor(run): unify local/remote dispatch via Backend (10 baby steps) by @dgageot in https://github.com/docker/docker-agent/pull/2715
- refactor: extract SnapshotController so the runtime no longer brokers /undo by @dgageot in https://github.com/docker/docker-agent/pull/2707
- add bump-config-version skill by @dgageot in https://github.com/docker/docker-agent/pull/2729
- ci: enable gosec linter by @dgageot in https://github.com/docker/docker-agent/pull/2730
- test(session): pin migration catalogue content (append-only enforcement) by @dgageot in https://github.com/docker/docker-agent/pull/2727
- fix(toolinstall): route the registry client through httpclient.NewSafeClient by @dgageot in https://github.com/docker/docker-agent/pull/2726
- Fix broken test on main by @dgageot in https://github.com/docker/docker-agent/pull/2735
- Add alias by @dgageot in https://github.com/docker/docker-agent/pull/2736
- ci: lint workflow invariants actionlint misses (concurrency, SHA pinning, payload deny-list) by @dgageot in https://github.com/docker/docker-agent/pull/2725
- refactor(run-control): unify target resolution and SSE handling by @dgageot in https://github.com/docker/docker-agent/pull/2731
- refactor(hooks): make the unload on_agent_switch builtin pure by @dgageot in https://github.com/docker/docker-agent/pull/2706
- chore: bump direct Go dependencies by @dgageot in https://github.com/docker/docker-agent/pull/2742
- remote-runtime: close silent gaps, consolidate Runtime, scaffold wire (10 baby steps) by @dgageot in https://github.com/docker/docker-agent/pull/2723
- fix: pass fully-qualified provider/model ID to modelcaps.Load by @simonferquel-clanker in https://github.com/docker/docker-agent/pull/2738
Full Changelog: https://github.com/docker/docker-agent/compare/v1.57.0...v1.58.0
- Tightens Docker PAT redaction, adds organization access token support, and caps quantifiers on new secret rules to prevent adjacent text mis‑redaction
- Adds `unload on_agent_switch` builtin hook to release model resources during agent switching
- Improves markdown fast renderer performance and simplifies its implementation
Full changelog
This release improves markdown rendering performance, adds agent switching capabilities, and enhances secret redaction with better error handling.
What's New
- Adds unload on_agent_switch builtin hook for releasing model resources when switching between agents
Improvements
- Speeds up and simplifies markdown fast renderer for better performance
- Trims builtin tool schemas to save tokens in LLM requests
- Tightens Docker PAT redaction and adds organization access tokens support
- Adds more vendor-prefixed secret patterns for improved security scanning
Bug Fixes
- Fixes retry handling for Vertex AI 'function response parts' 400 errors that occur intermittently
- Restores styles on continuation lines of broken words in markdown rendering
- Fixes H1 prefix and ANSI style handling in wrapText functionality
- Defensively lowercases transient patterns in model error handling
- Caps quantifiers on new secret rules to prevent adjacent text being incorrectly redacted
Technical Changes
- Adopts new rubocop-go DSL across all linting cops for better code organization
- Uses slog.WarnContext where context is available for improved logging
- Drains unload response body and documents single-tenant assumption
What's Changed
- docs: update CHANGELOG.md for v1.56.0 by @docker-read-write[bot] in https://github.com/docker/docker-agent/pull/2695
- Make the FastMarkdown renderer simpler and faster by @dgageot in https://github.com/docker/docker-agent/pull/2686
- refactor(lint): adopt new rubocop-go DSL across all cops by @dgageot in https://github.com/docker/docker-agent/pull/2687
- fix: retry transient Vertex AI 'function response parts' 400 errors by @dgageot in https://github.com/docker/docker-agent/pull/2691
- shrink builtin tool schemas to save tokens by @dgageot in https://github.com/docker/docker-agent/pull/2694
- feat: add unload on_agent_switch builtin hook by @dgageot in https://github.com/docker/docker-agent/pull/2684
- secretsscan: tighten Docker PAT, add new vendor patterns, cap quantifiers by @dgageot in https://github.com/docker/docker-agent/pull/2697
Full Changelog: https://github.com/docker/docker-agent/compare/v1.56.0...v1.57.0
- Freezes config v8; config v9 becomes the latest schema version.
- /snapshots command to list and restore session snapshots
- 20 additional secret detection patterns (Discord, Telegram bot tokens, Fly.io macaroons, Groq, Perplexity, xAI/Grok API keys)
Full changelog
This release adds snapshot management capabilities and expands secret detection with 20 new patterns.
What's New
- Adds
/snapshotscommand to list and restore captured snapshots from the current session - Adds 20 new secret detection patterns including Discord bot tokens, Telegram bot tokens, Fly.io macaroons, Groq API keys, Perplexity API keys, and xAI/Grok API keys
Technical Changes
- Freezes config v8 and starts v9 as the latest configuration schema version
- Moves non-migration config tests to pkg/config for better organization
- Updates logging to use slog.WarnContext when a context is in scope
- Simplifies snapshot plumbing implementation
What's Changed
- freeze config v8 and start v9 as latest by @dgageot in https://github.com/docker/docker-agent/pull/2688
- docs: update CHANGELOG.md for v1.55.0 by @docker-read-write[bot] in https://github.com/docker/docker-agent/pull/2689
- feat(tui): add /snapshots command to list and restore captured snapshots by @dgageot in https://github.com/docker/docker-agent/pull/2690
- feat(secretsscan): add 20 more secret patterns by @dgageot in https://github.com/docker/docker-agent/pull/2692
- move non-migration config tests to pkg/config by @dgageot in https://github.com/docker/docker-agent/pull/2693
Full Changelog: https://github.com/docker/docker-agent/compare/v1.55.0...v1.56.0
- Hardens OAuth with constant‑time state comparison and SSRF protection (internal change)
- Blocks non‑public IPs in API and OpenAPI tools by default (internal change)
- Updates jose2go to v1.7.0 addressing CVEs GO-2025-4123 and GO-2023-2409
- Adds HCL configuration format as an alternative to YAML
- Introduces `/pause` command and `turn_end` hook for runtime control
- Provides shadow snapshots with `/undo` for restoring file changes
Full changelog
This release introduces significant security hardening, attachment system foundations, and enhanced configuration capabilities.
What's New
- Adds HCL configuration format support as an alternative to YAML for agent configurations
- Adds
/pausecommand to toggle the runtime loop at iteration boundaries - Adds
turn_endhook that fires once per turn regardless of how the turn ended - Adds shadow snapshots and
/undocommand for restoring file changes without modifying session transcript - Adds Anthropic Workload Identity Federation support for OIDC-derived authentication
- Adds attachment system foundations with
chat.Documentand per-provider document conversion - Adds JavaScript/WebAssembly browser build with OpenRouter PKCE support
- Adds custom request headers support for the fetch toolset with environment variable expansion
- Adds allow/deny lists for filesystem toolset to sandbox file access
- Adds wildcard and CIDR pattern support in fetch toolset domain filtering
- Adds input-shape repair layer for tool calls to handle common model mistakes
- Adds MCP embedded resource content type support
- Adds
--hook-stopCLI flag for the existing stop event - Adds
--tool-nameflag to override MCP tool identifier - Adds
--mcp-keepaliveflag for MCP server connections
Improvements
- Expands secret detection with additional patterns for OpenAI, Anthropic, Google, Stripe, Notion, GitLab, Vault, and Slack tokens
- Speeds up secret redaction with aho-corasick keyword pre-filter
- Improves markdown rendering performance with single-pass URL scanner optimizations
- Enhances session ID and install UUID forwarding on gateway-bound requests for better tracing
- Pauses animation ticks while terminal is blurred to reduce CPU usage
- Propagates non-interactive mode to child sessions and declines elicitation automatically
Bug Fixes
- Fixes crash on startup when configuration file is empty
- Fixes environment variable race in script shell tool execution
- Fixes data races on session token and message writes
- Fixes lifecycle supervisor state race condition
- Fixes infinite loop on hash-prefixed paragraphs in markdown renderer
- Fixes tab switching and chat scroll functionality while prompts are open
- Fixes compaction kept-tail mapping after prior summaries
- Fixes IPv4-mapped IPv6 SSRF bypass in fetch domain matcher
- Fixes finish_reason stop when tracking usage in OpenAI streams
- Fixes comment-only SSE events that crash openai-go client
Technical Changes
- Replaces mise with go-task as the project task runner
- Splits builtin tools into individual sub-packages for better organization
- Centralizes model-specific behavior in pkg/modelinfo package
- Tightens file and directory permissions for per-user data to 0o700/0o600
- Adds contextual logging throughout codebase for better trace correlation
- Adds 7 new architectural-sync linting cops that caught 10 real bugs
- Hardens OAuth with constant-time state comparison and SSRF protection
- Blocks non-public IPs in API and OpenAPI tools by default
- Updates jose2go to v1.7.0 to address security vulnerabilities
- Bumps various Go dependencies including Anthropic SDK, Docker CLI, and OpenTelemetry packages
What's Changed
- docs: document toon and per-toolset model routing by @dgageot in https://github.com/docker/docker-agent/pull/2587
- Bump direct Go dependencies by @dgageot in https://github.com/docker/docker-agent/pull/2586
- docs: update CHANGELOG.md for v1.54.0 by @docker-read-write[bot] in https://github.com/docker/docker-agent/pull/2588
- Finish secret redaction by @dgageot in https://github.com/docker/docker-agent/pull/2589
- simplify pkg/hooks: drop unused EventSpec abstraction by @dgageot in https://github.com/docker/docker-agent/pull/2591
- lint: add 7 architectural-sync cops (catches 10 real bugs) by @dgageot in https://github.com/docker/docker-agent/pull/2593
- Add turn_end hook by @rumpl in https://github.com/docker/docker-agent/pull/2592
- Bump direct Go dependencies by @dgageot in https://github.com/docker/docker-agent/pull/2597
- update PR review workflow with fork-supporting trigger by @derekmisler in https://github.com/docker/docker-agent/pull/2596
- Use the latest rubocop-go by @dgageot in https://github.com/docker/docker-agent/pull/2594
- Bump direct Go dependencies by @dgageot in https://github.com/docker/docker-agent/pull/2599
- docs: fix outdated content and document missing commands by @dgageot in https://github.com/docker/docker-agent/pull/2600
- Handle case when session started with Docker Desktop proxy available, and the Desktop is stopped by @gtardif in https://github.com/docker/docker-agent/pull/2606
- Add /pause command to toggle the runtime loop by @dgageot in https://github.com/docker/docker-agent/pull/2605
- harden docker agent serve api: warn on non-loopback, fix runtime race, block SSRF by @dgageot in https://github.com/docker/docker-agent/pull/2604
- Support HCL as an alternative agent config format by @dgageot in https://github.com/docker/docker-agent/pull/2598
- fetch: support wildcard and CIDR patterns in domain allow/deny lists by @dgageot in https://github.com/docker/docker-agent/pull/2602
- Add detection rules for more secret formats by @dgageot in https://github.com/docker/docker-agent/pull/2603
- docs: refresh outdated examples, missing env vars, and CLI options by @dgageot in https://github.com/docker/docker-agent/pull/2610
- feat(hooks): expose
stophook via CLI by @tdabasinskas in https://github.com/docker/docker-agent/pull/2627 - fix(session): close data races on session token and message writes by @tdabasinskas in https://github.com/docker/docker-agent/pull/2622
- fix(lifecycle): order state transition before waking restart waiters by @tdabasinskas in https://github.com/docker/docker-agent/pull/2621
- fix(security): bump jose2go to v1.7.0 (GO-2025-4123, GO-2023-2409) by @tdabasinskas in https://github.com/docker/docker-agent/pull/2619
- fix(runtime): add OpenTelemetry tracer to runtime initialization by @tdabasinskas in https://github.com/docker/docker-agent/pull/2505
- fix(tools): prevent environment variable race in script shell tool by @tdabasinskas in https://github.com/docker/docker-agent/pull/2616
- feat(mcp): add support for embedded resource content type by @tdabasinskas in https://github.com/docker/docker-agent/pull/2612
- docs: fix outdated and incorrect references by @dgageot in https://github.com/docker/docker-agent/pull/2618
- deps: bump direct Go dependencies by @dgageot in https://github.com/docker/docker-agent/pull/2609
- feat(filesystem): add allow_list / deny_list to sandbox the toolset by @dgageot in https://github.com/docker/docker-agent/pull/2601
- feat(gateway): add
X-Cagent-Session-Idheader to models gateway requests by @tdabasinskas in https://github.com/docker/docker-agent/pull/2631 - feat(mcp-server): add
--tool-nameflag to override the MCP tool identifier by @tdabasinskas in https://github.com/docker/docker-agent/pull/2625 - feat(runtime): propagate non-interactive mode to child sessions and decline elicitation by @tdabasinskas in https://github.com/docker/docker-agent/pull/2623
- feat(otel): configure W3C trace propagation for distributed tracing by @tdabasinskas in https://github.com/docker/docker-agent/pull/2506
- docs: fill in missing CLI flags and fix outdated content by @dgageot in https://github.com/docker/docker-agent/pull/2633
- bump direct Go dependencies by @dgageot in https://github.com/docker/docker-agent/pull/2637
- feat(mcp-server): add keep-alive support by @tdabasinskas in https://github.com/docker/docker-agent/pull/2624
- Fix perf regression urls by @dgageot in https://github.com/docker/docker-agent/pull/2638
- docs: add HCL configuration documentation by @rumpl in https://github.com/docker/docker-agent/pull/2643
- docs: fix broken links and outdated/incorrect snippets by @dgageot in https://github.com/docker/docker-agent/pull/2650
- Update pr-review.yml by @derekmisler in https://github.com/docker/docker-agent/pull/2648
- avoid duplicate compaction system prompt by @rumpl in https://github.com/docker/docker-agent/pull/2647
- HCL: add a file() function by @rumpl in https://github.com/docker/docker-agent/pull/2642
- docs(agents): expand AGENTS.md with guidelines and standards by @aheritier in https://github.com/docker/docker-agent/pull/2644
- docs(github): update issue templates and triage workflow by @aheritier in https://github.com/docker/docker-agent/pull/2645
- Fix finish_reason stop when tracking usage by @rumpl in https://github.com/docker/docker-agent/pull/2641
- feat(tools): generic input-shape repair for tool calls (validate-then-repair) by @trungutt in https://github.com/docker/docker-agent/pull/2635
- bump direct go dependencies by @dgageot in https://github.com/docker/docker-agent/pull/2655
- fix: keep tab switching and chat scroll working while a prompt is open by @dgageot in https://github.com/docker/docker-agent/pull/2654
- Add JS placeholders support in instructions by @dgageot in https://github.com/docker/docker-agent/pull/2652
- fetch: support custom request headers by @dgageot in https://github.com/docker/docker-agent/pull/2651
- feat(httpclient): forward cagent install UUID on gateway-bound requests by @dgageot in https://github.com/docker/docker-agent/pull/2653
- split builtin tools into individual sub-packages by @dgageot in https://github.com/docker/docker-agent/pull/2661
- chore: replace mise with go-task by @dgageot in https://github.com/docker/docker-agent/pull/2659
- docs: refresh examples README by @dgageot in https://github.com/docker/docker-agent/pull/2665
- tui: pause animation ticks while the terminal is blurred by @dgageot in https://github.com/docker/docker-agent/pull/2668
- refactor(logging): pass context to all slog calls for correlation by @tdabasinskas in https://github.com/docker/docker-agent/pull/2669
- redact_secrets: catch more token shapes and bare unquoted values by @dgageot in https://github.com/docker/docker-agent/pull/2664
- fix(httpclient): drop comment-only SSE events that crash openai-go by @dgageot in https://github.com/docker/docker-agent/pull/2662
- docs: refresh outdated model examples and add Chat Server page by @dgageot in https://github.com/docker/docker-agent/pull/2656
- perf(secretsscan): speed up secret redaction with an aho-corasick pre-filter by @dgageot in https://github.com/docker/docker-agent/pull/2667
- fix(shell): do not enforce "assisted-by" by default. by @maxcleme in https://github.com/docker/docker-agent/pull/2671
- fix: stop matching category in command palette filter by @dgageot in https://github.com/docker/docker-agent/pull/2673
- add js/wasm browser build with OpenRouter PKCE, agentic loop, and demo page by @dgageot in https://github.com/docker/docker-agent/pull/2672
- lint: add SlogContextual cop and fix remaining bare slog calls by @dgageot in https://github.com/docker/docker-agent/pull/2674
- fix(markdown): avoid infinite loop on hash-prefixed paragraphs; simplify renderer by @dgageot in https://github.com/docker/docker-agent/pull/2675
- chore(deps): bump github.com/anthropics/anthropic-sdk-go from v1.40.0 to v1.41.0 by @dgageot in https://github.com/docker/docker-agent/pull/2676
- Lint by @rumpl in https://github.com/docker/docker-agent/pull/2678
- update PR reviewer by @derekmisler in https://github.com/docker/docker-agent/pull/2680
- chore(deps): bump python-multipart from 0.0.22 to 0.0.27 in /examples/dhi/dhi_mcp_server in the pip group across 1 directory by @dependabot[bot] in https://github.com/docker/docker-agent/pull/2679
- fix compaction kept-tail mapping after prior summaries by @rumpl in https://github.com/docker/docker-agent/pull/2646
- use slices.Backward in CompactionInput by @dgageot in https://github.com/docker/docker-agent/pull/2682
- refactor: centralize model-specific behavior in pkg/modelinfo by @dgageot in https://github.com/docker/docker-agent/pull/2666
- bump github.com/docker/cli from v29.4.2 to v29.4.3 by @dgageot in https://github.com/docker/docker-agent/pull/2681
- chore: tighten file/directory permissions for per-user data by @dgageot in https://github.com/docker/docker-agent/pull/2663
- feat: Anthropic Workload Identity Federation by @dgageot in https://github.com/docker/docker-agent/pull/2658
- security: SSRF / TOCTOU / OAuth state hardening by @dgageot in https://github.com/docker/docker-agent/pull/2670
- feat: add shadow snapshots and undo by @rumpl in https://github.com/docker/docker-agent/pull/2677
- feat: Phase 1 attachment system – chat.Document, pkg/attachment, per-provider convertDocument by @simonferquel-clanker in https://github.com/docker/docker-agent/pull/2639
- feat: attach-time processing – transcode/resize images and resolve URLs at message add time by @simonferquel-clanker in https://github.com/docker/docker-agent/pull/2685
Full Changelog: https://github.com/docker/docker-agent/compare/v1.54.0...v1.55.0
- Domain filtering (allowed_domains/blocked_domains) for fetch toolset network access control
- Configurable toolset lifecycle management with supervision profiles and /toolsets command
- redact_secrets agent flag for scrubbing credential patterns from tool calls and messages
Full changelog
This release introduces clickable terminal links, domain filtering for fetch operations, and enhanced toolset lifecycle management with configurable supervision profiles.
What's New
- Makes markdown links and URLs clickable in the terminal using OSC 8 hyperlink escape sequences
- Adds
allowed_domainsandblocked_domainsfilters to the fetch toolset for restricting network access - Adds
/toolsetscommand and supervisor-aware status surface in the TUI - Introduces
redact_secretsagent flag that scrubs credential patterns from tool calls and LLM messages - Adds per-toolset lifecycle configuration with profile presets for MCP and LSP servers
- Introduces
/toolset-restartslash command for hot-reload functionality
Improvements
- Defers OAuth elicitation outside interactive context to prevent premature prompts
- Reduces macOS keychain prompts by storing all MCP OAuth tokens in a single keychain item
- Makes every dialog close on ctrl+c, with twice exiting the application
- Filters LSP tools by server-advertised capabilities
- Detects secrets embedded inside larger tokens, not just word-bounded patterns
Bug Fixes
- Fixes MCP catalog reference in mcp-definitions.yaml from
docker:githubtodocker:github-official - Fixes Slack token responses and surfaces server errors in MCP OAuth handling
- Fixes config package names for v6 and v7 versions
- Fixes strip transform reading wrong model in alloy/per-tool override mode
- Suppresses spurious 'is now available' MCP toolset notice after OAuth completion
Technical Changes
- Separates toolset notices from warnings in agent handling
- Simplifies history package by replacing manual parsing with standard library functions
- Refactors skills package into focused files without changing behavior
- Extracts image-stripping into registered MessageTransform mechanism
- Unifies MCP/LSP toolset supervision with typed errors and state-machine architecture
- Isolates example loading in temporary directories for tests
What's Changed
- docs: update CHANGELOG.md for v1.53.0 by @docker-read-write[bot] in https://github.com/docker/docker-agent/pull/2565
- Make the slack remote MCP server work by @dgageot in https://github.com/docker/docker-agent/pull/2512
- Fix misleading UpdateMessage doc comment by @rumpl in https://github.com/docker/docker-agent/pull/2570
- docs: bring hooks reference up to date with new events by @dgageot in https://github.com/docker/docker-agent/pull/2569
- lint: add config-versioning robustness cops + fix v6/v7 package names by @dgageot in https://github.com/docker/docker-agent/pull/2568
- Use the slices package to simplify slice operations by @dgageot in https://github.com/docker/docker-agent/pull/2566
- test: stop example tests from writing SQLite files into examples/ by @dgageot in https://github.com/docker/docker-agent/pull/2564
- Simplify the history package by @dgageot in https://github.com/docker/docker-agent/pull/2567
- runtime: extract image-stripping into a registered MessageTransform by @dgageot in https://github.com/docker/docker-agent/pull/2573
- refactor(skills): split package into focused files by @dgageot in https://github.com/docker/docker-agent/pull/2571
- feat(fetch): add allowed_domains and blocked_domains filters by @dgageot in https://github.com/docker/docker-agent/pull/2572
- defer oauth when elicitation bridge isn't wired up yet by @dgageot in https://github.com/docker/docker-agent/pull/2574
- feat(tui): make markdown links and URLs clickable in the terminal by @silvin-lubecki in https://github.com/docker/docker-agent/pull/2498
- stop hard-coding "root" as the default agent name by @dgageot in https://github.com/docker/docker-agent/pull/2576
- fix(examples): correct MCP catalog ref in mcp-definitions.yaml by @aheritier in https://github.com/docker/docker-agent/pull/2465
- refactor(sessiontitle): simplify Generator without changing behavior by @dgageot in https://github.com/docker/docker-agent/pull/2575
- Add redact_secrets builtin hook + before_llm_call transform by @dgageot in https://github.com/docker/docker-agent/pull/2577
- Suppress spurious 'is now available' MCP toolset notice by @dgageot in https://github.com/docker/docker-agent/pull/2578
- reduce macOS keychain prompts for OAuth MCP servers by @dgageot in https://github.com/docker/docker-agent/pull/2580
- docs: document redact_secrets agent flag by @dgageot in https://github.com/docker/docker-agent/pull/2581
- detect secrets embedded inside larger tokens by @dgageot in https://github.com/docker/docker-agent/pull/2582
- feat(lifecycle): unify MCP/LSP toolset supervision with configurable profiles + /toolsets UX by @dgageot in https://github.com/docker/docker-agent/pull/2579
- test(mcp): test buildRemoteDescription directly to skip keychain by @dgageot in https://github.com/docker/docker-agent/pull/2584
- make every dialog close on ctrl+c, twice exits by @dgageot in https://github.com/docker/docker-agent/pull/2583
- Disable test that prompts for a password by @dgageot in https://github.com/docker/docker-agent/pull/2585
Full Changelog: https://github.com/docker/docker-agent/compare/v1.53.0...v1.54.0
- OpenAI-compatible API server (docker agent serve chat)
- Configurable agent response cache
- Fork skill model override capability
Full changelog
This release adds OpenAI-compatible API server functionality, skill model overrides, and response caching, along with extensive refactoring to improve code organization and testability.
What's New
- Adds
docker agent serve chatcommand that exposes agents through an OpenAI-compatible HTTP server - Adds configurable response cache for agents to skip model calls for repeated questions
- Adds skill model override capability allowing fork skills to specify different models via
model:field in SKILL.md frontmatter - Adds g/G keybindings to scroll messages view (jump to top/bottom)
- Adds 10 new builtin hook events including lifecycle events, compaction events, and observability events
- Adds
type: modelhook handler for LLM-as-judge functionality
Improvements
- Switches Anthropic Opus 4.6/4.7 to adaptive thinking when token-based budgets are configured
- Improves file path handling for sub-agent sessions by propagating user-attached files and encouraging absolute paths
- Improves error messages for HTTP 400 failures with structured provider error details
Bug Fixes
- Fixes Copilot integration by adding required
Copilot-Integration-Idheader for github-copilot provider - Fixes crash when opening sessions with empty configuration files
- Fixes session_start hook output appearing as user messages in transcript
- Fixes TUI bottom slack clearing after thinking text fades out
- Fixes race conditions in skill model overrides and response cache handling
Technical Changes
- Extracts hooks builtins from runtime into separate package
- Extracts tool execution, compaction, and delegation logic into focused sub-packages
- Consolidates hook orchestration and simplifies executor caching
- Improves testability across runtime, session, provider, and TUI packages
- Replaces PersistentRuntime decorator with EventObserver pattern
- Updates multiple dependencies including Anthropic SDK, AWS Smithy, and various UI libraries
What's Changed
- docs: update CHANGELOG.md for v1.52.0 by @docker-read-write[bot] in https://github.com/docker/docker-agent/pull/2520
- refactor(hooks): extract builtins from pkg/runtime into pkg/hooks/builtins by @dgageot in https://github.com/docker/docker-agent/pull/2521
- refactor(hooks): simplify package while preserving features by @dgageot in https://github.com/docker/docker-agent/pull/2522
- refactor(runtime): consolidate hook orchestration and cache executors by @dgageot in https://github.com/docker/docker-agent/pull/2523
- Skills: allow fork skills to override the model by @dgageot in https://github.com/docker/docker-agent/pull/2525
- refactor(skills): move fork-skill validation into SkillsToolset by @dgageot in https://github.com/docker/docker-agent/pull/2524
- fix(skills): unbreak main after fork-skill refactor merge by @dgageot in https://github.com/docker/docker-agent/pull/2527
- fix(openai): send Copilot-Integration-Id header for github-copilot by @dgageot in https://github.com/docker/docker-agent/pull/2475
- refactor(hooks/builtins): one file per builtin + simplify registration by @dgageot in https://github.com/docker/docker-agent/pull/2526
- feat(tui): add g/G keybindings to scroll messages view by @dgageot in https://github.com/docker/docker-agent/pull/2528
- refactor(hooks/builtins): inline GetEnvironmentInfo + simplify package by @dgageot in https://github.com/docker/docker-agent/pull/2529
- refactor(hooks/builtins): inline & simplify add_prompt_files by @dgageot in https://github.com/docker/docker-agent/pull/2530
- refactor(hooks): simplify caching, dispatch flow, and notification helpers by @dgageot in https://github.com/docker/docker-agent/pull/2531
- Inherit user-attached files in sub-agent sessions by @dgageot in https://github.com/docker/docker-agent/pull/2532
- fix(runtime): don't persist session_start hook output as a session message by @dgageot in https://github.com/docker/docker-agent/pull/2533
- refactor(hooks): drop runtime shadow types and tighten the executor by @dgageot in https://github.com/docker/docker-agent/pull/2534
- feat: add
docker agent serve chatcommand (OpenAI-compatible API) by @dgageot in https://github.com/docker/docker-agent/pull/2510 - feat(hooks): add 6 builtin hooks + widen post_tool_use / before_llm_call contract by @dgageot in https://github.com/docker/docker-agent/pull/2538
- refactor(runtime): drop unused receiver from handleStream by @dgageot in https://github.com/docker/docker-agent/pull/2539
- feat(hooks): add three observability events around runtime transitions by @dgageot in https://github.com/docker/docker-agent/pull/2542
- fix(tui): clear bottom slack after thinking text fades out by @dgageot in https://github.com/docker/docker-agent/pull/2543
- refactor(tui): simplify components, drop dead code, consolidate helpers by @dgageot in https://github.com/docker/docker-agent/pull/2544
- refactor(provider): improve testability and split provider.go by @dgageot in https://github.com/docker/docker-agent/pull/2547
- speed up PR image builds by @dgageot in https://github.com/docker/docker-agent/pull/2553
- refactor(tui): reduce duplication across picker dialogs by @dgageot in https://github.com/docker/docker-agent/pull/2556
- Add context to todo storage methods by @rumpl in https://github.com/docker/docker-agent/pull/2560
- refactor(runtime): improve testability and simplify package structure by @dgageot in https://github.com/docker/docker-agent/pull/2554
- docs: document all builtin hooks in schema and hooks page by @dgageot in https://github.com/docker/docker-agent/pull/2555
- tui: improve testability and simplify code by @dgageot in https://github.com/docker/docker-agent/pull/2551
- refactor(session): improve testability and simplify the session package by @dgageot in https://github.com/docker/docker-agent/pull/2550
- feat(modelerrors): surface structured provider error details on non-2xx responses by @dgageot in https://github.com/docker/docker-agent/pull/2549
- feat(hooks): lifecycle events, per-hook options, and event-spec refactor by @dgageot in https://github.com/docker/docker-agent/pull/2540
- refactor(runtime): extract sub-session orchestration by @dgageot in https://github.com/docker/docker-agent/pull/2535
- refactor(runtime): extract model-fallback chain into fallbackExecutor by @dgageot in https://github.com/docker/docker-agent/pull/2541
- refactor(runtime): extract tool execution into pkg/runtime/toolexec by @dgageot in https://github.com/docker/docker-agent/pull/2545
- log history init failure via slog instead of stderr by @dgageot in https://github.com/docker/docker-agent/pull/2561
- feat(hooks): add before_compaction and after_compaction events by @dgageot in https://github.com/docker/docker-agent/pull/2537
- Bump direct Go dependencies by @dgageot in https://github.com/docker/docker-agent/pull/2562
- feat(agent): add a configurable response cache by @dgageot in https://github.com/docker/docker-agent/pull/2536
- refactor(runtime): replace PersistentRuntime decorator with EventObserver by @dgageot in https://github.com/docker/docker-agent/pull/2552
- feat(hooks): add 4 new hook events to match Claude Code / OpenCode / pi by @dgageot in https://github.com/docker/docker-agent/pull/2548
- anthropic: switch opus 4.6/4.7 token thinking budgets to adaptive by @dgageot in https://github.com/docker/docker-agent/pull/2563
- feat(hooks): add 'type: model' hook and integrate pre_tool_use into approval flow by @dgageot in https://github.com/docker/docker-agent/pull/2546
Full Changelog: https://github.com/docker/docker-agent/compare/v1.52.0...v1.53.0
- File picker hotkeys Alt+H and Alt+I to toggle hidden and ignored file visibility
- Extensible hooks system with 5 new lifecycle events and 3 builtin hooks
- Scrollable user prompt elicitation dialog to prevent content overflow
Full changelog
This release adds file picker hotkeys, improves message handling consistency, and introduces an extensible hooks system with new lifecycle events.
What's New
- Adds Alt+H and Alt+I hotkeys in file picker to toggle hidden and ignored file visibility
- Adds extensible hooks system with 5 new lifecycle events and 3 builtin hooks
Improvements
- Makes user prompt elicitation dialog scrollable to prevent content overflow in terminal
Bug Fixes
- Fixes message trimming behavior to be consistent across all model providers
- Fixes steer message handling by appending newlines between queued messages to prevent word fragments from being concatenated
Technical Changes
- Refactors hooks architecture for better extensibility with pluggable registry system
- Centralizes whitespace-only message filtering in session.GetMessages
What's Changed
- docs: update CHANGELOG.md for v1.51.0 by @docker-read-write[bot] in https://github.com/docker/docker-agent/pull/2514
- fix(tui): make user_prompt elicitation dialog scrollable by @dgageot in https://github.com/docker/docker-agent/pull/2509
- hotkeys to toggle filepicker hidden/ignored files by @joshbarrington in https://github.com/docker/docker-agent/pull/2501
- runtime: append newline to non-last steer messages on multi-drain by @simonferquel-clanker in https://github.com/docker/docker-agent/pull/2518
- fix: normalize message trimming behavior across all model providers by @simonferquel-clanker in https://github.com/docker/docker-agent/pull/2516
- feat(hooks): refactor for extensibility, add 5 events and 3 builtins by @dgageot in https://github.com/docker/docker-agent/pull/2519
Full Changelog: https://github.com/docker/docker-agent/compare/v1.51.0...v1.52.0
- Adds pricing and capabilities information to /model picker interface with comparison table
- Routes Anthropic models on Vertex AI through native endpoint for improved compatibility
Full changelog
This release improves Anthropic model support on Vertex AI, enhances the model picker interface, and includes several bug fixes.
What's New
- Adds pricing and capabilities information to the /model picker interface with a detailed comparison table
Improvements
- Routes Anthropic models on Vertex AI through the native endpoint instead of OpenAI-compatible endpoint to fix compatibility issues
Bug Fixes
- Fixes race condition in session cleanup that could cause spurious "session busy" errors
- Fixes OTLP endpoint URL handling to properly support http/https schemes
Technical Changes
- Enables noctx linter and adds context threading through HTTP, SQL, exec and net APIs
What's Changed
- docs: update CHANGELOG.md for v1.50.0 by @docker-read-write[bot] in https://github.com/docker/docker-agent/pull/2499
- ci: bump golangci-lint from v2.9 to v2.11 by @dgageot in https://github.com/docker/docker-agent/pull/2489
- Route Anthropic models on Vertex AI through the native endpoint by @dgageot in https://github.com/docker/docker-agent/pull/2476
- fix(otel): support http/https scheme in OTLP endpoint URL by @tdabasinskas in https://github.com/docker/docker-agent/pull/2504
- fix(session): prevent race condition in session cleanup by @tdabasinskas in https://github.com/docker/docker-agent/pull/2503
- feat(tui): show pricing & capabilities in /model picker by @dgageot in https://github.com/docker/docker-agent/pull/2511
- lint: enable noctx and deduplicate touched code by @dgageot in https://github.com/docker/docker-agent/pull/2508
Full Changelog: https://github.com/docker/docker-agent/compare/v1.50.0...v1.51.0
- Custom OAuth callback redirect URLs for remote MCP toolsets
- Custom TUI component for user_prompt tool calls
Full changelog
This release fixes several runtime issues with message steering and sandbox argument handling, along with TUI improvements for user prompts and speech commands.
What's New
- Adds support for custom OAuth callback redirect URLs for remote MCP toolsets, allowing public-facing proxies for authentication
Improvements
- Adds custom component for user_prompt tool calls in TUI that shows only status and name without exposing internal details
Bug Fixes
- Fixes sandbox mode incorrectly interpreting agent file path as first chat message due to duplicate argument handling
- Fixes runtime race conditions where steer messages could be silently dropped during idle windows or first turns
- Fixes /speak slash command not dispatching immediately in TUI
Technical Changes
- Updates Go to version 1.26.2
- Refactors runtime steer message injection to remove system-reminder envelope
What's Changed
- docs: update CHANGELOG.md for v1.49.2 by @docker-read-write[bot] in https://github.com/docker/docker-agent/pull/2486
- fix(sandbox): don't duplicate agent file and --config-dir args by @dgageot in https://github.com/docker/docker-agent/pull/2487
- fix(runtime): drain steerQueue at top of RunStream loop to close idle-window race by @simonferquel-clanker in https://github.com/docker/docker-agent/pull/2492
- feat(mcp): support custom OAuth callbackRedirectURL for remote toolsets by @dgageot in https://github.com/docker/docker-agent/pull/2494
- chore: bump Go to 1.26.2 by @dgageot in https://github.com/docker/docker-agent/pull/2488
- tui: add custom component for user_prompt tool calls by @dgageot in https://github.com/docker/docker-agent/pull/2497
- fix(tui): make /speak slash command dispatch immediately by @dgageot in https://github.com/docker/docker-agent/pull/2496
Full Changelog: https://github.com/docker/docker-agent/compare/v1.49.2...v1.50.0
Fixes blocking of --pull-interval flag when using URL gordon references.
Full changelog
This release fixes an issue with the --pull-interval flag when using URL gordon references.
Bug Fixes
- Fixes blocking of --pull-interval flag when using URL gordon reference
Technical Changes
- Updates CHANGELOG.md for v1.49.1
What's Changed
- docs: update CHANGELOG.md for v1.49.1 by @docker-read-write[bot] in https://github.com/docker/docker-agent/pull/2484
- Do not block --pull-interval flag when using URL gordon ref by @gtardif in https://github.com/docker/docker-agent/pull/2485
Full Changelog: https://github.com/docker/docker-agent/compare/v1.49.1...v1.49.2
- Accepts 'command' as alias for 'cmd' in shell tool calls
- Improved error messaging for empty shell commands
Full changelog
This release improves the shell tool's command handling and fixes documentation inconsistencies.
Improvements
- Accepts "command" as an alias for "cmd" in shell tool calls to improve compatibility with different AI models
- Improves error messaging when shell commands are empty or blank
Bug Fixes
- Fixes documentation and code divergences reported in issue #2464 with 36 targeted corrections
- Prevents blank "cmd" parameters from interfering with "command" alias functionality
Technical Changes
- Updates configuration schema version to 8 in documentation
- Updates CHANGELOG.md for v1.49.0 release
What's Changed
- docs: update CHANGELOG.md for v1.49.0 by @docker-read-write[bot] in https://github.com/docker/docker-agent/pull/2483
- shell: accept
commandas alias forcmdand improve empty-arg error by @trungutt in https://github.com/docker/docker-agent/pull/2481 - docs: fix doc-code divergences reported in #2464 by @dgageot in https://github.com/docker/docker-agent/pull/2479
Full Changelog: https://github.com/docker/docker-agent/compare/v1.49.0...v1.49.1
- Path traversal vulnerability in artifact store, skills loader, hooks, shell, and agent warnings
- Support for filtering skills by name in agent YAML configuration
- Improved DMR support with better context size handling and structured configuration
Full changelog
This release improves DMR support, adds skill filtering capabilities, and includes several bug fixes for OpenTelemetry and security hardening.
What's New
- Adds support for filtering skills by name in agent YAML configuration
- Improves DMR support with better context size handling and structured configuration
Bug Fixes
- Fixes OpenTelemetry service resource schema alignment
- Fixes path traversal vulnerability and other security issues in artifact store, skills loader, hooks, shell and agent warnings
- Fixes OpenTelemetry import ordering in tests
Technical Changes
- Encodes agent source URL when using it as agent name and key for proper conversation handling in
serve api - Moves localhost helper comment in OpenTelemetry code
What's Changed
- docs: update CHANGELOG.md for v1.48.0 by @docker-read-write[bot] in https://github.com/docker/docker-agent/pull/2470
- Improve DMR support by @krissetto in https://github.com/docker/docker-agent/pull/2351
- fix(otel): align service resource schema by @pandego in https://github.com/docker/docker-agent/pull/2442
- bump github.com/docker/cli from v29.4.0+incompatible to v29.4.1+incompatible by @dgageot in https://github.com/docker/docker-agent/pull/2472
- Support filtering skills by name in agent YAML (#2404) by @dgageot in https://github.com/docker/docker-agent/pull/2474
- Encode agent source URL when using it as agent name and key, so that it can be used properly in conversations when using
serve apiby @gtardif in https://github.com/docker/docker-agent/pull/2473 - fix: harden artifact store, skills loader, hooks, shell and agent warnings by @dgageot in https://github.com/docker/docker-agent/pull/2480
Full Changelog: https://github.com/docker/docker-agent/compare/v1.48.0...v1.49.0
- Adds optional `working_dir` field to MCP and LSP toolset configurations
- Improved retry behavior for MCP toolsets after tool calls
- Better error handling for SQLITE_CANTOPEN errors
Full changelog
This release adds working directory configuration for MCP and LSP toolsets and improves toolset reliability with better retry handling.
What's New
- Adds optional
working_dirfield to MCP and LSP toolset configurations to launch processes from a specific directory
Bug Fixes
- Fixes retry behavior for MCP toolsets after tool calls within the same turn
- Stops retrying SQLITE_CANTOPEN (14) errors that cannot be resolved
- Fixes filepath handling to satisfy gocritic filepathJoin lint rule
- Returns explicit error when ref-based MCP resolves to remote server with working_dir
Technical Changes
- Documents working_dir field for MCP and LSP toolsets in configuration
What's Changed
- docs: update CHANGELOG.md for v1.47.0 by @docker-read-write[bot] in https://github.com/docker/docker-agent/pull/2468
- feat: add optional working_dir to MCP and LSP toolset configs by @simonferquel-clanker in https://github.com/docker/docker-agent/pull/2460
- Don't retry SQLITE_CANTOPEN (14) errors by @dgageot in https://github.com/docker/docker-agent/pull/2466
- fix: retry LSP/MCP toolsets after tool calls, covering env-wrapped commands (fixes #2457) by @simonferquel-clanker in https://github.com/docker/docker-agent/pull/2458
Full Changelog: https://github.com/docker/docker-agent/compare/v1.47.0...v1.48.0
Fixes shell command hangs and title generation failures with reasoning models.
Full changelog
This release fixes several issues with AI model interactions, including title generation failures with reasoning models and shell command hangs.
Bug Fixes
- Fixes title generation failures with OpenAI reasoning models by using low reasoning effort instead of omitting it
- Fixes shell command hangs when a tool command backgrounds a child process
- Repairs malformed JSON in edit_file tool call arguments that was causing parsing failures
- Moves reasoning token budget floor to OpenAI provider for better token management
Improvements
- Increases title generation token budget for reasoning models to ensure adequate output space
- Adds thinking_display provider option for Anthropic models to control visibility of thinking blocks
Technical Changes
- Adds test assertion for non-empty title in end-to-end title generation tests
What's Changed
- docs: update CHANGELOG.md for v1.46.0 by @docker-read-write[bot] in https://github.com/docker/docker-agent/pull/2455
- fix: title generation fails with OpenAI reasoning models by @trungutt in https://github.com/docker/docker-agent/pull/2412
- fix: repair malformed JSON in edit_file tool call arguments by @trungutt in https://github.com/docker/docker-agent/pull/2452
- Add thinking_display provider_opt for Anthropic models by @dgageot in https://github.com/docker/docker-agent/pull/2451
- shell: fix hang when a tool command backgrounds a child process by @dgageot in https://github.com/docker/docker-agent/pull/2462
- bump direct Go dependencies by @dgageot in https://github.com/docker/docker-agent/pull/2463
Full Changelog: https://github.com/docker/docker-agent/compare/v1.46.0...v1.47.0
- Symlink-based path traversal vulnerability in ACP filesystem toolset
- OAuth callback CSRF vulnerability
- OAuth credential configuration for remote MCP servers
- Evaluation --repeat flag for running evaluations multiple times
- Support for xhigh adaptive thinking effort level (Opus 4.7+)
Full changelog
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
--repeatflag to eval command for running evaluations multiple times - Adds support for
xhigheffort level in Anthropic adaptive thinking (Claude Opus 4.7+) - Adds
task_budgetconfiguration 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
--attachflag 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 https://github.com/docker/docker-agent/pull/2427
- fix: reject OAuth callback when expected state has not been set (CSRF) by @dgageot in https://github.com/docker/docker-agent/pull/2434
- fix: prevent symlink-based path traversal in ACP filesystem toolset by @dgageot in https://github.com/docker/docker-agent/pull/2433
- fix: guard against empty messages slice in SendUserMessage path by @dgageot in https://github.com/docker/docker-agent/pull/2432
- fix: prevent panic in extractSystemBlocks on empty system message wit… by @dgageot in https://github.com/docker/docker-agent/pull/2431
- fix: hold mutex for instructions read in MCP Toolset.Instructions() by @dgageot in https://github.com/docker/docker-agent/pull/2430
- fix: add mutex to protect lastSelectedID in rule-based router by @dgageot in https://github.com/docker/docker-agent/pull/2429
- fix: add mutex lock to AddMessageUsageRecord to prevent data race by @dgageot in https://github.com/docker/docker-agent/pull/2428
- Add --repeat flag to eval command for running evaluations multiple times by @dgageot in https://github.com/docker/docker-agent/pull/2440
- fix: replace time.Sleep with context-aware select in MCP tryRestart by @dgageot in https://github.com/docker/docker-agent/pull/2436
- fix: preserve assistant text when tool calls present in Responses API conversion by @dgageot in https://github.com/docker/docker-agent/pull/2438
- fix: detect newer session database and show clear upgrade message by @dgageot in https://github.com/docker/docker-agent/pull/2441
- Support explicit OAuth credentials for remote MCP servers by @dgageot in https://github.com/docker/docker-agent/pull/2394
- fix: cache parsed robots.txt per host instead of boolean result by @dgageot in https://github.com/docker/docker-agent/pull/2437
- bump direct Go dependencies by @dgageot in https://github.com/docker/docker-agent/pull/2444
- Render markdown in user_prompt dialog messages by @dgageot in https://github.com/docker/docker-agent/pull/2446
- Add a pokemon example by @dgageot in https://github.com/docker/docker-agent/pull/2445
- Add an advanced coder example by @dgageot in https://github.com/docker/docker-agent/pull/2447
- fix(mcp): reuse discovered auth server for token refresh by @pandego in https://github.com/docker/docker-agent/pull/2448
- Fix --attach flag by @rumpl in https://github.com/docker/docker-agent/pull/2449
- Support xhigh effort for Anthropic adaptive thinking (Opus 4.7+) by @dgageot in https://github.com/docker/docker-agent/pull/2450
- feat(anthropic): add task_budget for Claude Opus 4.7 by @dgageot in https://github.com/docker/docker-agent/pull/2453
- chore: update cagent-action to v1.4.1 by @derekmisler in https://github.com/docker/docker-agent/pull/2454
Full Changelog: https://github.com/docker/docker-agent/compare/v1.45.0...v1.46.0
- MCP toolset creation now proceeds even when the command binary is unavailable at startup
- Circular navigation wrapping in completion component for cycling through options
Full changelog
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 https://github.com/docker/docker-agent/pull/2403
- add circular navigation wrapping to completion component by @maxcleme in https://github.com/docker/docker-agent/pull/2407
- fix: evaluate JS template expressions independently on failure by @dgageot in https://github.com/docker/docker-agent/pull/2400
- fix: retry stdio MCP toolset when binary is unavailable at startup by @simon-agent-go-expert in https://github.com/docker/docker-agent/pull/2413
- Fix skills loading by @dgageot in https://github.com/docker/docker-agent/pull/2414
Full Changelog: https://github.com/docker/docker-agent/compare/v1.44.0...v1.45.0
- OAuth token security vulnerabilities and infinite recursion fixes
- Mid-turn message steering with /steer and /followup endpoints
- OAuth token storage in OS keychain with silent refresh
- Session delete, fork, and click-to-select agent features
- Non-interactive mode with auto-stop for max iterations
- Mouse drag-to-move support for repositioning TUI dialogs
- Custom providers in RAG embedding and reranking models
Full changelog
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 https://github.com/docker/docker-agent/pull/2317
- fix: use agent accent color for working spinners in sidebar by @jiahuipaung in https://github.com/docker/docker-agent/pull/2315
- Exempt background-agent polling from loop-termination detection by @krissetto in https://github.com/docker/docker-agent/pull/2319
- fix: pass Models map to RAG ManagersBuildConfig for model alias resolution by @dgageot in https://github.com/docker/docker-agent/pull/2324
- fix: avoid triggering toolset startup from emitToolsChanged callback by @dgageot in https://github.com/docker/docker-agent/pull/2323
- fix: resolve duplicate RAG tool names and nil pointer panic in file watcher by @dgageot in https://github.com/docker/docker-agent/pull/2322
- rag/treesitter: add nocgo build support by @shaj13 in https://github.com/docker/docker-agent/pull/2329
- Bump go dependencies by @dgageot in https://github.com/docker/docker-agent/pull/2330
- session: add WithID option for custom session IDs by @shaj13 in https://github.com/docker/docker-agent/pull/2331
- feat(runtime): add auto-stop for max iterations in non-interactive mode by @tdabasinskas in https://github.com/docker/docker-agent/pull/2208
- Fix nil pointer dereference in BM25Strategy.watchLoop during session teardown by @dgageot in https://github.com/docker/docker-agent/pull/2334
- Fix scrollbar rendering in web terminals by @dgageot in https://github.com/docker/docker-agent/pull/2340
- Improve mise build output to show go build command and resulting binary by @dgageot in https://github.com/docker/docker-agent/pull/2338
- fix: extract reasoning_content from DMR streaming responses by @dgageot in https://github.com/docker/docker-agent/pull/2335
- feat: add mouse drag-to-move support for TUI dialogs by @dgageot in https://github.com/docker/docker-agent/pull/2339
- Evolve providers to support any provider type with shared model defaults by @dgageot in https://github.com/docker/docker-agent/pull/2343
- feat: support custom providers in RAG embedding and reranking models by @dgageot in https://github.com/docker/docker-agent/pull/2344
- Underline URLs on mouse hover by @dgageot in https://github.com/docker/docker-agent/pull/2316
- Nicer message by @rumpl in https://github.com/docker/docker-agent/pull/2345
New Contributors
- @jiahuipaung made their first contribution in https://github.com/docker/docker-agent/pull/2315
- @shaj13 made their first contribution in https://github.com/docker/docker-agent/pull/2329
Full Changelog: https://github.com/docker/docker-agent/compare/v1.42.0...v1.43.0
- URL click detection for mouse-enabled terminals
- Structured evaluation JSON output with results, run configuration, summary, and judge reasons
Full changelog
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 https://github.com/docker/docker-agent/pull/2307
- eval: include structured results, run config, and summary in JSON output by @hamza-jeddad in https://github.com/docker/docker-agent/pull/2309
- fix: correct Windows OS detection typo in session environment by @trungutt in https://github.com/docker/docker-agent/pull/2312
- fix: replace removed claude-3-7-sonnet-latest alias in examples by @trungutt in https://github.com/docker/docker-agent/pull/2313
- fix: use platform-aware shell for skill expansion, script_shell, post-edit hooks, and bang command by @trungutt in https://github.com/docker/docker-agent/pull/2314
- tui/messages: Add URL click detection for terminals with mouse tracking by @vvoland in https://github.com/docker/docker-agent/pull/2308
Full Changelog: https://github.com/docker/docker-agent/compare/v1.41.0...v1.42.0
- `docker agent models` command to list available models
- Contextual help dialog (Ctrl+H) with keyboard shortcuts
- Vertex AI Model Garden support for Claude and Llama
- Google Search, Maps, and code execution for Gemini models
- Finish reason tracking on assistant messages and token usage events
- Bug fix for process hang on /exit command
- Calm Roots theme: warm white accents, sage green info messages, charcoal background
- Neon Pink theme: vibrant pink tones with high-contrast white accents
Full changelog
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 https://github.com/docker/docker-agent/pull/2256
- Add Calm Roots and Neon Pink themes by @ambigois in https://github.com/docker/docker-agent/pull/2260
- Freeze v7 by @dgageot in https://github.com/docker/docker-agent/pull/2264
Full Changelog: https://github.com/docker/docker-agent/compare/v1.38.0...v1.39.0
Fixes tool cache not refreshing after MCP server reconnections.
- Global-level permissions from user config across all sessions
- Support for forwarding sampling parameters (top_k, repetition_penalty) to provider APIs
- RAG refactored to standard toolset type for consistency
- /tools command to show available tools in TUI dialog
- Support for digest-pinned OCI references directly from cache
- Docker Desktop proxy for all HTTP operations
- WebSocket transport for OpenAI Responses API
- /clear command to reset current tab with new session
- Configurable max_old_tool_call_tokens setting in agent YAML
- Evaluation system no longer provides all API keys when using models gateway
- Partial tool call streaming optimized with delta arguments to reduce payload size
- Evaluation summary display width reduced for better terminal formatting
Full changelog
This release improves tool call handling and evaluation functionality with several technical fixes and optimizations.
Improvements
- Optimizes partial tool call streaming by sending only delta arguments instead of accumulated arguments
- Reduces evaluation summary display width for better terminal formatting
- Includes tool definition only on the first partial tool call to reduce redundancy
Bug Fixes
- Fixes schema conversion for OpenAI Responses API strict mode, resolving issues with gpt-4.1-nano
- Removes duplicate tool call data from tool call response events to reduce payload size
Technical Changes
- Updates evaluation system to not provide all API keys when using models gateway
- Removes redundant tool call information from response events while preserving tool call IDs for client reference
What's Changed
- docs: update CHANGELOG.md for v1.33.0 by @docker-read-write[bot] in https://github.com/docker/docker-agent/pull/2159
- Fix (reduce) evals summary width by @gtardif in https://github.com/docker/docker-agent/pull/2160
- Evals: don't provide all API keys when using models gateway by @gtardif in https://github.com/docker/docker-agent/pull/2162
- Only send the delta on the partial tool call by @rumpl in https://github.com/docker/docker-agent/pull/2105
- build(deps): bump google.golang.org/grpc from 1.79.2 to 1.79.3 in the go_modules group across 1 directory by @dependabot[bot] in https://github.com/docker/docker-agent/pull/2164
- Remove the tool call from the tool call response event by @rumpl in https://github.com/docker/docker-agent/pull/2163
- Fix schema conversion for OpenAI Responses API strict mode - Fixes tool calls with gpt-4.1-nano by @gtardif in https://github.com/docker/docker-agent/pull/2168
Full Changelog: https://github.com/docker/docker-agent/compare/v1.33.0...v1.34.0
- Session exit keywords: exit, quit, and :q now terminate sessions immediately
- Per-eval Docker image override via evals.image property in evaluation configurations
- Run instructions added to creator agent prompt for proper execution guidance
Full changelog
This release improves file editing reliability, adds session exit keywords, and fixes several issues with sub-sessions and evaluation handling.
What's New
- Adds support for "exit", "quit", and ":q" keywords to quit sessions immediately
- Adds per-eval Docker image override via evals.image property in evaluation configurations
- Adds run instructions to creator agent prompt for proper agent execution guidance
Bug Fixes
- Fixes handling of double-serialized edits argument in edit_file tool when LLMs send JSON strings instead of arrays
- Fixes sub-session thinking state being incorrectly derived from parent session instead of child agent
- Fixes --sandbox flag when running in CLI plugin mode
- Fixes cross-model Gemini function calls by using dummy thought_signature
- Fixes event timestamps for user messages in SessionFromEvents to prevent duration calculation issues
Improvements
- Displays breakdown of failure types in evaluation summary for better debugging
- Declines elicitations in run --exec --json mode
- Validates path field consistently in edit file operations
Technical Changes
- Removes unused fileWriteTracker from creator package
- Simplifies UnmarshalJSON implementation for better path validation
- Updates evaluation image build cache to handle different images per working directory
What's Changed
- docs: update CHANGELOG.md for v1.32.5 by @docker-read-write[bot] in https://github.com/docker/docker-agent/pull/2147
- Better rendering in tmux and ghostty by @dgageot in https://github.com/docker/docker-agent/pull/2146
- Fix --sandbox when running cli plugin mode by @gtardif in https://github.com/docker/docker-agent/pull/2151
- Display breakdown of types of failures in eval summary by @gtardif in https://github.com/docker/docker-agent/pull/2150
- feat: support "exit" as a keyword to quit the session by @trungutt in https://github.com/docker/docker-agent/pull/2152
- Add per-eval Docker image override via evals.image property by @dgageot in https://github.com/docker/docker-agent/pull/2153
- Add run instructions to creator agent prompt by @dgageot in https://github.com/docker/docker-agent/pull/2154
- Decline elicitations in run --exec --json mode by @dgageot in https://github.com/docker/docker-agent/pull/2156
- Remove unused fileWriteTracker from creator package by @dgageot in https://github.com/docker/docker-agent/pull/2157
- fix: use dummy thought_signature for cross-model Gemini function calls by @dgageot in https://github.com/docker/docker-agent/pull/2155
- fix: sub-session thinking state derived from child agent, not parent session by @dgageot in https://github.com/docker/docker-agent/pull/2149
- fix: handle double-serialized edits argument in edit_file tool by @trungutt in https://github.com/docker/docker-agent/pull/2144
- fix: use event timestamps for user messages in SessionFromEvents by @dgageot in https://github.com/docker/docker-agent/pull/2158
Full Changelog: https://github.com/docker/docker-agent/compare/v1.32.5...v1.33.0
- Framework-level tool loop detection to prevent degenerate agent loops
- Dynamic command expansion in skills using !`command` syntax
- Skills as isolated sub-agents via context: fork
- HTTP 429 retry behavior requires explicit opt-in via WithRetryOnRateLimit() option
- Experimental feature removed from codebase
- HTTP 429 errors now retryable when no fallback model available, respecting Retry-After header
- Optional gateway for LLM evaluation
Full changelog
This release removes an experimental feature and improves error handling for rate-limited API requests.
Improvements
- Makes HTTP 429 (Too Many Requests) errors retryable when no fallback model is available, respecting the Retry-After header
Bug Fixes
- Gates 429 retry behavior behind WithRetryOnRateLimit() opt-in option to prevent unexpected retry behavior
Technical Changes
- Removes experimental feature from the codebase
- Adds optional gateway usage for LLM evaluation as a judge
- Refactors to use typed StatusError for retry metadata, with providers wrapping errors at Recv()
What's Changed
- Remove experimental feature by @dgageot in https://github.com/docker/docker-agent/pull/2087
- docs: update CHANGELOG.md for v1.32.2 by @docker-read-write[bot] in https://github.com/docker/docker-agent/pull/2090
- This can be retried by @dgageot in https://github.com/docker/docker-agent/pull/2093
- [eval] Optionnally use the gateway for the llm as a judge by @dgageot in https://github.com/docker/docker-agent/pull/2092
- fix: make HTTP 429 retryable when no fallback model, respect Retry-After header by @simon-agent-go-expert in https://github.com/docker/docker-agent/pull/2096
New Contributors
- @simon-agent-go-expert made their first contribution in https://github.com/docker/docker-agent/pull/2096
Full Changelog: https://github.com/docker/docker-agent/compare/v1.32.2...v1.32.3
- Prevent PATH hijacking and TOCTOU (Time-of-Check-Time-of-Use) vulnerabilities in shell/binary resolution (CWE-426)
Fixes session history corruption, tool elicitation failures, and MCP environment validation issues.
- Options-based selection for user_prompt tool, allowing agents to present users with labeled choices
- Documentation of {ORIGINAL_INSTRUCTIONS} placeholder for enriching toolset instructions
Full changelog
This release adds support for newer Gemini models, improves toolset documentation, and enhances user interaction capabilities.
What's New
- Adds options-based selection to user_prompt tool, allowing the agent to present users with labeled choices instead of free-form input
- Documents {ORIGINAL_INSTRUCTIONS} placeholder for enriching toolset instructions rather than replacing them
Bug Fixes
- Fixes support for Gemini 3.x versioned models (e.g., gemini-3.1-pro-preview) to ensure proper model recognition and thinking configuration
- Fixes gateway handling when using docker agent without a command
- Fixes broken links in documentation
Technical Changes
- Adds check for broken links in CI
- Updates .gitignore to exclude cagent-* binaries from being committed
What's Changed
- docs: update CHANGELOG.md for v1.31.0 by @docker-read-write[bot] in https://github.com/docker/docker-agent/pull/2063
- doc: document {ORIGINAL_INSTRUCTIONS} placeholder for toolset instructions by @dgageot in https://github.com/docker/docker-agent/pull/2062
- fix: support Gemini 3.x versioned models (e.g., gemini-3.1-pro-preview) by @dgageot in https://github.com/docker/docker-agent/pull/2054
- Fix gateway handling with docker agent without command by @dgageot in https://github.com/docker/docker-agent/pull/2064
- Fix broken links by @dgageot in https://github.com/docker/docker-agent/pull/2067
- gitignore cagent-* binaries by @derekmisler in https://github.com/docker/docker-agent/pull/2069
- Check for broken links by @dgageot in https://github.com/docker/docker-agent/pull/2068
- Add options-based selection to user_prompt tool by @trungutt in https://github.com/docker/docker-agent/pull/2071
Full Changelog: https://github.com/docker/docker-agent/compare/v1.31.0...v1.32.0
- Session statistics in cost dialog (token count, duration, message count)
- Reasoning tokens display for extended thinking models like o1
- Cost breakdown per model and per message with cache hit rates
- Sound notifications for task completion and errors (opt-in, disabled by default)
- LSP multiplexer for multiple LSP toolsets
- Per-toolset model routing via model field on toolsets configuration
- Rename from cagent to docker-agent throughout codebase, documentation, and URLs
- Environment variables renamed from CAGENT_* to DOCKER_AGENT_* (legacy support maintained)
- --exit-on-stdin-eof flag removed
- File drag-and-drop for images and PDFs
- Background agent task tools (run_background_agent, list, view, stop)
- --sandbox flag for Docker isolation
- Auto issue triage workflow with bug evaluation and fix PR creation
- CLI directory override flags (--config-dir, --data-dir, --cache-dir)
- Image support in read_file tool and MCP tool results
- Content-based MIME detection and automatic image resizing
- Model capability detection for stripping content from text-only models
- Debug auth command for Docker Desktop JWT inspection
- Automatic retry for all models including those without fallbacks
- MCP server lifecycle improvements with caching and auto-restart
- on_user_input hook for user input and tool confirmation states
- Multi-line editing of past user messages with clipboard support
- Faster past session loading
- Path traversal vulnerability in ACP filesystem operations
- Dynamic agent color styling system
- mkdir and rmdir filesystem tools
- Remote skills discovery with disk cache, supporting well-known skills discovery specification
- Pagination parameters (offset and line_count) for incremental reading of large files
Full changelog
This release introduces remote skills discovery capabilities and improves file reading tools with pagination support.
What's New
- Adds remote skills discovery with disk cache and dedicated tools, supporting the well-known skills discovery specification
- Adds offset and line_count pagination parameters to read_file and read_multiple_files tools for incremental reading of large files
Improvements
- Limits output size for read_file and read_multiple_files tools to prevent excessive token usage
- Removes pagination instructions from tool descriptions for cleaner interface
Bug Fixes
- Fixes LineCount metadata on truncated read_multiple_files results
Technical Changes
- Freezes configuration version v5 and bumps to v6
- Updates test cassettes to match schema changes for file reading tools
What's Changed
- docs: update CHANGELOG.md for v1.23.6 by @docker-read-write[bot] in https://github.com/docker/cagent/pull/1829
- builtin: add offset and line_count pagination to read_file and read_multiple_files by @trungutt in https://github.com/docker/cagent/pull/1828
- Implement remote skills discovery with disk cache and dedicated tools by @rumpl in https://github.com/docker/cagent/pull/1822
- Freeze v5 (and a few refactoring) by @dgageot in https://github.com/docker/cagent/pull/1810
Full Changelog: https://github.com/docker/cagent/compare/v1.23.6...v1.24.0
- Tab completion for commands dialog
- Mouse support for session selection
Fixes version output, help text display, and CLI completion recognition.
- Removes cagent config commands
- Removes cagent feedback command
- Removes cagent build command
- Parallel session support with tab management
- Drag and drop tab reordering
- Mouse click support in dialogs
- Docker CLI plugin support for docker agent command
- Asynchronous model reasoning checks
- Header forwarding with ${headers.NAME} syntax
- Tasks toolset with priorities and dependencies
- OpenAPI built-in toolset type
- Changed default binding from 0.0.0.0 to 127.0.0.1:8080 for cagent api, mcp, a2a
- Evaluation session setup script support
- Non-blocking session compaction
- Ctrl+R reverse history search
- Multi-turn conversations in cagent exec/run/eval
- Generalist coding agent
- OCI artifact wrapper for spec-compliant manifests
- Recursive ~/.agents/skills directory support
- Branching sessions to edit previous messages and create new conversation branches
- Automated nightly codebase scanner for detecting code quality issues
- Model fallback system that retries with alternative models on provider failure
- Private GitHub repository support for agent YAML files
- Standard .agents/skills directory structure support
- Deepwiki librarian integration
- Relative session references (-1 for last, -2 for second-to-last)
- Always-allow tool permission option
- Granular shell command permission patterns
Migrates PR review workflows to packaged cagent-action sub-actions, reducing complexity.
- Migrate from BaseToolSet and DescriptionToolSet to StartableToolSet in the tools package
- Removed BaseToolSet and DescriptionToolSet wrapper classes
- Improved render and mouse scroll performance in TUI interface
- Added StartableToolSet and As[T] generic helper to tools package
- Added capability interfaces for optional toolset features
Full changelog
This release improves the tools system architecture and enhances TUI scrolling performance.
Improvements
- Improves render and mouse scroll performance in the TUI interface
Technical Changes
- Adds StartableToolSet and As[T] generic helper to tools package
- Adds capability interfaces for optional toolset features
- Adds ConfigureHandlers convenience function for tools
- Migrates StartableToolSet to tools package and cleans up ToolSet interface
- Removes BaseToolSet and DescriptionToolSet wrapper
- Reorganizes tool-related code structure
What's Changed
- Work on Tool Wrappers by @dgageot in https://github.com/docker/cagent/pull/1548
- Make TUI more responsive when scrolling by @krissetto in https://github.com/docker/cagent/pull/1555
Full Changelog: https://github.com/docker/cagent/compare/v1.20.1...v1.20.2
- Audio listening shortcut changed from ctrl-k to ctrl-l
- Double-click title editing
- Better error messages for auto model and dmr
Full changelog
This release includes UI improvements, better error handling, and internal code organization enhancements.
Improvements
- Changes audio listening shortcut from ctrl-k to ctrl-l (ctrl-k is now reserved for line editing)
- Improves title editing by allowing double-click anywhere on the title instead of requiring precise icon clicks
- Keeps footer unchanged when using /session or /new commands unless something actually changes
- Shows better error messages when using "auto" model with no available providers or when dmr is not available
Bug Fixes
- Fixes flaky test that was causing CI failures
- Fixes
cagent newcommand functionality - Fixes title edit hitbox issues when title wraps to multiple lines
Technical Changes
- Organizes TUI messages by domain concern
- Introduces SessionStateReader interface for read-only access
- Introduces Subscription type for cleaner animation lifecycle management
- Improves tool registry API with declarative RegisterAll method
- Introduces HitTest for centralized mouse target detection in chat
- Makes sidebar View() function pure by moving SetWidth to SetSize
- Introduces cmdbatch package for fluent command batching
- Organizes chat runtime event handlers by category
- Introduces subscription package for external event sources
- Separates CollapsedViewModel from rendering in sidebar
- Improves provider handling and error messaging
What's Changed
- docs: update CHANGELOG.md for v1.20.0 by @docker-read-write[bot] in https://github.com/docker/cagent/pull/1538
- fix flaky test by @krissetto in https://github.com/docker/cagent/pull/1537
- Keep footer unless something actually changes by @krissetto in https://github.com/docker/cagent/pull/1541
- double click to edit title by @krissetto in https://github.com/docker/cagent/pull/1542
- Use ctrl-l for the audio listening. ctrl-k is for line editing by @dgageot in https://github.com/docker/cagent/pull/1545
- Fix and improve
cagent newby @dgageot in https://github.com/docker/cagent/pull/1546 - TUI refactor by @dgageot in https://github.com/docker/cagent/pull/1547
- Show better errors if
dmrnot found or no providers formodel: "auto"by @krissetto in https://github.com/docker/cagent/pull/1552
Full Changelog: https://github.com/docker/cagent/compare/v1.20.0...v1.20.1
- Custom TUI themes with hot-reloading capabilities
- Editable session titles with /title command
- Concurrent LLM-as-a-judge evaluation for improved performance
Improve error handling, output formatting, and TUI responsiveness
Full changelog
This release improves the user experience with better error handling and enhanced output formatting.
Improvements
- Improves error handling and user feedback throughout the application
- Enhances output formatting for better readability and user experience
Technical Changes
- Updates internal dependencies and build configurations
- Refactors code structure for better maintainability
- Updates development and testing infrastructure
What's Changed
- prompt-file is not yet supported by cagent-action, use prompt for now by @derekmisler in https://github.com/docker/cagent/pull/1480
- docs: update CHANGELOG.md for v1.19.5 by @docker-read-write[bot] in https://github.com/docker/cagent/pull/1481
- Upgrade GitHub Actions for Node 24 compatibility by @salmanmkc in https://github.com/docker/cagent/pull/1483
- Upgrade GitHub Actions to latest versions by @salmanmkc in https://github.com/docker/cagent/pull/1484
- Fix PR review agent to post inline comments and only review changed code by @derekmisler in https://github.com/docker/cagent/pull/1485
- tui(completions): cache file completion items to avoid TUI freeze by @Pnkcaht in https://github.com/docker/cagent/pull/1479
- agent/acp: harden file resource link handling by @Pnkcaht in https://github.com/docker/cagent/pull/1458
- Better DMR support by @krissetto in https://github.com/docker/cagent/pull/1391
- When using /exit in the TUI, just exit by @krissetto in https://github.com/docker/cagent/pull/1486
- Optimize CI by caching better by @krissetto in https://github.com/docker/cagent/pull/1487
- Removed unnecessary thinking and force agent to post a comment, even if no issues were found by @derekmisler in https://github.com/docker/cagent/pull/1488
- fix: correct memory database cache path for pr-reviewer GHA by @derekmisler in https://github.com/docker/cagent/pull/1489
- fix(tui): use innerWidth for horizontal sidebar by @silvin-lubecki in https://github.com/docker/cagent/pull/1491
- Revert "Merge pull request #1487 from krissetto/optimize-ci" by @krissetto in https://github.com/docker/cagent/pull/1494
- Update image building to set appropriate mediatypes by @jcarter3 in https://github.com/docker/cagent/pull/1499
- Use a global animation coordinator for animation ticks by @krissetto in https://github.com/docker/cagent/pull/1497
- More dynamic sidebar by @krissetto in https://github.com/docker/cagent/pull/1493
- improve message resizing for pending responses by @krissetto in https://github.com/docker/cagent/pull/1495
- Change sidebar toggle to ctrl-b by @krissetto in https://github.com/docker/cagent/pull/1502
- Misc improvements to the fast renderer by @krissetto in https://github.com/docker/cagent/pull/1500
- Ensure generated title is a single line string by @krissetto in https://github.com/docker/cagent/pull/1501
- Remove concept of tool permissions by @stanislavHamara in https://github.com/docker/cagent/pull/1504
- Cache file reads for diff rendering by @krissetto in https://github.com/docker/cagent/pull/1496
New Contributors
- @docker-read-write[bot] made their first contribution in https://github.com/docker/cagent/pull/1481
- @salmanmkc made their first contribution in https://github.com/docker/cagent/pull/1483
- @silvin-lubecki made their first contribution in https://github.com/docker/cagent/pull/1491
- @jcarter3 made their first contribution in https://github.com/docker/cagent/pull/1499
Full Changelog: https://github.com/docker/cagent/compare/v1.19.5...v1.19.6
- External command support for providing Docker access tokens
- PR reviewer agent with Go-specific pattern detection and dynamic feedback learning
- Better MCP Toolkit integration example
Full changelog
This release improves the terminal user interface with better error handling and visual feedback, along with concurrency fixes and enhanced Docker authentication options.
What's New
- Adds external command support for providing Docker access tokens
- Adds MCP Toolkit example for better integration guidance
- Adds realistic benchmark for markdown rendering performance testing
Improvements
- Improves edit_file tool error rendering with consistent styling and single-line display
- Improves PR reviewer agent with Go-specific patterns and feedback learning capabilities
- Enhances collapsed reasoning blocks with fade-out animation for completed tool calls
- Makes dialog value changes clearer by indicating space key usage
- Adds dedicated pending response spinner with improved rendering performance
Bug Fixes
- Fixes edit_file tool to skip diff rendering when tool execution fails
- Fixes concurrent access issues in user configuration aliases map
- Fixes style restoration after inline code blocks in markdown text
- Fixes model defaults when using the "router" provider to prevent erroneous thinking mode
- Fixes paste events incorrectly going to editor when dialog is open
- Fixes cassette recording functionality
Technical Changes
- Adds clarifying comments for configuration and data directory paths
- Hides tools configuration interface
- Protects aliases map with mutex for thread safety
What's Changed
- Fix restoring style after style inline text by @rumpl in https://github.com/docker/cagent/pull/1457
- docs(paths): add clarifying comments for config and data dirs by @Pnkcaht in https://github.com/docker/cagent/pull/1459
- Fix models defaults when using the "router" provider by @krissetto in https://github.com/docker/cagent/pull/1463
- Dedicated pendingResponse spinner by @krissetto in https://github.com/docker/cagent/pull/1464
- Fix the recording of cassettes by @dgageot in https://github.com/docker/cagent/pull/1465
- Better MCP Toolkit example by @dgageot in https://github.com/docker/cagent/pull/1466
- Be clearer can be used to change value by @dgageot in https://github.com/docker/cagent/pull/1467
- Fix paste events going to editor when dialog is open by @dgageot in https://github.com/docker/cagent/pull/1468
- More ways to hide tool call's output by @dgageot in https://github.com/docker/cagent/pull/1469
- userconfig: protect aliases map against concurrent access by @Pnkcaht in https://github.com/docker/cagent/pull/1456
- tui(edit_file): skip diff rendering on tool failure by @Pnkcaht in https://github.com/docker/cagent/pull/1422
- Improves the PR reviewer agent with Go-specific pattern detection, a multi-agent architecture, and dynamic
feedback learning by @derekmisler in https://github.com/docker/cagent/pull/1474 - Add a way to provide Docker access tokens from an external command by @dgageot in https://github.com/docker/cagent/pull/1476
- fade out competed tool calls in collapsed reasoning blocks by @krissetto in https://github.com/docker/cagent/pull/1461
Full Changelog: https://github.com/docker/cagent/compare/v1.19.4...v1.19.5
- Version information removed from agent
- Thinking no longer enabled by default
- History is now append-only (modifications and deletions no longer supported)
- Docker context support for seamless integration with different Docker environments
- Multi-choice selection dialog for TUI
- Go Tests Modernizer
Full changelog
This release of cagent brings significant improvements to the Docker integration experience and overall reliability. The most notable enhancement is the addition of comprehensive Docker context support, allowing cagent to seamlessly work with different Docker environments and configurations that users have set up on their systems. The release also introduces better error handling and user feedback mechanisms, making it easier to understand what's happening when cagent interacts with Docker services. Additionally, this version includes important stability fixes that resolve several edge cases in command execution and improves the overall robustness of the AI agent's operations. Performance optimizations have been implemented to make cagent more responsive, particularly when working with larger codebases or complex development environments. The release also enhances the tool's compatibility across different operating systems and development setups, ensuring a more consistent experience whether users are on macOS, Windows, or Linux platforms.
What's Changed
- remove version from the agent by @rumpl in https://github.com/docker/cagent/pull/1433
- Migrate tests to use t.Chdir() and add linter rule by @dgageot in https://github.com/docker/cagent/pull/1437
- Update deps by @dgageot in https://github.com/docker/cagent/pull/1428
- Improve history by @dgageot in https://github.com/docker/cagent/pull/1429
- Improve discoverability of Esc key bind by @simonferquel in https://github.com/docker/cagent/pull/1438
- Add Go Tests Modernizer by @dgageot in https://github.com/docker/cagent/pull/1439
- Don't enable thinking by default by @rumpl in https://github.com/docker/cagent/pull/1434
- Make history append-only by @rumpl in https://github.com/docker/cagent/pull/1440
- Fix: Predefined slash commands work correctly while agent is working by @stanislavHamara in https://github.com/docker/cagent/pull/1442
- Basic multi-choice selection dialog for the TUI by @krissetto in https://github.com/docker/cagent/pull/1443
- Reject tools with a reason by @krissetto in https://github.com/docker/cagent/pull/1444
- Enable thinking if defined by @krissetto in https://github.com/docker/cagent/pull/1447
- Friendly tools by @rumpl in https://github.com/docker/cagent/pull/1432
- Performance by @dgageot in https://github.com/docker/cagent/pull/1446
- Fix rendering of tool calls on session reload by @krissetto in https://github.com/docker/cagent/pull/1450
- Faster markdown tables by @dgageot in https://github.com/docker/cagent/pull/1451
- People don't like when machines divide by zero by @rumpl in https://github.com/docker/cagent/pull/1452
- Better elicitation by @dgageot in https://github.com/docker/cagent/pull/1449
- User prompt toolset by @rumpl in https://github.com/docker/cagent/pull/1453
- fix(api): reject invalid resume confirmation with explicit error by @Pnkcaht in https://github.com/docker/cagent/pull/1414
Full Changelog: https://github.com/docker/cagent/compare/v1.19.3...v1.19.4
- .gitignore support automatically respects project ignore patterns during codebase analysis
- Binary file detection prevents processing non-text files, improving performance and reliability
- Enhanced error handling and logging provides clearer feedback on operations and troubleshooting
Full changelog
This release of cagent brings significant improvements to file handling and processing capabilities. The most notable enhancement is the addition of comprehensive .gitignore support, allowing cagent to automatically respect your project's ignore patterns when analyzing codebases, which helps focus AI assistance on relevant files while excluding build artifacts, dependencies, and other non-essential content. The release also introduces smart binary file detection that prevents cagent from attempting to process non-text files, improving both performance and reliability when working with mixed-content repositories. Additionally, this version includes enhanced error handling and logging improvements that provide clearer feedback when operations encounter issues, making it easier to troubleshoot problems and understand what cagent is doing behind the scenes. These changes collectively make cagent more intelligent about which files to process and more transparent about its operations, resulting in faster, more accurate AI assistance for development tasks.
What's Changed
- Add log rotation for debug logs by @rumpl in https://github.com/docker/cagent/pull/1372
- Bump dependencies by @dgageot in https://github.com/docker/cagent/pull/1378
- Improve caching by @dgageot in https://github.com/docker/cagent/pull/1375
- Allow user to enqueue messages by @stanislavHamara in https://github.com/docker/cagent/pull/1374
- go mod tidy by @dgageot in https://github.com/docker/cagent/pull/1381
- Add CurrentAgentInfo() to make it easier to not rely on the local runtime by @dgageot in https://github.com/docker/cagent/pull/1382
- Small tui code improvements by @dgageot in https://github.com/docker/cagent/pull/1380
- Tell gopher to call tools concurrently when possible by @dgageot in https://github.com/docker/cagent/pull/1383
- Add some space before transfer task call by @dgageot in https://github.com/docker/cagent/pull/1384
- Add/bedrock info by @egrosdou01 in https://github.com/docker/cagent/pull/1385
- Fix Docker Desktop Socket Location for WSL2 by @simonferquel in https://github.com/docker/cagent/pull/1386
- Add support for User config by @dgageot in https://github.com/docker/cagent/pull/1387
- Optimize prompt caching by splitting system messages by @simonferquel in https://github.com/docker/cagent/pull/1388
- Update jsonschema by @rumpl in https://github.com/docker/cagent/pull/1389
- Unstuck some remote MCPs by @rumpl in https://github.com/docker/cagent/pull/1377
- Send events for thinking traces on OpenAI models by @krissetto in https://github.com/docker/cagent/pull/1394
- Enable selecting models in TUI based on available credentials by @krissetto in https://github.com/docker/cagent/pull/1393
- Use Markdown to format welcome messages by @dgageot in https://github.com/docker/cagent/pull/1400
- Pass message level costs in --remote mode and
cagent exec --jsonby @dgageot in https://github.com/docker/cagent/pull/1396 - Restore reasoning content in TUI when loading a session by @krissetto in https://github.com/docker/cagent/pull/1398
- Disable thinking for title generation by @krissetto in https://github.com/docker/cagent/pull/1399
- Better model config defaults by @krissetto in https://github.com/docker/cagent/pull/1395
- Add MCP elicitation support to TUI by @dgageot in https://github.com/docker/cagent/pull/1401
/thinktoggle by @krissetto in https://github.com/docker/cagent/pull/1402- Remove interleaved thinking if thinking is explicitly disabled by @krissetto in https://github.com/docker/cagent/pull/1404
- Change the green color to be less fluo by @rumpl in https://github.com/docker/cagent/pull/1410
- Allow disabling thinking via yaml with thinking_budget: 0 or none by @krissetto in https://github.com/docker/cagent/pull/1411
- Forward events to the chat page when dialogs are open by @rumpl in https://github.com/docker/cagent/pull/1409
- Simpler code by @rumpl in https://github.com/docker/cagent/pull/1408
- Clear the todos once they are all done by @rumpl in https://github.com/docker/cagent/pull/1405
- Remove the background from tool call icons and names by @rumpl in https://github.com/docker/cagent/pull/1406
- Stop pushing things to the right by @rumpl in https://github.com/docker/cagent/pull/1407
- Make sure cancelling a stream with ESC stops all spinners by @krissetto in https://github.com/docker/cagent/pull/1413
- Collapsible reasoning in TUI by @krissetto in https://github.com/docker/cagent/pull/1412
- Disable /think in the TUI when using non-reasoning models by @krissetto in https://github.com/docker/cagent/pull/1403
- Loosen and fix skill validation by @rumpl in https://github.com/docker/cagent/pull/1415
- Cleanup session state by @dgageot in https://github.com/docker/cagent/pull/1416
- Fix name by @dgageot in https://github.com/docker/cagent/pull/1417
- feat(bedrock): add prompt caching for supported models by @mfenderov in https://github.com/docker/cagent/pull/1360
- Fix races by @rumpl in https://github.com/docker/cagent/pull/1420
- feat(session): look for prompt files in both working dir and home folder by @dgageot in https://github.com/docker/cagent/pull/1418
- Disable thinking if undefined on yaml configs < v4 by @krissetto in https://github.com/docker/cagent/pull/1424
- Make it clearer which messages we tag with CacheControl by @dgageot in https://github.com/docker/cagent/pull/1421
- Change triangle to [+] and [-] on thinking dropdown toggle by @krissetto in https://github.com/docker/cagent/pull/1425
- More tui cleanup by @dgageot in https://github.com/docker/cagent/pull/1427
- fix(mcp): ignore EOF during MCP initialization by @Pnkcaht in https://github.com/docker/cagent/pull/1426
- Faster spinner by @dgageot in https://github.com/docker/cagent/pull/1430
- Detect parent process death via stdin EOF by @trungutt in https://github.com/docker/cagent/pull/1423
New Contributors
- @simonferquel made their first contribution in https://github.com/docker/cagent/pull/1386
- @Pnkcaht made their first contribution in https://github.com/docker/cagent/pull/1426
Full Changelog: https://github.com/docker/cagent/compare/v1.19.2...v1.19.3
- Interleaved thinking for Bedrock Claude models enables multi-turn extended thinking conversations
- Voice-controlled home assistant feature
- Automated PR review workflow triggered with `/review` comments on GitHub pull requests
Full changelog
This release of cagent v1.19.2 brings significant enhancements to AI model capabilities and workflow automation features. The most notable addition is interleaved thinking support for Amazon Bedrock's Claude models, allowing for multi-turn extended thinking conversations that can dramatically improve reasoning quality for complex tasks. cagent now includes a voice-controlled home assistant feature, expanding its utility beyond traditional command-line interactions. The release also introduces an automated PR review workflow that can be triggered with simple /review comments on GitHub pull requests, making code review processes more efficient for development teams. Cost tracking has been improved with better support for Bedrock models through enhanced region and inference profile detection, providing more accurate usage monitoring across AWS regions. Additionally, this version fixes several important issues including sub-sessions being incorrectly saved as standalone entries when using task delegation, and resolves editor bugs related to cursor positioning when using backspace on multi-line content. Performance optimizations for string truncation operations and various code cleanups round out this release, making cagent more reliable and efficient for daily development workflows.
What's Changed
- Voice controlled home assistant by @dgageot in https://github.com/docker/cagent/pull/1348
- feat(bedrock): add interleaved thinking support by @mfenderov in https://github.com/docker/cagent/pull/1352
- Usage track more bedrock models by @krissetto in https://github.com/docker/cagent/pull/1353
- Remove useless code by @dgageot in https://github.com/docker/cagent/pull/1354
- Include the Docker Community Slack workspace by @egrosdou01 in https://github.com/docker/cagent/pull/1356
- Optimize string truncation by @dgageot in https://github.com/docker/cagent/pull/1355
- Remove file pushed by error by @dgageot in https://github.com/docker/cagent/pull/1359
- Fix one more issue with the editor by @dgageot in https://github.com/docker/cagent/pull/1358
- Add automated PR review workflow with
/reviewcommand by @derekmisler in https://github.com/docker/cagent/pull/1361 - Fix path and prompt for PR review agent by @derekmisler in https://github.com/docker/cagent/pull/1364
- Bare-bones pr-review gha by @rumpl in https://github.com/docker/cagent/pull/1365
- Fix sub-sessions being saved as standalone entries by @trungutt in https://github.com/docker/cagent/pull/1362
- go mod tidy by @dgageot in https://github.com/docker/cagent/pull/1368
- Simplify the reviewer by @rumpl in https://github.com/docker/cagent/pull/1371
- Use latest cagent by @rumpl in https://github.com/docker/cagent/pull/1373
- Ignore the user's gateway by @dgageot in https://github.com/docker/cagent/pull/1369
Full Changelog: https://github.com/docker/cagent/compare/v1.19.1...v1.19.2
- CreateReferenceLink removed from public API
- builtin.ToolHandler moved to tools.NewHandler
- AWS Bedrock provider support with thinking_budget for extended thinking
- New /copy-last command
- Renderers for directory_tree and search_files_content
Full changelog
What's Changed
- eval: don't add cost, it's already added in the runtime by @rumpl in https://github.com/docker/cagent/pull/1321
- Improve TUI rendering with thinking blocks and interleaved thinking by @krissetto in https://github.com/docker/cagent/pull/1322
- Add AWS Bedrock provider support by @mfenderov in https://github.com/docker/cagent/pull/1045
- Improve evals by @dgageot in https://github.com/docker/cagent/pull/1323
- Make sidebars and the editor resize handler more sleek by @krissetto in https://github.com/docker/cagent/pull/1325
- Add renderers for directory_tree and search_files_content by @rumpl in https://github.com/docker/cagent/pull/1326
- Stop re-computing the cwd in the sidebar by @rumpl in https://github.com/docker/cagent/pull/1327
- Revert "refactor(content): make CreateReferenceLink method public" by @rumpl in https://github.com/docker/cagent/pull/1328
- Add a /copy-last command by @rumpl in https://github.com/docker/cagent/pull/1329
- Single tool call to update multiple TODOs by @dgageot in https://github.com/docker/cagent/pull/1330
- Improve sidebar layout by @krissetto in https://github.com/docker/cagent/pull/1332
- Don't resolve model aliases when base_url is used by @krissetto in https://github.com/docker/cagent/pull/1333
- Filter which session to evaluate by @dgageot in https://github.com/docker/cagent/pull/1335
- [fix] when opening past session, ignore questions asked on the command line by @dgageot in https://github.com/docker/cagent/pull/1337
- Move builtin.ToolHandler to tools.NewHandler by @rumpl in https://github.com/docker/cagent/pull/1339
- Try parsing the arguments before they are completely received by @rumpl in https://github.com/docker/cagent/pull/1334
- Fix issue #1340 by @egrosdou01 in https://github.com/docker/cagent/pull/1342
- Add config version v4 by @dgageot in https://github.com/docker/cagent/pull/1338
- feat(bedrock): add thinking_budget support for extended thinking by @mfenderov in https://github.com/docker/cagent/pull/1343
- Better fuzzy json parsing by @rumpl in https://github.com/docker/cagent/pull/1346
- Chage the truncation to only truncate tool call results, not the arguments by @rumpl in https://github.com/docker/cagent/pull/1344
- Fix token usage and cost tracking in amazon-bedrock provider by @krissetto in https://github.com/docker/cagent/pull/1349
- Remove stale comment by @trungutt in https://github.com/docker/cagent/pull/1351
New Contributors
- @mfenderov made their first contribution in https://github.com/docker/cagent/pull/1045
- @egrosdou01 made their first contribution in https://github.com/docker/cagent/pull/1342
Full Changelog: https://github.com/docker/cagent/compare/v1.19.0...v1.19.1
- Evaluation framework with Docker isolation for reproducible agent testing
- Per-tool session permissions for granular access control
- Scrollable sidebar for improved navigation
- Truncated lines highlighted in red in messages view
- Improved slash command picker
- Improved printing of pinned model names
Full changelog
What's Changed
- Fix tool call layout by @dgageot in https://github.com/docker/cagent/pull/1295
- Highlight truncated lines in red in messages view by @dgageot in https://github.com/docker/cagent/pull/1296
- Be better at printing the pinned model names by @dgageot in https://github.com/docker/cagent/pull/1298
- Fix a couple of off by one widths by @dgageot in https://github.com/docker/cagent/pull/1297
- Rename CustomMatcher -> DefaultMatcher by @trungutt in https://github.com/docker/cagent/pull/1294
- Add comprehensive navigation tests for editor component by @dgageot in https://github.com/docker/cagent/pull/1301
- Improve slash command picker by @dgageot in https://github.com/docker/cagent/pull/1299
- Add Session-Level Permissions by @stanislavHamara in https://github.com/docker/cagent/pull/1300
- Put back WithReplayableInteractions to false by @trungutt in https://github.com/docker/cagent/pull/1302
- Remove unneeded relaxed matcher by @trungutt in https://github.com/docker/cagent/pull/1308
- Improve the documentation a bit by @dgageot in https://github.com/docker/cagent/pull/1307
- Truncate line by @dgageot in https://github.com/docker/cagent/pull/1303
- Faster tests 4 by @dgageot in https://github.com/docker/cagent/pull/1306
Full Changelog: https://github.com/docker/cagent/compare/v1.18.7...v1.18.8
- Override default agent with an alias
- Enable replayable interactions when matcher is provided
Full changelog
What's Changed
- Make is possible to override default agent with an alias by @dgageot in https://github.com/docker/cagent/pull/1284
- Enable replayable interactions when matcher is provided by @trungutt in https://github.com/docker/cagent/pull/1293
Full Changelog: https://github.com/docker/cagent/compare/v1.18.6...v1.18.7
- New /export command to export sessions to HTML
- TUI renderer performance optimization
- Experimental token refresh via docker login
Full changelog
What's Changed
- Add alloy model to the golang dev by @rumpl in https://github.com/docker/cagent/pull/1274
- Make --fake option more stable by @trungutt in https://github.com/docker/cagent/pull/1270
- Move the handoff and the task transfer to the tool executor by @rumpl in https://github.com/docker/cagent/pull/1273
- Add experimental token refresh via docker login by @dgageot in https://github.com/docker/cagent/pull/1276
- Add /export to export a session to html by @dgageot in https://github.com/docker/cagent/pull/1275
- Optimize the perf of the TUI (mostly the renderer) by @dgageot in https://github.com/docker/cagent/pull/1277
- Set the terminal window title based on the session title by @rumpl in https://github.com/docker/cagent/pull/1281
- Fix race condition in toolset initialization by @dgageot in https://github.com/docker/cagent/pull/1280
- Fix export (description and tools used) by @dgageot in https://github.com/docker/cagent/pull/1279
- Fix the truncation of transfer tasks by @dgageot in https://github.com/docker/cagent/pull/1282
- Fix sidebar green text background to be transparent by @dgageot in https://github.com/docker/cagent/pull/1285
- Add /cost command to show detailed session cost breakdown by @dgageot in https://github.com/docker/cagent/pull/1283
- Fix inconsistent decimal formatting in cost dialog by @dgageot in https://github.com/docker/cagent/pull/1288
- Fix multi-line editing by @dgageot in https://github.com/docker/cagent/pull/1286
- fix: preserve slash command arguments when completion is selected by @dgageot in https://github.com/docker/cagent/pull/1287
- Fix message width by @dgageot in https://github.com/docker/cagent/pull/1289
- Only select the text by @rumpl in https://github.com/docker/cagent/pull/1290
- Revert runtime tool execution by @rumpl in https://github.com/docker/cagent/pull/1292
Full Changelog: https://github.com/docker/cagent/compare/v1.18.5...v1.18.6
Fixed legacy session parsing regression returning empty messages.
- New /attach command to attach files to messages
- GPT-5.2 model support
- Markdown renderer with improved word wrapping
Full changelog
What's Changed
- Add gpt-5.2 by @rumpl in https://github.com/docker/cagent/pull/1268
- Add /attach command to attach files to messages by @dgageot in https://github.com/docker/cagent/pull/1266
- Markdown renderer: proper word wraping by @rumpl in https://github.com/docker/cagent/pull/1265
- Extract the tool execution by @rumpl in https://github.com/docker/cagent/pull/1267
Full Changelog: https://github.com/docker/cagent/compare/1.18.3...v1.18.4
## What's Changed * Remove search_files tool from filesystem builtin
- Add --session flag to run and exec commands
- Add session starring feature
- Extract session compaction
Full changelog
What's Changed
- Extract session compaction by @rumpl in https://github.com/docker/cagent/pull/1260
- Add --session flag to run and exec commands by @dgageot in https://github.com/docker/cagent/pull/1262
- Add session starring feature by @dgageot in https://github.com/docker/cagent/pull/1261
Full Changelog: https://github.com/docker/cagent/compare/v1.8.2...1.18.2
- ast-grep tool removed
- Filesystem allowed-directories feature removed
- Basic sandboxing support added for shell tools
- Tool permissions system with Allow/Ask/Deny patterns
- Hooks implementation for automated behaviors and workflows
- Local model routing based on user questions
Full changelog
What's Changed
- Open past sessions by @dgageot in https://github.com/docker/cagent/pull/1199
- Implement double-click by @dgageot in https://github.com/docker/cagent/pull/1195
- Improved completion by @dgageot in https://github.com/docker/cagent/pull/1196
- Simplify skills handling by @dgageot in https://github.com/docker/cagent/pull/1197
- Change the style of dialogs so that it matches the rest of the TUI by @dgageot in https://github.com/docker/cagent/pull/1198
- Remove duplication around /commands by @dgageot in https://github.com/docker/cagent/pull/1191
- Fix main branch by @dgageot in https://github.com/docker/cagent/pull/1201
- Shorter output for single item array arguments by @dgageot in https://github.com/docker/cagent/pull/1203
- Truncate sidebar by @dgageot in https://github.com/docker/cagent/pull/1202
- Fix /fix-lint from the editor by @dgageot in https://github.com/docker/cagent/pull/1206
- Add an /init command to gopher.yaml by @dgageot in https://github.com/docker/cagent/pull/1212
- Fix /shell on windows by @dgageot in https://github.com/docker/cagent/pull/1208
- Remove ast-grep. It's never used and often fails by @dgageot in https://github.com/docker/cagent/pull/1211
- Support compaction with extra user prompt by @dgageot in https://github.com/docker/cagent/pull/1213
- Add a /security-review command to gopher.yaml by @dgageot in https://github.com/docker/cagent/pull/1214
- Very basic sandboxing support for the 'shell' tools by @dgageot in https://github.com/docker/cagent/pull/1209
- Add tool permissions system with Allow/Ask/Deny patterns by @dgageot in https://github.com/docker/cagent/pull/1204
- Implement local model routing based on the question by @dgageot in https://github.com/docker/cagent/pull/1207
- Add a /simplify command to gopher.yaml by @dgageot in https://github.com/docker/cagent/pull/1215
- Don't filepath.Abs the path by @rumpl in https://github.com/docker/cagent/pull/1216
- Implement hooks by @dgageot in https://github.com/docker/cagent/pull/1205
- Filesystem: remove allowed directories by @rumpl in https://github.com/docker/cagent/pull/1218
- Truncate old tools by @rumpl in https://github.com/docker/cagent/pull/1217
- Fix tool alignement by @dgageot in https://github.com/docker/cagent/pull/1220
- Add the scrollbar back by @dgageot in https://github.com/docker/cagent/pull/1221
- feat: enhance commands with description, positional args, and shell e… by @dgageot in https://github.com/docker/cagent/pull/1219
- fix: Semantic-embeddings stream errors treated as EOF, indexing partial summaries silently by @majiayu000 in https://github.com/docker/cagent/pull/1173
- Improve gopher.yaml by @dgageot in https://github.com/docker/cagent/pull/1223
- Add more permissions by @dgageot in https://github.com/docker/cagent/pull/1227
- Add a reviewer to gopher.yaml by @dgageot in https://github.com/docker/cagent/pull/1229
- Use Js to run tool calls in /commands by @dgageot in https://github.com/docker/cagent/pull/1226
- refactor(anthropic): simplify code and add URL image support by @dgageot in https://github.com/docker/cagent/pull/1230
- refactor(gemini): simplify code and improve performance by @dgageot in https://github.com/docker/cagent/pull/1231
- Fix a few issues in the sqlite code by @dgageot in https://github.com/docker/cagent/pull/1228
- refactor: extract OpenAI message conversion to shared oaistream package by @dgageot in https://github.com/docker/cagent/pull/1232
- Fast markdown renderer by @rumpl in https://github.com/docker/cagent/pull/1225
- use opus by @rumpl in https://github.com/docker/cagent/pull/1234
- winget: fix unexpected token error by @chelnak in https://github.com/docker/cagent/pull/1239
- Add triple-click to select whole lines in TUI by @dgageot in https://github.com/docker/cagent/pull/1237
- Update dependencies by @dgageot in https://github.com/docker/cagent/pull/1236
- Improve completion to show both aliases and files by @dgageot in https://github.com/docker/cagent/pull/1240
- Simpler code by @dgageot in https://github.com/docker/cagent/pull/1238
- Lazy creation of the session by @dgageot in https://github.com/docker/cagent/pull/1242
- Make it faster to show the dialog with past sessions by @dgageot in https://github.com/docker/cagent/pull/1241
- Fix truncation in the ctrl-p dialog by @dgageot in https://github.com/docker/cagent/pull/1243
- Fix navigation across past assistant messages by @dgageot in https://github.com/docker/cagent/pull/1244
- Better caching for anthropic by @rumpl in https://github.com/docker/cagent/pull/1245
New Contributors
- @majiayu000 made their first contribution in https://github.com/docker/cagent/pull/1173
Full Changelog: https://github.com/docker/cagent/compare/v1.17.0...v1.18.0
- Ollama OpenAI endpoint integration
- LSP tool support
- Support for --attach flag in cagent run command
Full changelog
What's Changed
- Misc Cleanup by @dgageot in https://github.com/docker/cagent/pull/1184
- Optimize Dockerfile build by @dgageot in https://github.com/docker/cagent/pull/1187
- Add ollama openai endpoint by @dgageot in https://github.com/docker/cagent/pull/1186
- More misc cleanup by @dgageot in https://github.com/docker/cagent/pull/1185
- Support --attach in
cagent runby @dgageot in https://github.com/docker/cagent/pull/1183 - Use default instructions less likely to trigger jailbreak detection by @dgageot in https://github.com/docker/cagent/pull/1182
- More code simplifications by @dgageot in https://github.com/docker/cagent/pull/1190
- Add support for LSP tools by @dgageot in https://github.com/docker/cagent/pull/1163
- Improve Code Mode handling of errors by @dgageot in https://github.com/docker/cagent/pull/1192
- Enable replayable VCR interactions by @trungutt in https://github.com/docker/cagent/pull/1194
Full Changelog: https://github.com/docker/cagent/compare/v1.16.0...v1.17.0