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
- docs: update CHANGELOG.md for v1.22.0 by @docker-read-write[bot] in #1663
- Better default security for cagent api|mcp|a2a by @dgageot in #1657
- Fix tick leak by @rumpl in #1669
- Session store cleanup by @rumpl in #1668
- eval: add optional setup script support for eval sessions by @dgageot in #1673
- Fix Agents.UnmarshalYAML to reject unknown fields by @simonferquel in #1684
- Remove redundant stdin nil check in api command by @dgageot in #1688
- Close the session by @dgageot in #1686
- Fix A2A agent card advertising unroutable wildcard address by @dgageot in #1685
- Return error response for unknown tool calls instead of silently skipping by @dgageot in #1689
- Make /compact non-blocking with spinner feedback by @dgageot in #1687
- fix: show correct tool count in TUI when running in --remote mode by @dgageot in #1648
- Add documentation gh-pages by @dgageot in #1692
- Add the summary message as a user message by @rumpl in #1693
- Add more documentation by @dgageot in #1694
- Fix MCP tool calls with gpt 5.2 by @dgageot in #1696
- Fix issues found by the review agent by @dgageot in #1699
- Bump direct Go dependencies by @dgageot in #1703
- List valid versions in unsupported config version error by @dgageot in #1700
- Improve the Planner by @dgageot in #1705
- Improve error handling and logging in evaluation judge by @dgageot in #1706
- Persist tool call error state in session messages by @trungutt in #1711
- Bump Go to 1.26.0 by @dgageot in #1697
Full Changelog: v1.22.0...v1.23.0