fix(spawn): enforce exact reasoning effort for harness launches - #1993
Open
coreldh wants to merge 5 commits into
Open
fix(spawn): enforce exact reasoning effort for harness launches#1993coreldh wants to merge 5 commits into
coreldh wants to merge 5 commits into
Conversation
… both focused regressions 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
Ensure fm-spawn never records a requested reasoning effort unless its selected harness launches with that exact effort, or refuse before metadata and launch. Codex CLI 0.147.0 was empirically verified to accept model_reasoning_effort=max for gpt-5.6-luna, so Codex must emit max rather than silently omit or remap it. Apply the same fail-closed invariant to lower-ceiling and no-effort-flag adapters, without changing config/crew-dispatch.json, and publish only through no-mistakes. Kun retains merge authority.
What Changed
fm-spawn, including Codexmax, with fail-closed refusal before metadata and launch for unsupported adapter levels.config/crew-dispatch.jsonunchanged.Risk Assessment
✅ Low: The authorized fixes now align dispatch validation, spawn behavior, documentation, and Muse regressions with the fail-closed effort invariant; the remaining duplicated effort lists are mechanically consistent and do not create a demonstrated reachable defect.
Testing
All focused suites completed with exit 0, demonstrating Codex max emission and fail-closed unsupported-effort refusal before metadata/launch; bootstrap also produced its terminal validation result.
Evidence: Focused regression evidence
Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
🔧 **Review** - 3 issues found → auto-fixed ✅
bin/fm-spawn.sh:1305- The new Codex branch accepts and emits max at fm-spawn.sh:1305, but the shared dispatch validator still rejectscodex:maxatbin/fm-bootstrap.sh:1005. A dispatch-selected Codex max request therefore cannot reach fm-spawn; update the earliest shared validation boundary if dispatch profiles are required to express this newly supported effort. This conflicts with the required criterion that Codex must emit max.bin/fm-spawn.sh:1325- Muse max now correctly refuses instead of mapping toultraat fm-spawn.sh:1325, buttests/fm-muse-harness.test.sh:255still requires--reasoning-effort 'ultra'and will fail against the new fail-closed contract. Update that regression to assert refusal before metadata and launch..agents/skills/harness-adapters/SKILL.md:151- The edited harness guidance still contains the obsolete rule at .agents/skills/harness-adapters/SKILL.md:151 that fm-spawn records unsupported effort in metadata and omits the launch flag. That directly contradicts the required fail-closed invariant and the newly updated adapter table; replace it with the refusal-before-metadata behavior.🔧 Fix: Fixed dispatch validation and Muse fail-closed regression
✅ Re-checked - no issues remain.
🔧 **Test** - 2 issues found → auto-fixed ✅
tests/fm-muse-harness.test.sh- Muse fixture could not execute: available bash is Mach-O and exits 137 before detection.tests/fm-bootstrap.test.sh- Bootstrap test was interrupted without a terminal summary.bash tests/fm-spawn-dispatch-profile.test.shbash tests/fm-muse-harness.test.shbash tests/fm-bootstrap.test.sh(interrupted)🔧 Fix: Muse fixtures now use executable Perl ancestry and both focused regressions pass
✅ Re-checked - no issues remain.
bash tests/fm-muse-harness.test.shbash tests/fm-spawn-dispatch-profile.test.shbash tests/fm-bootstrap.test.shVerifiedconfig/crew-dispatch.jsonis unchanged in the target diff.✅ **Document** - passed
✅ No issues found.
🔧 **Lint** - 1 issue found → auto-fixed ✅
🔧 Fix: Suppress intentional Perl interpolation ShellCheck warnings
✅ Re-checked - no issues remain.
✅ **Push** - passed
✅ No issues found.