Skip to content

Releases: docker/cagent

v1.23.3

16 Feb 16:06
e2f8679

Choose a tag to compare

This release adds Docker CLI plugin support and improves TUI performance by making model reasoning checks asynchronous.

What's New

  • Adds support for using cagent as a Docker CLI plugin with docker agent command (no functional changes to existing cagent command)
  • Handles Windows .exe binary suffix for CLI plugin compatibility

Improvements

  • Makes model reasoning support checks asynchronous to prevent TUI freezing (previously could block for up to 30 seconds)
  • Threads context.Context through modelsdev store API to allow proper cancellation and deadline propagation

Technical Changes

  • Renames cagent OCI annotation to io.docker.agent.version while maintaining backward compatibility with the old annotation
  • Updates config media type to use docker.agent
  • Adds TUI general guidelines to AGENTS.md documentation

What's Changed

  • Thread context.Context through modelsdev store API by @rumpl in #1747
  • Rename cagent OCI annotation, keep old one by @gtardif in #1745
  • docs: update CHANGELOG.md for v1.23.2 by @docker-read-write[bot] in #1746
  • Move ModelSupportsReasoning calls to async bubbletea commands by @rumpl in #1749
  • Allow to use cagent binary as a docker cli plugin docker-agent. No functional change for cagent command. by @gtardif in #1748

New Contributors

Full Changelog: v1.23.2...v1.23.3

v1.23.2

16 Feb 09:35
8f179d0

Choose a tag to compare

This release adds header forwarding capabilities for toolsets and includes several bug fixes and code improvements.

What's New

  • Adds support for ${headers.NAME} syntax to forward upstream API headers to toolsets, allowing toolset configurations to reference incoming HTTP request headers

Bug Fixes

  • Fixes race condition in isFirstRun using atomic file creation
  • Fixes nil pointer dereference when RateLimit is present without Usage
  • Fixes double-counting of session costs with cumulative usage providers
  • Fixes Ctrl+K key binding conflict in session browser by reassigning CopyID to Ctrl+Y
  • Fixes model selection functionality

Improvements

  • Adds input validation and audit logging to shell tool
  • Adds input validation and error handling to RunBangCommand

Technical Changes

  • Extracts shared helpers for command-based providers to reduce code duplication
  • Removes duplication from config.Resolv
  • Moves GetUserSettings() from pkg/config to pkg/userconfig as Get()
  • Removes redundant Reader interface from pkg/config
  • Fixes leaked os.Root handle in fileSource.Read
  • Makes small improvements to cmd/root

What's Changed

New Contributors

Full Changelog: v1.23.1...v1.23.2

v1.23.1

13 Feb 21:12
af20cc4

Choose a tag to compare

This release introduces a new OpenAPI toolset for automatic API integration, task management capabilities, and several improvements to message handling and testing infrastructure.

What's New

  • Adds Tasks toolset with support for priorities and dependencies
  • Adds OpenAPI built-in toolset type that automatically converts OpenAPI specifications into usable tools
  • Adds support for custom telemetry tags via TELEMETRY_TAGS environment variable

Improvements

  • Preserves line breaks and indentation in welcome messages for better formatting
  • Updates documentation links to point to GitHub Pages instead of code repository

Bug Fixes

  • Fixes recursive enforcement of required properties in OpenAI tool schemas (resolves Chrome MCP compatibility with OpenAI 5.2)
  • Returns error when no messages are available after conversion instead of sending invalid requests

Technical Changes

  • Replaces time.Sleep in tests with deterministic synchronization for faster, more reliable testing
  • Refactors models store implementation
  • Adds .idea/ directory to gitignore
  • Removes fake models.dev and unused code

What's Changed

  • docs: update CHANGELOG.md for v1.23.0 by @docker-read-write[bot] in #1714
  • Tasks toolset by @rumpl in #1704
  • preserve line breaks and indentation in welcome messages by @maxcleme in #1718
  • Add openapi built-in toolset type by @dgageot in #1719
  • return error if no messages are available after conversion by @krissetto in #1720
  • fix: recursively enforce required properties in OpenAI tool schemas by @dgageot in #1710
  • Replace time.Sleep in tests with deterministic synchronization by @dgageot in #1722
  • Allow passing in custom tags to telemetry by @derekmisler in #1723
  • Update documentation links to GitHub Pages by @lorenrh in #1726
  • Speed up fallback tests by @dgageot in #1724
  • Refactor models store by @dgageot in #1721

New Contributors

Full Changelog: v1.23.0...v1.23.1

v1.23.0

12 Feb 22:30
5556647

Choose a tag to compare

This release improves TUI display accuracy, enhances API security defaults, and fixes several memory leaks and session handling issues.

