0.2.121 — dashboard turn summaries, session reattach without transcript replay, a dedicated /feedback pane, and a wide pass of TUI, session, and workflow reliability fixes.
Changelog
[new] Dashboard rows show a short summary of what the agent did in the previous turn.
[new] Clients can reattach to a running session without replaying the transcript, and can explicitly close sessions.
[new] /feedback opens a dedicated report box (Enter sends, Esc dismisses) instead of entering prompt mode.
[new] grok du (alias grok disk-usage) reports what ~/.grok uses on disk, including worktrees; supports --json.
[changed] When a subagent runs in the background, the parent agent is reminded to keep working on the original task.
[changed] The Extensions modal groups and sorts items alphabetically, with collapsible sections for Skills.
[changed] Grok no longer asks which project directory to use when launched from your home folder or other non-project directories.
[changed] Auto theme detection works over SSH and inside tmux sessions.
[changed] Voice and Finance tool cards render with icons and localized labels.
[changed] Markdown tables reflow inside cells on narrow panes instead of clipping the right border.
[changed] Permission prompts show the complete script clearly instead of dimmed fragments; long bash commands can be expanded with Ctrl-F.
[changed] /rewind rewinds conversation history only; file changes from removed turns are left as-is on disk.
[changed] Skills that collide with a built-in slash name stay invocable under a qualified name; the menu badges both rows.
[changed] Workflow parallel() panels use a host-configured concurrent-children cap (default 32) and queue the rest instead of launching huge batches at once.
[fix] MCP tools that return images no longer drop or corrupt screenshots when output is large.
[fix] Resuming a restored child session after a remote parent restore no longer fails with 404.
[fix] Remote session resume restores conversation only unless --restore-code is explicitly used.
[fix] Codebase restore no longer hangs on large or shallow git repositories.
[fix] The default branch is correctly detected for hand-initialized repos that lack origin/HEAD.
[fix] Disabled MCP servers that can still be re-enabled stay visible in the list.
[fix] Rapid send-now presses or messages sent while waiting on subagents no longer lose earlier queued messages; queued prompts stay visible and reachable.
[fix] Queued slash commands and images can be reordered in the queue pane.
[fix] Esc or the stop button reliably prevents background tasks from restarting the model after a cancel.
[fix] Login no longer skips when an invalid first-party API key is present in the environment.
[fix] Model picker and command palette work while reviewing a plan before approving.
[fix] Dashboard overlay no longer shows useless prev/next shortcuts when only one agent is present.
[fix] Dashboard navigation after /new correctly returns to the dashboard from an empty prompt; /delete returns to the dashboard when you delete a session opened from it.
[fix] Typing exit or quit in the dashboard exits the CLI instead of starting a new session.
[fix] Pinned prompt headers can be selected and copied with the mouse; CJK mouse selections include every character at the edges.
[fix] Tab and Esc behave consistently on every blocking card (question, permission, cancel-turn).
[fix] Enter in the slash command menu runs the highlighted command; session-only slash commands show a helpful message from the dashboard.
[fix] Mode indicator (plan/agent/ask) reflects the session’s actual mode after resume and transitions.
[fix] Resume search finds sessions by UUID even when they live in other directories.
[fix] API errors appear as clean banners instead of raw JSON dumps in the TUI.
[fix] Syntax highlighting in long diff lines stays correct when wrapped.
[fix] Auto recaps no longer appear in the middle of new turns or while busy.
[fix] Error messages in /btw side questions wrap fully.
[fix] /feedback no longer resets the composer input mode after the pane closes.
[fix] Exiting the CLI properly resets terminal modes even in minimal mode.
[fix] Grok retries more server errors during outages.
[fix] Forking very large sessions no longer uses many times the session file size in memory.
[fix] Exiting an empty session is instant even on slow networks.
Agent & tools
/feedback: bare /feedback opens a descriptive report pane; a message argument still sends immediately. Esc dismisses the pane and no longer leaves the composer stuck in a feedback input mode.
Skill / built-in name collisions: built-ins keep the bare name (for example /login); the skill remains available as /plugin-or-scope:name. The slash menu badges both; grok inspect and --json skill reports surface collidesWith / invocableAs.
Workflow concurrency: model-launched workflows still honor agent_budget; per-run concurrent children are bounded by a host-configured cap (default 32) via GROK_WORKFLOW_MAX_CONCURRENT_AGENTS, with related controls in GROK_MAX_CONCURRENT_SUBAGENTS and GROK_SUBAGENT_LIMIT_BEHAVIOR.
Session lifecycle: GROK_SESSION_EXIT_DRAIN_SECS tunes drain behavior on session exit; reattach and explicit close are supported for running sessions.
Permissions UX: full script text in permission cards; Ctrl-F expands long bash commands on the card.
Docs
Keyboard shortcuts: /feedback pane called out as the exception to the usual blocking-card keys; Esc steal-path no longer treats feedback as a composer mode.
Skills: collision rules, menu badges, and grok inspect / --json collision fields.
Sessions: /rewind semantics (history only); grok du / disk-usage report and reclaim guidance; storage notes no longer describe rewind as file snapshots.
Theming: accent_feedback removed from the accent token list.
Permissions: recognized tool-name list tightened (notebook-specific aliases dropped from the documented set).
Monitoring: startup metrics (grok_code.startup.total, phase_duration, timeout) documented with phases and auth_mode.
Under the hood
Package version bumped to 0.2.121 across pager, shell, and version crates.
Subagent/task admission and coordinator paths split out for queueing and spawn limits.
Permission manager broken into classification and reason helpers; permission analytics events added under telemetry.
Session search storage reworked (bootstrap/content/db) for more reliable resume lookup.
ACP version-mismatch handling and disk-usage reporting modules added in the pager.
New dependencies: heck, itertools.
Upgrade notes
/rewind behavior change: it truncates conversation history only and does not restore files on disk. Rely on git (or other VCS) if you need file-level undo.
Optional env knobs for subagent/workflow admission and session exit drain: GROK_MAX_CONCURRENT_SUBAGENTS, GROK_WORKFLOW_MAX_CONCURRENT_AGENTS, GROK_SUBAGENT_LIMIT_BEHAVIOR, GROK_SESSION_EXIT_DRAIN_SECS.
Remote resume stays conversation-only unless you pass --restore-code.
Building from source: refresh to the 0.2.121 crate set in Cargo.lock (pager/shell/version).