This release adds several new TUI features including an interactive getting-started tour, an effort picker dialog, and Lean Mode support in the agent picker, along with stability fixes for startup, shutdown, and proxy recovery.
What's New
- Adds an interactive getting-started tour offered on first run and replayable on demand, implemented as a floating card that observes the real UI's message stream
- Opens an effort picker dialog when
/effortis used with no argument, instead of printing a usage hint - Adds a Lean Mode checkbox to the agent picker panel, toggleable with the
lkey or mouse click - Agent picker now discovers
~/.agentsconfig files (.yaml,.yml,.hcl) when no explicit list is given, in addition to the built-indefaultandcoderagents - Adds cross-process locking and atomic writes for SQLite memory storage
Bug Fixes
- Fixes toolset
Startduring startup so the sidebar tools spinner can no longer animate forever when Docker is wedged - Fixes TUI exit being blocked by a wedged resource cleanup
- Fixes
--recordproxy bypassing the configured models gateway, which caused HTTP 401 errors when gateway-managed credentials were expected - Hardens gateway forwarding in record mode against credential leakage
- Fixes proxy recovery after cooldown — previously a socket error would permanently latch the transport to direct connections for the lifetime of the process
- Fixes
/toolsdialog showing Go type names (e.g.*skills.ToolSet) instead of human-readable names for loader-created toolsets - Fixes telemetry incorrectly recording an error on a chat span after a successful LLM completion
- Fixes agent picker hardening: windowing, escapes, FIFO skip, sentinel, and description guard
- Keeps agent picker panel geometry stable and windowing math in sync
Technical Changes
- Fixes flaky frame synchronization in TUI test driver
sendSync - Fixes file descriptor double-close corrupting parallel tests in
TestListen_FD - Guards
fdOwnershipPinwith a mutex to fix a data race in server tests - Trims comments in the fallback transport
What's Changed
- test: fix flaky tuitest frame sync and TestListen_FD fd double-close by @dgageot in #3420
- fix: bound toolset startup and never block the TUI exit when Docker is wedged by @dgageot in #3423
- docs: update CHANGELOG.md for v1.97.0 by @docker-read-write[bot] in #3424
- feat(tui): open effort picker when /effort has no argument by @Sayt-0 in #3425
- fix: route --record proxy through the configured models gateway by @dgageot in #3428
- docs: sync documentation with recent merges by @aheritier in #3430
- feat(tui): interactive getting-started tour on first run, replayable on demand by @Sayt-0 in #3427
- fix: show proper toolset names in /tools dialog for loader-created toolsets by @dgageot in #3441
- feat(memory): add cross-process locking and atomic writes for sqlite by @yunasora in #3114
- fix(remote): recover proxy after cooldown instead of latching to direct by @trungutt in #3431
- telemetry: don't record error on chat span after successful LLM completion by @jedp-docker in #3281
- feat(picker): add Lean Mode checkbox to agent picker by @dgageot in #3443
- feat: agent picker discovers ~/.agents configs when no list is given by @dgageot in #3444
New Contributors
Full Changelog: v1.97.0...v1.98.0