Tree sync for 1.0.3 (xai-org/grok-build): Grok 4.6 becomes the default model, mid-turn follow-ups can steer, and web_search gains domain policy controls.
Changelog
[new]Grok 4.6 is the default model (and the default for web search, image description, and session summary). It is SpaceXAI’s latest frontier model, with a 500k context window, backend search support, model fingerprint display, and configurable reasoning effort (xhigh, high default, medium, low).
[new][ui].follow_up_behavior: "queue" (default) still holds plain-Enter follow-ups until the turn ends; "steer" keeps the queue row visible and injects the follow-up mid-turn at the next tool/model safe gap.
[new][toolset.web_search] domain policy: allowed_domains (max 5) or excluded_domains (mutually exclusive; allowlist wins with a warning if both are set). Applies to backend-hosted search and the client-side fallback; a configured policy is authoritative and ignores the model’s per-call allowlist. Read at session start.
[new]StopCancelled hook event — fires instead of Stop when a turn ends without completing (user interrupt, declined/cancelled permission, --max-turns, no-progress bail-out, and related cases), with matchers on the cancel reason.
[changed]/session-info (/status, /info): click a row or drag to select and copy; hover highlights; c copies the session ID, y copies the whole block (same clipboard path as the rest of Grok, including grok wrap).
[changed]Hooks docs and behavior surface: clearer event cadences, SessionStart does not fire for a subagent’s own session, SessionEnd carries subagentType for child teardown, matcher coverage for StopCancelled, and a documented four-step resolve path (match → run handlers → apply decision → fail open).
[changed]Subagent spawning is dramatically faster when you have many sessions in ~/.grok.
[changed]TUI rendering automatically matches high-refresh displays (120 Hz+) for smoother scrolling and painting.
[changed]Grok 4.5 remains available; it is no longer labeled as the “new” frontier default.
Agent & tools
Default model IDs in shipped config/examples now point at grok-4.6 (default, web_search, and related roles).
web_search: optional allowlist/blocklist under [toolset.web_search]; empty/absent lists stay unbounded.
Mid-turn composer behavior is configurable via [ui].follow_up_behavior ("queue" | "steer"); keyboard-shortcut guidance documents both modes.
Hook lifecycle gains StopCancelled alongside existing Stop / StopFailure turn-end reporting; turn-end hook guidance covers cancelled vs completed turns and subagent filtering via subagentType.
Docs
shell-README model examples updated to grok-4.6.
Keyboard shortcuts: mid-turn follow-up section documents queue vs steer.
Configuration: follow_up_behavior; [toolset.web_search] domain policy and precedence notes.
Hooks: event table and matcher notes expanded (StopCancelled, session/subagent boundaries); “How a Hook Resolves”; idle/turn-end scripting guidance tightened.
Sessions: Session info tab copy UX (click, drag-select, c / y).
Under the hood
Session storage search gating and related tests (GROK_SESSION_SEARCH), including delete/evict and “search off builds no index” coverage.
Subagent lifecycle and attempt-runner paths; faster spawn behavior when ~/.grok holds many sessions.
Turn-end hooks and turn-report slot plumbing (including cancelled-turn / stop reporting and e2e coverage).
Pager/TUI follow-up behavior wiring for queue vs steer; high-refresh display matching.
Lockfile and tree metadata rolled forward with the sync (eb267feff131).
Upgrade notes
New sessions pick grok-4.6 unless you override [models] in config. Pin default / web_search (and related roles) if you need to stay on Grok 4.5.
[toolset.web_search] policy is loaded at session start — edit config before starting a session; mid-session edits do not apply.
If you rely on plain Enter only as “queue until turn end,” leave follow_up_behavior = "queue" (the default). Set "steer" only if you want mid-turn injection at safe gaps.
Hook authors: interrupted turns emit StopCancelled, not Stop. Portability note: StopCancelled is grok-specific.