Releases: docker/docker-agent
Release list
v1.111.0
This release adds a new scheduler toolset, inline Mermaid diagram rendering, model switching in the lean TUI, project config autodiscovery, and a range of bug fixes and performance improvements across the agent, TUI, and server.
What's New
- Adds a built-in
schedulertoolset withcreate_schedule,list_schedules, andcancel_scheduletools, enabling agents to schedule instructions to run once at a time, after a delay, or on a recurring interval - Adds prompt cache miss warnings via an opt-in
warn_on_cache_missuser setting that emits notifications when cached input tokens are absent after the first session response - Adds inline Mermaid diagram rendering in the TUI
- Adds model switching (
/model) to the lean TUI and shares fuzzy model search between the lean and full TUIs - Adds autodiscovery of
docker-agent.yaml,docker-agent.yml, anddocker-agent.hclproject config files for no-argument localdocker agent run - Surfaces background-job elicitation (user-input) requests in the TUI, ensuring each request opens exactly one dialog regardless of which runtime delivers it
- Makes a custom
base_urlon a model automatically implybypass_models_gateway: true, removing the need to set it explicitly
Improvements
- Improves session cost details in the TUI: aligns layout, color-codes cost percentages per message, groups averages together, and puts "Total" on its own line
- Speeds up model switcher credential discovery by deduplicating credential names and resolving lookups concurrently, reducing model-picker latency
- Parallelizes toolset startup and prefetches the MCP catalog off the load critical path, reducing agent startup time
Bug Fixes
- Fixes glob wildcard matching in permissions so
*and?span path separators (/) in argument values such as file paths and URLs - Fixes a bug where setting
defer_all: trueon a toolset caused the toolset's customInstructionsto be permanently dropped from the agent's context - Fixes
SafetyPolicynot persisting across turns, causing users to be re-prompted for tool approvals they had already opted into - Fixes background elicitations over the API so requests from concurrent background jobs are replayable and answerable instead of being auto-declined
- Fixes Anthropic cache breakpoints exceeding the hard limit of 4 when deferred tools are present, which caused API errors at runtime
- Fixes the TUI editor not regaining focus after external editing (
Ctrl+G), which caused Enter to route to the transcript instead of sending the composed message - Fixes the scheduler schema so
type: scheduleris accepted in agent config files (was previously rejected by JSON schema validation) - Fixes foreground elicitations being delivered twice into the app event stream
- Fixes a mutex unlock in the scheduler's
setRuntimemethod to usedeferfor safer lock release - Fixes VCR cassette path normalization for portable prompt-file matching
- Fixes CI workflow YAML indentation that caused all CI runs to fail before any job could start
Technical Changes
- Adds
MapSlicefan-out helper in the concurrent utilities package and uses it for parallel toolset operations - Serializes interactive OAuth flows across toolsets to prevent concurrent conflicts
- Brings the documentation portal to WCAG 2.1 AA conformance across light and dark themes and adds a pa11y-ci CI gate to maintain it
- Adds new documentation pages for the scheduler toolset, sandbox templates, custom commands, user settings, context and compaction guide, and fixes stale command syntax in the Named Commands docs
What's Changed
- docs: update CHANGELOG.md for v1.110.0 by @docker-read-write[bot] in #3665
- fix: repair CI workflow YAML and failing AgentsMd e2e test on main by @dgageot in #3666
- feat(tools): add "scheduler" toolset to run instructions on a time or recurring interval by @dwin-gharibi in #3632
- fix(config): add scheduler toolset to agent-schema.json type enum by @aheritier in #3670
- feat: custom base_url implies bypass_models_gateway by @dgageot in #3667
- feat: add prompt cache miss warnings by @rumpl in #3671
- Improve session cost details by @rumpl in #3672
- perf: speed up model switcher credential discovery by @rumpl in #3673
- Add model switching to the lean TUI by @rumpl in #3674
- feat(tui,app): surface & correlate background-job elicitations (#3584) by @aheritier in #3624
- chore: bump go-isatty, openai-go, and libopenapi by @dgageot in #3675
- ci: bump golangci-lint-action to v9.3.0 and fix DeferMutexUnlock lint offense by @dgageot in #3676
- ci: bump pinned actions to latest same-major versions by @dgageot in #3677
- feat(server): session-scoped elicitation sink for API/server runtimes (#3584) by @aheritier in #3625
- Render Mermaid diagrams inline by @rumpl in #3679
- fix(server): surface background elicitations over API by @Sayt-0 in #3678
- fix(teamloader): preserve deferred toolset instructions by @Piyush0049 in #3680
- fix(permissions): match glob wildcards across path separators by @parveshsaini in #3605
- docs(agents): fix stale command syntax and sub_agents claim in Named Commands by @aheritier in #3684
- docs(sandbox): document Docker Sandboxes integration and published sbx templates by @aheritier in #3682
- docs: surface orphan pages and add compaction, commands, and user-settings docs by @aheritier in #3683
- fix(docs): WCAG 2.1 AA accessibility remediation for the docs portal by @aheritier in #3687
- fix(tui): refocus the editor after external editing so Enter sends the content by @dgageot in #3690
- Implements the path-aware, two-tier documentation accessibility CI gate by @aheritier in #3691
- feat(run): autodiscover project agent config by @HajimohammadiNet in #3681
- perf: parallelize toolset startup and prefetch MCP catalog by @dgageot in #3688
- fix(anthropic): keep cache breakpoints within Anthropic's limit of 4 with deferred tools by @dgageot in #3692
- fix(docs): render --link-hover on light-mode callout-link hover by @aheritier in #3693
- build(deps): bump the pip group across 1 directory with 2 updates by @dependabot[bot] in #3697
- fix(session): persist SafetyPolicy across turns by @trungutt in #3685
New Contributors
- @parveshsaini made their first contribution in #3605
- @HajimohammadiNet made their first contribution in #3681
Full Changelog: v1.110.0...v1.111.0
v1.110.0
This release adds dynamic MCP HTTP headers, new shell safety policies, per-model custom pricing, and cache-stable dynamic prompts, along with fixes for elicitation delivery and session cost tracking.
What's New
- Adds dynamic MCP HTTP headers via a header factory, enabling context-aware HTTP header resolution instead of static headers fixed at startup
- Adds a
safe-autosafety policy for shell operations, providing a middle ground between prompting for every tool call and--yolomode; safe calls beyond shell are auto-approved under this policy, with an opt-insafermode available viaapprove-saferresume - Adds an optional
costblock to model configuration, allowing explicit per-model token pricing for custom, locally-hosted, or uncatalogued models - Adds opt-in cache-stable dynamic prompts (
cache_stable_promptsuser setting), persisting frozen instruction snapshots and appending chronological updates when trusted context changes
Bug Fixes
- Fixes elicitation requests from concurrent background jobs being silently dropped and blocking the requesting handler indefinitely
- Fixes session cost dropping after compaction (e.g., from $49 to $12) by keeping cost monotonic across compaction and preserving cost accounting across reload
What's Changed
- feat: implement dynamic MCP HTTP headers via header factory by @Piyush0049 in #3583
- fix(runtime): reliable, correlation-safe, non-blocking elicitation delivery (#3584) by @aheritier in #3587
- docs: update CHANGELOG.md for v1.109.0 by @docker-read-write[bot] in #3661
- Add opt-in cache-stable dynamic prompts by @rumpl in #3662
- fix(session): keep cost monotonic across compaction by @Sayt-0 in #3663
- feat(safer_shell): add safe-auto safety policy by @trungutt in #3647
- feat(config): declare explicit per-model token pricing with cost by @dgageot in #3664
Full Changelog: v1.109.0...v1.110.0
v1.109.0
This release fixes permission scoping bugs in sub-sessions, adds deferred tool loading, and includes several improvements to session reliability and the settings window.
What's New
- Adds cache-safe deferred tool loading, tracking deferred tool load points in the shared runtime and translating them into native OpenAI tool-search and Anthropic tool-reference messages
- Adds embedder seams for code-built teams in
embeddedchat, allowing callers to assemble agents in code without requiring a YAMLAgentSourceor pulling the full toolset and provider registries at link time - Adds more settings in the settings window
Improvements
- Refactors the TUI confirmation dialog to accept a narrow
ConfirmationSessionStateinterface, allowing embedders to supply session state without depending on a concrete*service.SessionState
Bug Fixes
- Fixes permission scoping between parent and child sessions, preventing sub-sessions from back-propagating
ToolsApprovedandPermissionsto the parent (scope escalation bug) - Fixes tool-approval chain precedence in the permission override and dispatch pipeline
- Fixes
teamloaderto propagate the session working directory to toolsets, resolving a silent drop ofWithWorkingDirfor tools such asshellandfilesystem - Fixes
teamloaderto restorerunConfig.WorkingDirafterLoad - Fixes a race condition by locking access to session title, token, and cost fields through
Session.mu - Fixes the
runForwardinginvariant
Technical Changes
- Fixes formatting for
gofumptandgci - Updates stale YOLO tests and restores branch cloning
- Adds eval test coverage for container interruption on cancellation
- Fixes
TestForceAskOverridesYoloModehanging on CI
What's Changed
- docs: update CHANGELOG.md for v1.107.0 by @docker-read-write[bot] in #3652
- docs: update CHANGELOG.md for v1.108.0 by @docker-read-write[bot] in #3653
- test(eval): cover container interruption on cancellation by @Sayt-0 in #3649
- refactor(tui): let embedders supply the confirmation dialog's session state by @dgageot in #3654
- feat(embeddedchat): add embedder seams for code-built teams by @dgageot in #3655
- fix: correct Decide precedence and remove sub-session scope escalation by @Piyush0049 in #3542
- Add more settings in the settings window by @rumpl in #3656
- fix(teamloader): propagate session working dir to toolsets by @trungutt in #3657
- Add cache-safe deferred tool loading by @rumpl in #3658
- fix(session): lock title and usage scalar access by @Sayt-0 in #3659
Full Changelog: v1.108.0...v1.109.0
v1.108.0
Maintenance release with dependency updates.
Full Changelog: v1.107.0...v1.108.0
v1.107.0
Maintenance release with dependency updates.
Full Changelog: v1.108.0...v1.107.0
v1.103.0
This release polishes the agent picker UI, adds context-usage gauge warning states, improves config handling, and expands sandbox template tooling.
What's New
- Adds warning and compacting states to the context-usage gauge: color escalates (orange ≥75%, red ≥95%) as usage approaches the auto-compaction threshold, and displays "compacting…" while a compaction runs (applies to both the main TUI sidebar and lean TUI status line)
- Installs the latest
docker-mcpplugin in the sandbox template image so agents running in that environment have MCP tooling available out of the box - Adds a hint when a config key requires a newer schema version, guiding users to bump the top-level
versionfield instead of seeing a generic "unknown key" error - Adds
WithModelOptionspassthrough inteamloaderfor provider-agnostic HTTP transport wrapping
Bug Fixes
- Fixes config parsing failure when a hook event list is written as a single mapping instead of a sequence, which previously caused aliases and settings to be silently dropped
Technical Changes
- Refactors agent picker status bars to use
dialog.RenderHelpKeys, removing duplicated key-rendering logic - Extracts
fitHelpPairsand adds regression tests for details help wrapping - Polishes agent picker visuals: more compact cards (height 7 → 5) and tightened layout
- Simplifies the Dockerfile
What's Changed
- docs: update CHANGELOG.md for v1.102.0 by @docker-read-write[bot] in #3541
- docs: sync documentation with recent code changes by @aheritier in #3544
- style(tui): polish agent picker layout, cards, and status bars by @dgageot in #3543
- feat: install latest docker-mcp plugin in sbx template by @dgageot in #3545
- fix(config): accept a single mapping for hook event lists by @Sayt-0 in #3546
- feat(teamloader): add WithModelOptions passthrough for provider-agnostic HTTP transport wrapping by @simonferquel-clanker in #3549
- feat(config): hint when a config key requires a newer schema version by @dgageot in #3550
Full Changelog: v1.102.0...v1.103.0
v1.102.0
This release brings significant enhancements to the Kanban board (drag & drop, card management, shell access, sandbox fixes), a new ChatGPT provider, TUI layout customization, and numerous stability and usability fixes across the board, session management, and copy/paste experience.
What's New
- Adds a
chatgptprovider enabling sign-in with a ChatGPT Plus/Pro/Business account viadocker agent setup, without requiring anOPENAI_API_KEY - Adds
/customslash command to open a layout customization dialog for sidebar position and section visibility, with live preview and persistent settings - Adds a Section spacing selector to the
/customlayout dialog (Compact / Normal / Relaxed) - Adds warning and compacting states to the context-usage gauge, escalating color as usage approaches the compaction threshold and showing "compacting..." during compaction
- Adds
sshortcut on the board to open an interactive shell in the selected card's worktree - Adds digit keys 1–9 to move a board card directly to a numbered column, and adds mouse drag & drop to reposition cards
- Adds drag ghost preview showing where a dragged card will be inserted in the drop-target column
- Adds intermediate startup statuses (
starting→loading→attaching) on board cards to show boot progress - Adds project editing and reordering on the board: press
eor Enter on a project to rename it, with confirm-delete for destructive removals - Adds desktop notifications with hooks tip to the documentation, covering macOS and Linux examples for
on_user_inputandstopevents
Improvements
- Aligns TUI board card colors with the web board's status palette;
starting/loading/attachingrender in blue,runningin green, andpausedin a neutral color - Fades the dragged card immediately on the first mouse motion during a drag, providing instant visual feedback
- Clarifies the dirty-worktree removal prompt by listing the consequences of
yandNon separate lines before asking the question - Improves command categories in the help output
- Documents env vars needed for
notify-sendhooks in detached sessions (SSH, tmux, containers)
Bug Fixes
- Fixes board agent startup failures being silently discarded, leaving cards stuck in "starting" forever; failures are now surfaced on the card
- Fixes board control-plane sockets being placed inside the data dir, which prevented cards from starting in Docker sandboxes; sockets are now placed in the system temp dir
- Fixes board storing absolute paths that broke shared state in sandboxes; paths are now stored home-relative
- Fixes board not forwarding
--config-dir,--data-dir, and--cache-diroverrides to spawned agents - Fixes board path expansion, state load, and git repo check edge cases
- Fixes stale drag state and ignores wheel events mid-drag on the board
- Fixes a race condition where
RunSession/recallSessionclobbered the attached runtime's cancel, causingDeleteSessionto abort in-flight streams incorrectly - Fixes session DB being reset on transient open errors (e.g. Ctrl-C,
SQLITE_BUSY), which could silently wipe access to all past sessions - Fixes SQLite memory database opening before acquiring the advisory file lock, causing
SQLITE_BUSYraces under concurrent access - Fixes TUI selection copy being unreliable (random one-word copies, trailing padding, UI glyphs in clipboard) and improves copy button affordances
- Fixes redundant copy toast appearing alongside the inline "copied" flash when clicking a copy button
- Fixes emphasized text (e.g. "Esc to interrupt") being invisible on light themes due to incorrect color mapping
- Fixes global config file management: resolves a TUI panic on malformed config and several silent data-loss paths in the load/save cycle
- Fixes DNS resolution happening at construction time in
NewSSRFSafeTransport, which could slow agent startup or fail silently when DNS is unavailable - Fixes board reporting why a relaunch failed when attaching to an errored card, and drops per-card controller state without racing in-flight relaunches
- Fixes docs table of contents sidebar overlapping the footer on long pages by switching from
position:fixedtoposition:sticky
Technical Changes
- Renames
$BOARD_EDITORenvironment variable to$DOCKER_AGENT_BOARD_EDITOR; the old name is kept as a fallback for one release - Folds the ChatGPT sign-in flow into
docker agent setuprather than a separate command - Removes the agent catalog example from documentation
- Adds a lint rule flagging DNS resolution (
net.Lookup*/Resolver.Lookup*) in constructors
What's Changed
- docs: update CHANGELOG.md for v1.101.0 by @docker-read-write[bot] in #3506
- chore: bump direct Go dependencies by @dgageot in #3507
- fix(board): surface agent startup failures instead of silently doing nothing by @dgageot in #3508
- feat(tui): add /custom command to customize layout by @Sayt-0 in #3509
- fix(board): store paths home-relative so shared state works in sandboxes by @dgageot in #3510
- chore(board): rename $BOARD_EDITOR to $DOCKER_AGENT_BOARD_EDITOR by @dgageot in #3514
- feat(board): edit, reorder, and confirm-delete projects by @dgageot in #3513
- fix(board): run agent control-plane sockets outside the data dir so cards start in docker sandboxes by @dgageot in #3515
- feat(board): show intermediate startup statuses on cards by @dgageot in #3516
- feat(board): add
sshortcut to open a shell in the card's worktree by @dgageot in #3517 - fix(board): forward directory overrides to spawned agents by @dgageot in #3518
- fix(board): clarify dirty-worktree removal prompt with explicit consequences by @dgageot in #3520
- feat(board): align TUI card colors with web board status palette by @dgageot in #3521
- feat(board): move cards to any column with digit keys and drag & drop by @dgageot in #3522
- docs: sync documentation with recent main merges by @aheritier in #3519
- Improve the command categories by @dgageot in #3523
- feat(board): fade dragged card immediately and fix stale drag state by @dgageot in #3524
- fix: don't clobber attached runtime's cancel in RunSession/recallSession by @dgageot in #3525
- docs: add desktop notifications with hooks tip by @dgageot in #3526
- feat(provider): add chatgpt provider with ChatGPT account sign-in by @Sayt-0 in #3512
- fix(docs): switch .toc-aside from position:fixed to sticky in flex .main row by @dgageot in #3527
- fix(userconfig): harden global config file management by @Sayt-0 in #3529
- fix(tui): unreadable emphasized text on light themes by @Sayt-0 in #3530
- docs: document env vars for notify-send hooks in detached sessions by @Sayt-0 in #3531
- feat(board): preview the dragged card at its insertion point by @dgageot in #3532
- feat(tui): add section spacing setting to /custom layout dialog by @Sayt-0 in #3533
- fix(session): don't reset the session DB on transient open errors by @dgageot in #3534
- fix(tui): make selection copy reliable and improve copy affordances by @Sayt-0 in #3535
- fix(memory): open sqlite db under file lock to avoid SQLITE_BUSY races by @dgageot in #3538
- feat(tui): add warning/compacting states to the context-usage gauge by @Sayt-0 in #3537
- fix(tui): drop the redundant copy toast when the inline "copied" flash shows by @dgageot in #3539
- fix(ssrf): avoid DNS resolution at construction time in NewSSRFSafeTransport by @dgageot in #3540
Full Changelog: v1.101.0...v1.102.0
v1.101.0
This release adds a setup wizard for first-time model configuration, an opt-in auto theme that follows the terminal's light/dark background, and several usability and bug fixes.
What's New
- Adds an
Open Boardbutton (andbkeybinding) to the agent picker, allowing users to launch the Kanban board directly without first running an agent - Adds a
docker agent setupwizard, offered when no usable model is configured, guiding users through setting up a cloud API key or pulling a local model - Adds secret stores and a default config environment file source for environment configuration
- Adds an opt-in
autotheme that follows the terminal's light/dark background at startup and live (viasettings.theme: auto,--theme auto, or the/thememenu) - Exports
Pullfor pre-confirmed model pulls in the Docker Model Runner integration
Bug Fixes
- Fixes the agent picker's board button hit-zone math and improves layout on narrow terminals
- Fixes
--session-dbdefault so it correctly resolves relative to--data-dir, making sessions stored under a custom data directory visible - Fixes the theme file watcher that was lost in the tab-view rewrite, restoring live hot-reload of
~/.cagent/themes/*.yamlwhile the TUI is running
Technical Changes
- Adds a "Set Up a Model" getting-started tutorial covering both API key and local model setup paths
- Adds session DB wiring tests and documentation follow-ups for the setup wizard
What's Changed
- docs: update CHANGELOG.md for v1.100.0 by @docker-read-write[bot] in #3497
- feat(picker): add Open Board button to the agent picker by @dgageot in #3498
- feat(cli): add docker agent setup wizard, offered when no model is usable (phase 3 of #3442) by @Sayt-0 in #3499
- docs(getting-started): add Set Up a Model tutorial for API key and local paths by @Sayt-0 in #3502
- fix(cli): resolve session DB default against the data dir by @dgageot in #3503
- feat(tui): opt-in "auto" theme that follows the terminal light/dark background by @Sayt-0 in #3504
- fix(tui): rewire theme watcher lost in tab-view rewrite by @Sayt-0 in #3505
Full Changelog: v1.100.0...v1.101.0
v1.100.0
This release adds new diagnostic and configuration capabilities, hardens the board communication protocol, and improves error messaging for missing models and credentials.
What's New
- Adds
docker agent doctorcommand for diagnosing model provider credentials and agent readiness - Adds actionable errors when models or credentials are missing, with guidance on next steps
- Adds
hooks.ddrop-in directory (<config-dir>/hooks.d/*.yaml) andDOCKER_AGENT_CONFIG_DIRenvironment variable override for config directory - Adds heartbeat idle watchdog to abort hung event streams in
docker agent board - Adds session aggregate cost reporting to
GET /snapshot - Adds machine-readable error codes to 404 responses for unknown session snapshots
- Adds heartbeat keepalives to idle
/eventsSSE streams
Bug Fixes
- Fixes turn-boundary events being silently dropped when a subscriber's buffer overflows
Technical Changes
- Extracts lean TUI engine into a separate package and reorganizes UI components (status models, inline images, tool views, transcript, screen model) into a dedicated UI layer
- Adds documentation for
docker agent boardCLI reference and actionable model/credential errors in troubleshooting guide - Adds tmux usage guidance for running
docker agent boardin a sandbox environment
What's Changed
- docs: update CHANGELOG.md for v1.99.0 by @docker-read-write[bot] in #3487
- feat(cli): actionable errors for missing models and credentials (phase 1 of #3442) by @Sayt-0 in #3452
- feat(cli): add docker agent doctor for model and credential diagnosis by @Sayt-0 in #3489
- Lean tui UI split by @rumpl in #3492
- feat: harden control-plane protocol for reliable board communication by @dgageot in #3491
- docs: update CLI reference and troubleshooting for board and actionable errors by @aheritier in #3494
- Add tmux or running docker agent board in sbx by @dgageot in #3495
- feat: hooks.d drop-in directory and config-dir env override by @Sayt-0 in #3496
Full Changelog: v1.99.0...v1.100.0
v1.99.0
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