fix(bin): raise grok reasoning-effort ceiling to xhigh - #2429
Open
rqms40 wants to merge 3 commits into
Open
Conversation
Grok 1.0.3+ accepts xhigh, high, medium, and low. The old 0.2.99 ceiling silently dropped xhigh from the launch command and rejected it in crew-dispatch.json. Raise the static tables to xhigh and keep max omitted. grok 1.0.x is the supported floor; homes still on 0.2.x will fail a launch that requests xhigh rather than degrade.
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.
Intent
Make xhigh reachable for grok so a crewmate spawn resolved to grok / grok-4.6 / xhigh actually passes --reasoning-effort xhigh to the launch command, and so config/crew-dispatch.json holding {"harness":"grok","model":"grok-4.6","effort":"xhigh"} validates cleanly in bootstrap with no CREW_DISPATCH: invalid.
Firstmate previously recorded grok's reasoning-effort ceiling as high from grok 0.2.99. That is now wrong. Verified 2026-08-15 on grok 1.0.3 (1a29d5bc12): --reasoning-effort accepts exactly xhigh, high, medium, low. grok --model grok-4.6 --reasoning-effort bogus prints "use one of: xhigh, high, medium, low". grok --model grok-4.6 --reasoning-effort xhigh --print succeeds. The same accepted set was reconfirmed on the installed grok 1.0.4 (d846eb93d9). max stays unsupported for grok: grok 1.0.3/1.0.4 reject it, and firstmate must keep omitting max from grok launch flags and keep rejecting grok:max in crew-dispatch validation.
The captain's standing preference is that crewmates run grok-4.6 at xhigh. Previously that value was accepted into task metadata and then silently dropped from the launch command, and config/crew-dispatch.json could not even hold it.
Known sites: bin/fm-spawn.sh grok case in the effort-flag mapping and its surrounding comment; bin/fm-bootstrap.sh jq dispatch-profile validator grok effort list; .agents/skills/harness-adapters/SKILL.md launch-profile axes table row for grok and any prose repeating the old 0.2.99 ceiling; any docs/ prose or tests/ expectation that encodes grok's accepted effort set (tests/fm-bootstrap.test.sh and tests/fm-spawn-dispatch-profile.test.sh at minimum).
Design decision already made: statically raise the ceiling to xhigh and treat grok 1.0.x as the supported floor. Do not invent CLI-probe machinery. Existing adapters are static tables; bootstrap must validate crew-dispatch.json even when grok is not installed.
Accepted review decision: the harness-adapters grok launch-profile row must state that firstmate now passes --reasoning-effort xhigh unconditionally and that a home still on grok 0.2.x therefore fails the launch instead of silently omitting the flag. The PR body must also say plainly that homes still on grok 0.2.x are affected. Do not add a grok-only version floor to README.md; README records no per-harness version floor for any harness, and that migration notice belongs in the PR body plus the harness-adapters row.
Acceptance criteria:
Do not change Herdr lifecycle behavior. Do not write a project's AGENTS.md unless this produced durable project-intrinsic knowledge (it should not).
What Changed
bin/fm-spawn.shnow emits--reasoning-effort xhighfor grok instead of dropping the flag, so a spawn resolved to grok / grok-4.6 / xhigh actually launches at xhigh;maxis still omitted.bin/fm-bootstrap.sh's crew-dispatch validator acceptsxhighin grok's effort list, soconfig/crew-dispatch.jsonholding{"harness":"grok","model":"grok-4.6","effort":"xhigh"}validates withoutCREW_DISPATCH: invalid;grok:maxstill fails validation..agents/skills/harness-adapters/SKILL.mdrecords the accepted set asxhigh, high, medium, low, verified 2026-08-15 on grok 1.0.3 (1a29d5bc12) and reconfirmed on 1.0.4 (d846eb93d9), replacing the old 0.2.99highceiling; the grok tests intests/fm-bootstrap.test.shandtests/fm-spawn-dispatch-profile.test.shflip from asserting xhigh is rejected/omitted to asserting it is accepted and threaded through.Migration note: firstmate passes a requested
xhighthrough unconditionally rather than probing the installed CLI, so grok 1.0.x is now the supported floor. A home still on grok 0.2.x that requestsxhighwill fail the launch on--reasoning-effort xhighinstead of silently omitting the flag — such homes should upgrade grok or pick a lower effort.Risk Assessment
✅ Low: The change is a well-bounded static table update at the single shared effort-flag boundary plus its jq validator, with matching behavioral tests and documentation, no stale ceiling references left anywhere in the repo, and
maxstill correctly rejected for grok.Testing
Ran the two repo test files that encode grok's effort tables (tests/fm-spawn-dispatch-profile.test.sh and tests/fm-bootstrap.test.sh) — both green after working around two pre-existing host-PATH shadowing failures via the suite's supported FM_TEST_BASE_PATH knob, with no test edits. On top of that I produced product-level evidence for each acceptance criterion: a before/after capture of the literal launch command firstmate sends into the crewmate pane (base commit recorded effort=xhigh in meta but emitted no --reasoning-effort; target commit emits
grok --always-approve --model 'grok-4.6' --reasoning-effort 'xhigh' ...), a before/after bootstrap run over a temporary captain-local config/crew-dispatch.json holding the grok/grok-4.6/xhigh profile (base printed CREW_DISPATCH: invalid - invalid effort: grok:xhigh, target validates cleanly and reports the active default), and confirmation that max is still omitted from the launch and still rejected by dispatch validation. I also exercised the installed grok 1.0.4 directly, which accepts the exact flag string firstmate now emits and reports its accepted set as xhigh/high/medium/low, matching the updated harness-adapters row. This is a shell/CLI change with no rendered surface, so the end-user evidence is CLI transcripts rather than screenshots. All temp homes, symlink farms and the gitignored config/ dir created during testing were removed; the worktree is clean. Per the phase rules I did not run bin/fm-lint.sh or the full suite.Evidence: Launch command firstmate sends for grok/grok-4.6/xhigh (before vs after, plus max omission)
=== BEFORE (base commit f1a4af4) === meta: ... harness=grok ... model=grok-4.6 effort=xhigh launch: env -u CURSOR_AGENT -u CURSOR_INVOKED_AS grok --always-approve --model 'grok-4.6' "$('.../bin/fm-operational-input.sh' encode launch-brief < '.../brief.md')" === AFTER (target commit fc1e9b0) === meta: ... harness=grok ... model=grok-4.6 effort=xhigh launch: env -u CURSOR_AGENT -u CURSOR_INVOKED_AS grok --always-approve --model 'grok-4.6' --reasoning-effort 'xhigh' "$('.../bin/fm-operational-input.sh' encode launch-brief < '.../brief.md')" === max stays omitted from the grok launch command (target commit) === meta: ... model=grok-4.6 effort=max launch: env -u CURSOR_AGENT -u CURSOR_INVOKED_AS grok --always-approve --model 'grok-4.6' "$(... encode launch-brief < '.../brief.md')"Evidence: bootstrap validating a captain-local config/crew-dispatch.json (before vs after, plus grok:max)
# config/crew-dispatch.json (temporary copy): { "default": {"harness": "grok", "model": "grok-4.6", "effort": "xhigh"} } === BEFORE (base commit f1a4af4) === CREW_DISPATCH: invalid config/crew-dispatch.json - invalid effort: grok:xhigh === AFTER (target commit fc1e9b0) === BOOTSTRAP_INFO: crew dispatch active config/crew-dispatch.json BOOTSTRAP_INFO: crew dispatch default: grok/grok-4.6/xhigh (no CREW_DISPATCH: invalid line = validates cleanly) === max stays unsupported for grok (target commit) === # {"default": {"harness": "grok", "model": "grok-4.6", "effort": "max"}} CREW_DISPATCH: invalid config/crew-dispatch.json - invalid effort: grok:maxEvidence: Installed grok 1.0.4 accepted reasoning-effort set
$ grok --version grok 1.0.4 (d846eb93d9) [stable] $ grok --model grok-4.6 --reasoning-effort bogus --print hi Error: --effort/--reasoning-effort: unknown effort level 'bogus'; use one of: xhigh, high, medium, low $ grok --model grok-4.6 --reasoning-effort max --print hi Error: --effort/--reasoning-effort: unknown effort level 'max'; use one of: xhigh, high, medium, low # the flags firstmate now emits, handed to grok verbatim: $ grok --always-approve --model grok-4.6 --reasoning-effort xhigh --print "reply with the single word: ok" ...okEvidence: Evidence harness used to capture the real launch command (fake tmux, real fm-spawn.sh)
Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
bin/fm-spawn.sh:1394- Passing--reasoning-effort xhighunconditionally makes grok 1.0.x a hard launch floor: a home still on grok 0.2.x now fails the spawn outright (0.2.x rejects xhigh withuse one of: high, medium, low) instead of launching with the flag omitted. This is the explicitly authorized design decision ("statically raise the ceiling to xhigh and treat grok 1.0.x as the supported floor. Do not invent CLI-probe machinery"), and the required migration clause is recorded at .agents/skills/harness-adapters/SKILL.md:130. Noted only so the behavior change is visible; no action needed in source.tests/fm-bootstrap.test.sh:513- Pre-existing, host-dependent fragility in tests/fm-bootstrap.test.sh (unrelated to this change): test_orca_backend_gates_orca_tool_only_when_selected and test_network_phase_partitions_the_run assumeorcaandnodeare absent from the system PATH. On this host /usr/bin/orca (the GNOME screen reader) and /usr/bin/node exist, so both tests fail with the default BASE_PATH. Worked around for this run via the test's own FM_TEST_BASE_PATH knob pointed at a sanitized /usr/bin copy; no test files were modified.bash tests/fm-spawn-dispatch-profile.test.sh(all 31 cases pass, incl.test_grok_threads_xhigh_reasoning_effortandtest_grok_omits_invalid_max_reasoning_effort)FM_TEST_BASE_PATH=<sanitized /usr/bin without orca,node> bash tests/fm-bootstrap.test.sh(all 28 cases pass, incl.test_crew_dispatch_validationcovering grok:xhigh accepted / grok:max flagged)Manual before/after launch capture: drove realbin/fm-spawn.sh --harness grok --model grok-4.6 --effort xhighwith a fake tmux recording the literalsend-keys -lpayload, against both the base-commit script and the fixed oneManual: same spawn harness with--effort max, confirming no--reasoning-effortreaches the launch commandManual:FM_HOME=<temp home> FM_BOOTSTRAP_VERBOSE_FACTS=1 bin/fm-bootstrap.shwith a temporaryconfig/crew-dispatch.json={"default":{"harness":"grok","model":"grok-4.6","effort":"xhigh"}}, run against base and target bootstrap; temp home deleted afterwards, worktree left cleanManual: same bootstrap run with"effort":"max"to confirmCREW_DISPATCH: invalid ... invalid effort: grok:maxstill firesgrok --version-> grok 1.0.4 (d846eb93d9)grok --model grok-4.6 --reasoning-effort bogus --print hiand... --reasoning-effort max --print hi->use one of: xhigh, high, medium, lowgrok --always-approve --model grok-4.6 --reasoning-effort xhigh --print "reply with the single word: ok"-> completes successfullygit status --porcelainafter cleanup (empty; the test-created gitignoredconfig/dir and all temp dirs removed)✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.