- [new]
grok memory serveserves this user’s memory to local Grok processes over a Unix socket until idle. The default socket lives under the Grok home; its directory is created owner-only (0700) when missing and must stay owner-only. Pass--socketto choose another path. Completions for bash, zsh, fish, elvish, and PowerShell include the subcommand. - [new] Grove clones are listed, inspected, and removed through the worktree commands instead of Grok keeping its own clone registry.
grok worktree list(andlist --type clone) asks every running Grove daemon;showanddutake sizes from the daemon and never walk a clone or its store.grok worktree rmunmounts, forgets, and deletes the store in one daemon step;--keep-storeunmounts and forgets but leaves the store on disk as an orphaned store.gcnever touches clones. - [new]
memory_v2.daily_token_caplimits model tokens the memory server may spend for you in a rolling 24 hours (default20000000). Past the cap, capture pauses until the window frees; notes, edits, and forgets keep working. A remote cap from the settings service can lower it, never below1000000. - [changed] Grove worktree gc, rm, disk usage, and redirect cleanup go through the daemon that owns the worktree.
grok du --clean/--clean-orphanedandgrok worktree clean-artifactsrefuse unless a daemon is running.worktree showasks the daemon for backing and redirection sizes and printsunavailableif none answers.rmandgcnever guess at Grove storage: a daemon refusal is final;--forceonly drops Grok’s registry entry and leaves the directory and store untouched. Dry-run marks unsaved work (including reflog-only commits) or(removal refused: ...). - [changed] Hook
matchervalues follow Claude Code’s rules:*, empty, or omitted match everything; a string of letters, digits,_,-, spaces,,, and|is one name or a list of exact names; anything else is a regular expression (anchor with^/$for a whole-name match). Matchers that containmcp__are also tested against Claude Code’smcp__<server>__<tool>name, so an importedmcp__github__.*and a nativegithub__.*both select that server’s tools. - [changed] Hook handlers only honor
type,command,url,timeout, andenv. Non-empty Claude Codeiforargsskip the handler (enforced hooks still run).async,asyncRewake,shell,statusMessage, andheadersload but are ignored: the handler runs in the foreground with no extra shell, status line, or HTTP headers. Load errors go to the tracing log andload_errors; the Hooks tab omits skipped handlers. - [changed]
endpoints.feedback_base_urland theendpoints.trace_upload_*keys are pinnable. A path onendpoints.trace_upload_bucket(orGROK_TRACE_UPLOAD_BUCKET) is the object-key prefix for every upload (s3://example-traces/team-awritesteam-a/<session>/turn_<n>/...). Forgs://,GROK_TELEMETRY_GCS_BUCKETstill replaces the bucket URL even over a pin; its path becomes the prefix. - [changed] Grok refuses to start when
requirements.tomlcannot be read or parsed, or when an MDM payload cannot be decoded, even iffail_closedis false. Edited or unsigned~/.grok/requirements.tomlstill loads as user hooks unlessfail_closed = true.
Under the hood
Memory v2 capture, search, and writes run in a dedicated local memory server (usage ledger, idempotent RPCs, idle shutdown) instead of in the shell process; dreaming and consolidation are driven from that server. Grove clone stores, disk usage, reclaim, and redirect jail cleanup are daemon RPCs so Grok never walks a Grove mount. Managed-config loading on Darwin and MDM payloads fail closed when the file or payload is unreadable.
Upgrade notes
- For Grove worktrees and clones, start the owning daemon (
grove daemon) beforegrok worktree rm,gc,clean-artifacts, orgrok du --clean. Without it, those commands refuse rather than delete files themselves. Restart an older daemon if it cannot list clones. - If Grok will not start and names
requirements.toml, fix or delete that file; deployment sync rewrites~/.grok/requirements.tomlon the next successful start. - Heavy memory capture can pause for the rest of the 24-hour window after 20 million tokens unless you raise
memory_v2.daily_token_cap.