Skip to content

feat(bin): support max Codex reasoning effort - #2008

Open
escidmore wants to merge 2 commits into
kunchenguid:mainfrom
escidmore:fm/firstmate-codex-max-effort
Open

feat(bin): support max Codex reasoning effort#2008
escidmore wants to merge 2 commits into
kunchenguid:mainfrom
escidmore:fm/firstmate-codex-max-effort

Conversation

@escidmore

Copy link
Copy Markdown

Intent

Update Firstmate Codex effort support so an explicit effort: "max" in config/crew-dispatch.json is accepted and forwarded to Codex as -c 'model_reasoning_effort="max"'. bin/fm-bootstrap.sh must accept max for Codex dispatch profiles; bin/fm-spawn.sh must emit the Codex model_reasoning_effort="max" setting when selected effort is max; the focused dispatch regression test must prove max is forwarded rather than omitted; update the authoritative configuration and harness-adapter documentation plus stale cross-references. Preserve existing behavior for Claude, Pi, OpenCode, and unsupported effort values. Do not broaden this task to OpenCode effort support, update Codex model support, or change quota behavior. Use the installed Codex CLI fact that model_reasoning_effort=max is accepted, without provider or model-specific fallback.

What Changed

  • Accepts effort: "max" for Codex dispatch profiles.
  • Forwards max to Codex as model_reasoning_effort="max", with regression coverage proving it is not omitted.
  • Updates the authoritative launch-profile documentation and configuration cross-reference.

Risk Assessment

✅ Low: The narrow Codex-only change consistently updates validation, launch emission, regression coverage, and adapter documentation while preserving other harness behavior.

Testing

The focused spawn and bootstrap suites passed after clearing the runner’s BASH_ENV PATH shim. Manual evidence shows codex/gpt-5/max accepted, effort=max persisted, and -c 'model_reasoning_effort="max"' emitted; the installed Codex CLI accepted the setting with exit 0. The worktree remained clean.

Evidence: Codex max dispatch transcript
config/crew-dispatch.json:
{"rules":[{"when":"deep work","use":{"harness":"codex","model":"gpt-5","effort":"max"}}]}
fm-spawn output:
spawned manual-codex-max harness=codex kind=ship mode=no-mistakes yolo=off window=firstmate:fm-manual-codex-max worktree=/var/folders/zf/93mvgfyd5_d7l2mz6zw_0fbw0000gn/T//manual-codex-max.nqKpWL/wt
persisted meta:
harness=codex
model=gpt-5
effort=max
captured launch command:
codex --model 'gpt-5' -c 'model_reasoning_effort="max"' --dangerously-bypass-approvals-and-sandbox -c "notify=[\"bash\",\"-c\",\"touch '/private/var/folders/zf/93mvgfyd5_d7l2mz6zw_0fbw0000gn/T/manual-codex-max.nqKpWL/home/state/manual-codex-max.turn-ended'\"]" "$('/Users/host/.no-mistakes/worktrees/e693f38768bf/01KZK1XXK7KHH03AHRAVC0E14F/bin/fm-operational-input.sh' encode launch-brief < '/var/folders/zf/93mvgfyd5_d7l2mz6zw_0fbw0000gn/T//manual-codex-max.nqKpWL/home/data/manual-codex-max/brief.md')"
Evidence: Bootstrap max profile transcript
bootstrap exit=0
BOOTSTRAP_INFO: crew dispatch active config/crew-dispatch.json
BOOTSTRAP_INFO: crew dispatch rule: deep work -> codex/gpt-5/max
Evidence: Installed Codex CLI acceptance
command: codex -c 'model_reasoning_effort="max"' --help
exit=0
Codex CLI

If no subcommand is specified, options will be forwarded to the interactive CLI.

Usage: codex [OPTIONS] [PROMPT]
       codex [OPTIONS] <COMMAND> [ARGS]

Commands:

Pipeline

Updates from git push no-mistakes

✅ **intent** - passed

✅ No issues found.

✅ **Rebase** - passed

✅ No issues found.

✅ **Review** - passed

✅ No issues found.

✅ **Test** - passed

✅ No issues found.

  • BASH_ENV= rtk bash tests/fm-spawn-dispatch-profile.test.sh
  • BASH_ENV= rtk bash tests/fm-bootstrap.test.sh
  • BASH_ENV= rtk codex -c 'model_reasoning_effort="max"' --help
  • Isolated fm-spawn.sh dispatch with config-shaped Codex max profile and fake tmux capture
  • Isolated fm-bootstrap.sh validation with verbose dispatch facts
✅ **Document** - passed

✅ No issues found.

✅ **Lint** - passed

✅ No issues found.

✅ **Push** - passed

✅ No issues found.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant