feat: add catalog-aware Codex max effort support - #20
Merged
Merged
Conversation
BohnBawerick
force-pushed
the
fm/fm-codex-max-effort
branch
from
August 30, 2026 01:56
b62b515 to
f846341
Compare
…read's nonzero incomplete verdict while retaining output assertions. `tests/fm-procevent.test.sh`, `tests/fm-bearings-board-render.test.sh`, `bin/fm-lint.sh`, and `git diff --check` pass. Serial 8 was a transient runner failure and passed six local runs
BohnBawerick
force-pushed
the
fm/fm-codex-max-effort
branch
from
October 2, 2026 19:28
0a42bec to
48b50ae
Compare
…e assertion to match nested path metadata output and added fm-codex-catalog-lib.sh to the synthetic remote-root fixture. Both affected test files pass locally. Bash syntax and git diff checks also pass
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
Update Codex max-effort handling so supported models such as gpt-6-astra receive model_reasoning_effort="max", unsupported catalog cases warn instead of silently downgrading, and spawn, relaunch, documentation, bootstrap validation, dispatch validation, and regression tests are covered. Use the installed Codex catalog at ${CODEX_HOME:-~/.codex}/models_cache.json. Do not support Codex ultra or alter other harnesses. Finish with a non-draft PR and green CI.
What Changed
maxeffort during bootstrap and typed dispatch, passmodel_reasoning_effort="max"for supported models, and warn when launch or recovery omits unsupportedmaxsettings.Risk Assessment
✅ Low: Captain, the catalog validation now rejects malformed containers and multiple documents while preserving supported max-effort handling and warning-based fallback.
Testing
Inspected the target diff and runbook, drove isolated real Herdr and Codex sessions for supported max, missing-catalog spawn and relaunch, malformed catalogs, and forbidden ultra, then ran seven focused behavior suites. Every driven scenario passed. The terminal-facing path has pane transcripts and generated launch-command evidence; it has no browser or graphical UI to screenshot.
GPT-6-Astra max; Supported max launch command containsmodel_reasoning_effort="max".GPT-6-Astra default.codex:maxand dispatch resolution exiting 2 before selection.codex:ultra.Evidence: Supported max launch command
Source: Supported max launch command
Evidence: Running Codex max TUI
Source: Running Codex max TUI
Evidence: Missing catalog warning and downgrade
Source: Missing catalog warning and downgrade
Evidence: Missing catalog relaunch warning
Source: Missing catalog relaunch warning
Evidence: Malformed catalog rejection
Source: Malformed catalog rejection
Evidence: Codex ultra remains unsupported
Source: Codex ultra remains unsupported
Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
.agents/skills/harness-adapters/references/harness/codex.md- branch carries 6 commit(s) that exist on your local main branch but were never pushed to origin/main; these may be unintended bundled work (proposed PR changes 24 file(s)):tests/fm-procevent.test.sh,tests/fm-bearings-board-render.test.sh,bin/fm-lint.sh, andgit diff --checkpass. Serial 8 was a transient runner failure and passed six local runsConfirm these commits belong in this PR before approving, or manually separate the intended work onto origin/main before gating.
🔧 **Review** - 1 issue found → auto-fixed ✅
bin/fm-codex-catalog-lib.sh:13- The parser does not validate the catalog container types or require one top-level JSON document. For example,{"models":{"entry":{"slug":"gpt-5","supported_reasoning_levels":{"level":{"effort":"max"}}}}}is accepted because both[]?operators iterate object values. Multiple complete JSON documents are also treated as a stream. Bootstrap and dispatch can therefore approve Codex max, and spawn can pass it without warning, from a malformed cache. Require exactly one object with amodelsarray andsupported_reasoning_levelsarrays before extracting capabilities.🔧 Fix applied.
✅ Re-checked - no issues remain.
✅ **Test** - passed
✅ No issues found.
GPT-6-Astra max; Supported max launch command containsmodel_reasoning_effort="max".GPT-6-Astra default.codex:maxand dispatch resolution exiting 2 before selection.codex:ultra.Inspectedgit diff 71bd89cd2ba7819d71e647849c163e695371106b..68b48e7a8896b5f25b051af32c383aa28a054ffaand read the Herdr lab runbook.Livebin/fm-spawn.sh codex-max-live-s6 <project> --scout --harness codex --model gpt-6-astra --effort max --backend herdrinfm-lab-codexmaxrun2-1655524-17845.Live missing-catalog spawn throughfm-lab-codexwarn-1676662-13177.Livebin/fm-control.sh codex-max-warn-s4 relaunch --effort max --note ...against the recorded Herdr session.Detect-onlybin/fm-bootstrap.shagainst malformed max and forbidden ultra profiles.bin/fm-dispatch-resolve.sh <brief> --project validationagainst an object-shaped malformed catalog.tests/fm-spawn-dispatch-profile.test.shtests/fm-dispatch-resolve.test.shtests/fm-bootstrap.test.shtests/fm-secondmate-restart.test.shtests/fm-secondmate-liveness.test.shtests/fm-secondmate-sync.test.shtests/fm-secondmate-harness.test.shConfirmed all named Herdr lab sessions were removed andgit status --shortwas empty.✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.