This release improves error handling for model context overflow, adds external coding harness support, and includes numerous TUI fixes and performance optimizations.
What's New
- Adds external coding harness agents that delegate coding tasks to external coding CLIs
- Adds support for running
context: forkslash commands as sub-sessions instead of inlining them - Adds docker-agent kit staging in sandbox with skills and prompt files
Improvements
- Classifies overflow errors by kind to provide more specific error messages for different types of context window issues
- Optimizes session browser rendering to only render visible window rows for better performance with large session histories
- Improves shutdown safety by racing Wait() against deadline and calling ReleaseTerminal on timeout
- Updates Gemini adapter to forward stream chunks that carry only UsageMetadata for accurate token counting
Bug Fixes
- Fixes URL clicks in TUI by properly handling mouse events
- Fixes crash prevention by not notifying on click if the agent didn't change
- Fixes deadlock in TUI exit safety net and race conditions in shutdown handling
- Fixes auto-scroll blocking user scroll in long elicitation dialogs
- Fixes MCP tool name prefix stripping in callTool functionality
- Fixes OpenAI strict mode support for Notion and Jira MCP tools with gpt-5
- Fixes user_prompt dialog to open scrolled to top and respect user scrolling
- Fixes keychain prompts in tests by using in-memory token store
- Fixes MCP OAuth handler to drop stray callbacks and respond with proper HTTP status codes
Technical Changes
- Bounds three previously-unbounded caches to prevent memory growth on long sessions
- Uses SSRF-safe HTTP client for remote skills registry
- Honors Cache-Control headers properly in skills caching
- Extracts lrucache package and bounds unbounded caches
- Refactors model override into runAgent request body for atomic model selection
- Updates Grok example to use grok-4.3 model
- Treats wezterm as a terminal that handles shift+enter properly
- Adds clean task to remove generated binary
- Updates various dependencies including Anthropic SDK, AWS Bedrock runtime, and Docker CLI
What's Changed
- docs: update CHANGELOG.md for v1.61.0 by @docker-read-write[bot] in #2822
- modelerrors: make overflow errors more specific by @trungutt in #2818
- Add .cache to .gitignore by @rumpl in #2827
- Treat wezterm as a terminal that knows how to handle shift+enter by @rumpl in #2825
- Don't notify on click if the agent didn't change by @rumpl in #2824
- tui: Fix URL clicks by @vvoland in #2823
- feat: add external coding harness agents by @rumpl in #2826
- perf(tui): only render visible session rows in /sessions dialog by @dgageot in #2830
- docs: document allow_private_ips option and SSRF protection in fetch tool by @dgageot in #2833
- fix(tui): bound previously-unbounded caches to prevent OOM on long sessions by @dgageot in #2831
- Misc Security fixes by @dgageot in #2820
- fix: use in-memory token store in tests to avoid OS keychain prompt by @dgageot in #2836
- fix MCP tool name prefix stripping in callTool by @dgageot in #2837
- chore(examples): remove shebang lines and executable bits by @dgageot in #2838
- docs(memory): fix incorrect default database path placeholder by @kenijkawada in #2835
- fix(tui): user_prompt dialog opens scrolled to top and respects user scrolling by @dgageot in #2843
- feat(mcpcatalog): hide disable / reset_auth tools when no server is enabled by @dgageot in #2840
- fix(tui): restore terminal on Ctrl-C when bubbletea shutdown stalls by @dgageot in #2842
- fix(examples): update grok example to use grok-4.3 by @dgageot in #2846
- chore: add clean task to remove generated binary by @dgageot in #2847
- test(server): make TestAttachedServer_DeleteSessionStopsEventStream more robust by @dgageot in #2845
- chore: bump direct Go dependencies by @dgageot in #2849
- fix(openai): support Notion and Jira MCP tools with gpt-5 strict mode by @dgageot in #2839
- fix(gemini): forward stream chunks that carry only UsageMetadata by @kenijkawada in #2848
- docs+config: surface the two env-variable expansion syntaxes (#2615) by @dgageot in #2851
- feat(skills): run
context: forkslash commands as sub-sessions by @dgageot in #2850 - refactor(api): fold model override into runAgent request body by @dgageot in #2852
- feat(sandbox): docker-agent kit, gateway allowlist, and assorted --sandbox fixes by @dgageot in #2844
New Contributors
- @kenijkawada made their first contribution in #2835
Full Changelog: v1.61.0...v1.62.0