Patch release 0.2.112: resume sessions by title, define hooks in config TOML, fleet version pinning, safer sandbox/env controls, and grok-4.5 as the default model.
Changelog
[new] Resume sessions by title as well as ID. grok --resume / -r (TUI and headless) accepts a session ID, or a title for the current directory (case-insensitive). A single manually renamed match wins among duplicates; otherwise Grok errors and lists the matching IDs. UUID-shaped values are always treated as IDs — scripts should keep using IDs.
[new] Define hooks directly in config layers (config.toml, managed_config.toml, requirements.toml) with [[hooks.<Event>]] tables matching the JSON hook schema. Layers combine additively; /hooks-list labels each entry by origin (for example managed: or user:).
[new] CLI version pinning under [cli]: soft updater bounds (minimum_version, maximum_version) and hard startup bounds (required_minimum_version, required_maximum_version), each with env overrides that can only tighten. Bounds merge across layers by tightening only.
[new] Custom models support query_params (query string on every request) and env_http_headers (header values resolved from environment variables at client build). Both also inherit from [model_providers.<id>] when a model does not set its own.
[new][shell_environment_policy] controls which environment variables tool subprocesses inherit (inherit, secret-pattern excludes, exclude / include_only, and forced set values), so secrets in the parent shell are not exposed by default once you configure a policy.
[new] Sandbox profiles workspace, read-only, and strict write-protect user-global hook sources (~/.grok/hooks/, hooks-paths, and absolute targets) while keeping them readable, blocking symlink retargeting of those paths.
[new] Subagent frontmatter mcpInheritance (all, none, named, or except) controls which parent-connected MCP servers a child inherits. Plugin agents still cannot declare their own mcpServers, hooks, or bypassPermissions in frontmatter.
[new]/tutorial (aliases /tour, /onboarding) opens a short onboarding topic list — first prompt, context, navigation, slash commands, worktrees, plan mode, customization, and switching from another agent tool.
[new]grok plugin marketplace add --force skips the reachability probe (for hosts only reachable on VPN).
[changed] Default model and web-search model examples are now grok-4.5 (replacing grok-build / grok-4.20-multi-agent in docs and sample config).
[changed]grok doctor / /doctor covers terminal, clipboard, color, input, notification, and sandbox issues, with clearer automatic fixes (grok doctor fix, /doctor fix) and updated shell completions.
[changed]grok plugin marketplace remove accepts a marketplace name, git URL, or local path.
[changed] While a turn waits on background work, the status line shows that sending a message interrupts immediately; silent wake failures surface as “Turn failed” so standing instructions do not die quietly.
[changed] Confirmed clipboard copies toast briefly (Copied!); unverified OSC 52 or clipboard-unreachable paths name the backup file so you can recover the text.
[changed] Plugins, permissions, agent-mode, and terminal-support guides rewritten for marketplace workflow, org distribution, always-approve / auto modes (including ACP _meta.yoloMode / autoMode), and doctor-first troubleshooting.
Under the hood
Completions for bash, zsh, fish, elvish, and PowerShell updated for resume-by-title, doctor wording, marketplace --force, and remove-by-source.
minimum_version is now a soft anti-downgrade floor for the updater only; use required_minimum_version when old builds must refuse to start. grok update and grok --version remain available outside the hard range so an install can recover.
ACP session _meta documents yoloMode and autoMode for per-session permission policy in SDKs and agent servers.
Upgrade notes
If you relied on minimum_version to block startup of older builds, switch that floor to required_minimum_version (or set GROK_REQUIRED_MINIMUM_VERSION). Soft minimum_version no longer exits the process.
New sessions default to grok-4.5 in sample config and docs; set [models] default (and web_search if needed) if you want a different built-in or custom model.
Prefer session IDs with -r / --resume in scripts; title matching is for interactive convenience after /rename.