This release adds significant new capabilities including a Kanban board TUI, NVIDIA provider support, parallel tool dispatch, and numerous compaction and context-window improvements, along with several important bug fixes.
What's New
- Adds
docker agent board, a full-screen Kanban TUI for orchestrating multiple agents across pipeline stages (Dev → Review → Push → Done), each on an isolated git worktree - Adds NVIDIA (NIM / build.nvidia.com) as a supported model provider via a new
nvidiaalias - Adds
/contextslash command with a categorized context-window breakdown dialog, including a stacked usage bar and copy-to-clipboard action - Adds the ability to list and drop attached files directly from the
/contextdialog - Adds
wait_background_jobtool to the shell toolset, blocking until a background job finishes instead of requiring polling - Adds shell background job recall, routing completed job output back to active or idle sessions
- Splits background jobs into a separate
background_jobstoolset, leaving the shell toolset with only synchronous shell tools - Adds
unix://URL support in the remote MCP client for connecting over Unix domain sockets - Adds a Lean Mode checkbox to the agent picker (
--agent-picker), toggled withlor mouse click - Adds
compaction_thresholdas a configurable key per agent (and per model), replacing the previously hardcoded 0.9 constant - Adds per-sub-agent context accounting in the TUI sidebar and agent inspector
- Runs tool dispatcher calls in parallel, serializing only interactive confirmations
- Extends the HCL
file()function with an optional variables argument to render the file as a template - Groups the
/sessionsbrowser by current workspace instead of showing a flat global list
Improvements
- Reconciles the compaction token estimator with provider-reported usage, using exact counts where available and a session-calibrated correction for unreported content
- Wraps lean TUI tool calls in a padded themed box for improved rendering
- Supports steering (sending messages while the agent is running) in the lean TUI, with pending messages displayed in muted styling
Bug Fixes
- Fixes compaction replacing session history with a stale reply when the summarization model returns an empty response
- Fixes compaction outcome reporting to accurately reflect applied/skipped/failed status on the completed event
- Fixes whitespace-only compaction summaries being applied instead of treated as a no-op
- Fixes
--yoloflag not being applied correctly on session resume, causingsafer_shellto prompt despite the flag - Fixes Gemini models failing with MCP tools that declare non-string enum values in their JSON schemas
- Fixes session
Message.AgentNamesilently dropping on load when reading files using the legacyagentNameJSON key - Fixes database migration rollback errors being silently swallowed
- Removes Anthropic Files API usage
- Updates stale Anthropic model IDs in examples to current IDs
Technical Changes
- Standardizes
agent_nameJSON tag onMessage.AgentName, replacing the previousagentNamecamelCase tag - Shares git-branch detection logic between the lean and full TUIs via a new
pkg/gitbranchpackage - Refactors lean TUI model into cohesive subsystems (usage/tool trackers, transcript type) with no functional change
- Replaces context-smuggled emitters with an explicit
tools.Runtimehandle in the tool dispatcher
What's Changed
- docs: update CHANGELOG.md for v1.98.0 by @docker-read-write[bot] in #3445
- feat(tui): group /sessions browser by current workspace by @Sayt-0 in #3446
- docs: point rel=canonical at the docs.docker.com mirrored pages by @Sayt-0 in #3447
- feat(config): make the auto-compaction threshold configurable (compaction_threshold) by @Sayt-0 in #3448
- feat(compaction): reconcile token estimator with provider-reported usage by @Sayt-0 in #3449
- feat(mcp/remote): support unix:// URLs in remote MCP client by @maxcleme in #3453
- ci: build and publish docker-agent sandbox templates by @dgageot in #3454
- feat(tui): add /context command with a categorized context-window breakdown by @Sayt-0 in #3458
- refactor(leantui): decompose the model into cohesive subsystems by @rumpl in #3455
- refactor: share git-branch detection between the lean and full TUIs by @rumpl in #3457
- fix: box lean TUI tool calls by @rumpl in #3460
- fix: remove Anthropic Files API usage by @rumpl in #3466
- feat(hcl): render file() as a template when given variables by @rumpl in #3464
- feat(shell): add wait_background_job tool by @simonferquel-clanker in #3463
- docs: sync documentation with recent changes by @aheritier in #3468
- feat: run tool dispatcher calls in parallel by @rumpl in #3467
- feat: add shell background job recall by @rumpl in #3461
- feat: add NVIDIA provider as supported model provider by @Priyanshu-sde in #3421
- fix: support steering in lean TUI by @rumpl in #3474
- Tweak the golang dev by @rumpl in #3472
- Split background jobs into separate toolset by @rumpl in #3473
- docs: document lean TUI steering support by @aheritier in #3475
- feat(tui): list and drop attached files from the /context dialog by @Sayt-0 in #3465
- docs: switch github.io site from Jekyll to Hugo by @Sayt-0 in #3459
- feat: add docker agent board, a Kanban TUI for orchestrating agents by @dgageot in #3451
- fix: update stale Anthropic model IDs in examples by @dgageot in #3480
- chore: bump direct Go dependencies by @dgageot in #3481
- fix: backfill SafetyPolicy on session resume with --yolo by @melmennaoui in #3482
- chore: standardize agent_name JSON tag in Message struct by @Piyush0049 in #3471
- fix: handle tx.Rollback error in database migrations by @Piyush0049 in #3476
- fix: compaction data loss on empty summary + honest compaction outcome reporting by @dgageot in #3470
- fix(session): accept legacy agentName JSON key when unmarshaling Message by @dgageot in #3483
- fix(gemini): stringify non-string enum values in tool schemas by @Sayt-0 in #3485
- feat(tui): per-sub-agent context accounting in the TUI by @Sayt-0 in #3486
New Contributors
- @Priyanshu-sde made their first contribution in #3421
- @Piyush0049 made their first contribution in #3471
Full Changelog: v1.98.0...v1.99.0