What's New

  • Adds optional setup script support for evaluation sessions to prepare container environments before agent execution
  • Adds user_prompt tools to the planner for interactive user questions

Improvements

  • Makes session compaction non-blocking with spinner feedback instead of blocking the TUI render thread
  • Returns error responses for unknown tool calls instead of silently skipping them
  • Strips null values from MCP tool call arguments to fix compatibility with models like GPT-5.2
  • Improves error handling and logging in evaluation judge with better error propagation and structured logging

Bug Fixes

  • Fixes incorrect tool count display in TUI when running in --remote mode
  • Fixes tick leak that caused ~10% CPU usage when assistant finished answering
  • Fixes session store leak and removes redundant session store methods
  • Fixes A2A agent card advertising unroutable wildcard address by using localhost
  • Fixes potential goroutine leak in monitorStdin
  • Fixes Agents.UnmarshalYAML to properly reject unknown fields in agent configurations
  • Persists tool call error state in session messages so failed tool calls maintain error status when sessions are reloaded

Technical Changes

  • Removes CORS middleware from 'cagent api' command
  • Changes default binding from 0.0.0.0 to 127.0.0.1:8080 for 'cagent api', 'cagent a2a' and 'cagent mcp' commands
  • Uses different default ports for better security
  • Lists valid versions in unsupported config version error messages
  • Adds the summary message as a user message during session compaction
  • Propagates cleanup errors from fakeCleanup and recordCleanup functions
  • Logs errors on log file close instead of discarding them

What's Changed

Full Changelog: v1.22.0...v1.23.0

v1.22.0

09 Feb 18:16
a43090e

Choose a tag to compare

This release enhances the chat experience with history search functionality and improves file attachment handling, along with multi-turn conversation support for command-line operations.

What's New

  • Adds Ctrl+R reverse history search to the chat editor for quickly finding previous conversations
  • Adds support for multi-turn conversations in cagent exec, cagent run, and cagent eval commands
  • Adds support for queueing multiple messages with cagent run question1 question2 ...

Improvements

  • Improves file attachment handling by inlining text-based files and fixing placeholder stripping
  • Refactors scrollbar into a reusable scrollview component for more consistent scrolling behavior across the interface

Bug Fixes

  • Fixes pasted attachments functionality
  • Fixes persistence of multi_content for user messages to ensure attachment data is properly saved
  • Fixes session browser shortcuts (star, filter, copy-id) to use Ctrl modifier, preventing conflicts with search input
  • Fixes title generation spinner that could spin forever
  • Fixes scrollview height issues when used with dialogs
  • Fixes double @@ symbols when using file picker for @ attachments

Technical Changes

  • Updates OpenAI schema format handling to improve compatibility

What's Changed

  • docs: update CHANGELOG.md for v1.21.0 by @docker-read-write[bot] in #1649
  • better file attachments by @krissetto in #1640
  • OpenAI doesn't like those format indications on the schema by @dgageot in #1650
  • feat: add Ctrl+R reverse history search by @Mostamhd in #1630
  • Prevent title generation spinner to spin forever by @dgageot in #1645
  • Refactor scrollbar into more reusable scrollview component by @krissetto in #1654
  • fix scrollview using too much height with dialogs by @krissetto in #1660
  • Fix: persist multi_content for user messages by @trungutt in #1652
  • fix: use ctrl modifier for session browser shortcuts to avoid search conflict by @dgageot in #1656
  • Fix pasted attachments by @krissetto in #1659
  • deleting version 2 so i can use permissions by @derekmisler in #1661
  • Multi turn (cagent exec|run|eval) by @dgageot in #1662

Full Changelog: v1.21.0...v1.22.0

v1.21.0

09 Feb 10:26
4315256

Choose a tag to compare

This release adds a new generalist coding agent, improves agent configuration handling, and includes several bug fixes and UI improvements.

What's New

  • Adds a generalist coding agent for enhanced coding assistance
  • Adds OCI artifact wrapper for spec-compliant manifest with artifactType

Improvements

  • Supports recursive ~/.agents/skills directory structure
  • Wraps todo descriptions at word boundaries in sidebar for better display
  • Preserves 429 error details on OpenAI for better error handling

Bug Fixes

  • Fixes subagent delegation and validates model outputs when transfer_task is called
  • Fixes YAML parsing issue with unquoted strings containing special characters like colons

Technical Changes

  • Freezes config version v4 and bumps to v5

What's Changed

Full Changelog: v1.20.6...v1.21.0

v1.20.6

07 Feb 09:39
8d9dcc9

Choose a tag to compare

This release introduces branching sessions, model fallbacks, and automated code quality scanning, along with performance improvements and enhanced file handling capabilities.

What's New

  • Adds branching sessions feature that allows editing previous messages to create new session branches without losing original conversation history
  • Adds automated nightly codebase scanner with multi-agent architecture for detecting code quality issues and creating GitHub issues
  • Adds model fallback system that automatically retries with alternative models when inference providers fail
  • Adds skill invocation via slash commands for enhanced workflow automation
  • Adds --prompt-file CLI flag for including file contents as system context
  • Adds debug title command for troubleshooting session title generation

Improvements

  • Improves @ attachment performance to prevent UI hanging in large or deeply nested directories
  • Switches to Anthropic Files API for file uploads instead of embedding content directly, dramatically reducing token usage
  • Enhances scanner resilience and adds persistent memory system for learning from previous runs

Bug Fixes

  • Fixes tool calls score rendering in evaluations
  • Fixes title generation for OpenAI and Gemini models
  • Fixes GitHub Actions directory creation issues

Technical Changes

  • Refactors to use cagent's built-in memory system and text format for sub-agent output
  • Enables additional golangci-lint linters and fixes code quality issues
  • Simplifies PR review workflow by adopting reusable workflow from cagent-action
  • Updates Model Context Protocol SDK and other dependencies

What's Changed

Full Changelog: v1.20.5...v1.20.6

v1.20.5

05 Feb 13:30
e517b6a

Choose a tag to compare

This release improves stability for non-interactive sessions, updates the default Anthropic model to Claude Sonnet 4.5, and adds support for private GitHub repositories and standard agent directories.

What's New

  • Adds support for using agent YAML files from private GitHub repositories
  • Adds support for standard .agents/skills directory structure
  • Adds deepwiki integration to the librarian
  • Adds timestamp tracking to runtime events
  • Allows users to define their own default model in global configuration

Improvements

  • Updates default Anthropic model to Claude Sonnet 4.5
  • Adds reason explanations when relevance checks fail during evaluations
  • Persists ACP sessions to default SQLite database unless specified with --session-db flag
  • Makes aliased agent paths absolute for better path resolution
  • Produces session database for evaluations to enable investigation of results

Bug Fixes

  • Prevents panic when elicitation is requested in non-interactive sessions
  • Fixes title generation hanging with Gemini 3 models by properly disabling thinking
  • Fixes current agent display in TUI interface
  • Prevents TUI dimensions from going negative when sidebar is collapsed
  • Fixes flaky test issues

Technical Changes

  • Simplifies ElicitationRequestEvent check to reduce code duplication
  • Allows passing additional environment variables to Docker when running evaluations
  • Passes LLM as judge on full transcript for better evaluation accuracy

What's Changed

Full Changelog: v1.20.4...v1.20.5

v1.20.4

03 Feb 12:05
a41ac83

Choose a tag to compare

This release improves session handling with relative references and tool permissions, along with better table rendering in the TUI.

What's New

  • Adds support for relative session references in --session flag (e.g., -1 for last session, -2 for second to last)
  • Adds "always allow this tool" option to permanently approve specific tools or commands for the session
  • Adds granular permission patterns for shell commands that auto-approve specific commands while requiring confirmation for others

Improvements

  • Updates shell command selection to work with the new tool permission system
  • Wraps tables properly in the TUI's experimental renderer to fit terminal width with smart column sizing

Bug Fixes

  • Fixes reading of legacy sessions
  • Fixes getting sub-session errors where session was not found

Technical Changes

  • Adds test databases for better testing coverage
  • Automatically runs PR reviewer for Docker organization members
  • Exposes new approve-tool confirmation type via HTTP and ConnectRPC APIs

What's Changed

Full Changelog: v1.20.3...v1.20.4

v1.20.3

02 Feb 16:29
d53bf3e

Choose a tag to compare

This release migrates PR review workflows to packaged actions and includes visual improvements to the Nord theme.

Improvements

  • Migrates PR review to packaged cagent-action sub-actions, reducing workflow complexity
  • Changes code fences to blue color in Nord theme for better visual consistency

Technical Changes

  • Adds task rebuild when themes change to ensure proper theme updates
  • Removes local development configuration that was accidentally committed

What's Changed

  • Migrate PR review to packaged cagent-action sub-actions by @derekmisler in #1543
  • docs: update CHANGELOG.md for v1.20.1 by @docker-read-write[bot] in #1556
  • docs: update CHANGELOG.md for v1.20.2 by @docker-read-write[bot] in #1557
  • Change the code fences to blue in nord by @rumpl in #1560
  • task rebuild if themes change by @krissetto in #1561
  • remove local dev oopsie by @krissetto in #1562

Full Changelog: v1.20.2...v1.20.3