feat: grok 1.0.30 epoch, sandbox log path, auth fail-fast (0.0.56) - #58
Merged
Merged
Conversation
…ontract grok 1.0.14 limited strict writes to ~/.grok/sessions and moved sandbox-events.jsonl there, so every managed run on 1.0.30 died at the handshake deadline while setup reported ready; the companion now snapshots the sessions log. strict also cannot refresh the six hour OIDC token anymore, and an expired token sends grok into up to 50 uncharged resubmits until the 570 second timeout; RUST_LOG now carries xai_grok_shell::session::acp_session::turn=warn and the first `auth 401 retry: no credential was sent` line stops the run as auth with a remedy to run grok once outside the sandbox. the companion gains the tested interval [1.0.14, 1.0.31) (below it task, review, and stop gate fail as setup with a persisted record, at or past it setup reports not ready with a verification pass advised), records grokVersion on every job, and reports OrbStack's non-admin docker socket, which upstream's runtime-socket deny list does not cover, as a setup advisory.
when the latest grok breaker failure carries grokVersion and it differs from the verified pin in verified-versions.json, the advisory ends with `; grok <installed> installed, contract verified on <pin>`, so a silent CLI auto-update shows up next to the failure it caused; the test reads the pin from the file instead of hardcoding it.
verified versions move to grok 1.0.30 on 2026-09-14 with the README pin; README, SECURITY, the grok contract, both rules files, and the doctor, runtime, and setup skills now say that strict writes only ~/.grok/sessions inside the Grok home, name the new event log location, and describe the tested interval with grokVersion, the auth fail-fast and its remedy, the runtime-socket refusal still present at 1.0.30 with the OrbStack and Docker Desktop repairs, the undenied OrbStack socket, and why headless --worktree stays out of managed briefs even though it creates a real worktree since 1.0.19; the forced RUST_LOG sentence and the rules manifest follow.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
summary
--sandbox strictwrites to~/.grok/sessionsand movedsandbox-events.jsonlthere, so every managed run since the 09-12 auto-update died at the handshake deadline assandboxwhile/grok:setupreported ready; the companion now snapshots the sessions logauthin seconds: strict cannot refresh the six hour token anymore, so grok resubmitted the request without a credential up to 50 times until the 570s timeout;RUST_LOGnow carriesxai_grok_shell::session::acp_session::turn=warnand the firstauth 401 retry: no credential was sentline stops the run with a remedy to run grok once outside the sandbox[1.0.14, 1.0.31)like the codex one (below it task, review, and stop gate fail assetupwith a persisted record; at or past it setup reports not ready with a verification pass advised), job records carrygrokVersion, the fusion breaker advisory names the installed build when it differs from the verified pin, and setup reports OrbStack's non-admin docker socket as a host advisory because upstream's runtime-socket deny list does not cover itplugins/grok/scripts/lib/grok-exec.mjs,plugins/grok/scripts/grok-companion.mjs,plugins/grok/scripts/lib/render.mjs, andplugins/fusion/scripts/breaker-check.mjs, whileplugins/fusion/rules-manifest.jsonis generatedtest plan
already verified
npm test-> 1153 tests, 1152 pass, 0 fail, 1 skippednode plugins/grok/scripts/grok-companion.mjs task --cwd <scratch dir> -- "Reply with exactly the single word PONG and nothing else.") ->donein 6s, the job record carriesgrokVersion: 1.0.30GROK_AUTH_PATHpointing at a fake expired credential in a directory strict can read but not write ->failure: authafter 38s instead of the 570s timeoutnode plugins/grok/scripts/grok-companion.mjs setupon this host ->compatibility: tested, host environment ready with the OrbStack socket advisoryRe-authenticating after 401 (request carried no credential)retries per run; one unsandboxedgrok -prefreshedauth.json, after which every strict run answered in 4 to 7sreviewer should verify
/grok:setupshowscompatibility: testedand a/grok:taskconsult answers instead of dying at the handshake/grok:taskconsult fails asauthwithin about a minute and prints thegrok -p okremedynotes