Skip to content

Release v3.35.0 - #214

Merged
atomantic merged 10 commits into
releasefrom
main
Aug 27, 2026
Merged

Release v3.35.0#214
atomantic merged 10 commits into
releasefrom
main

Conversation

@atomantic

Copy link
Copy Markdown
Owner

Highlights

  • ~effort=<level> now actually reaches codex and agy — before this, it silently killed them. Reasoning effort was passed to every reviewer as --effort <level>, a flag only claude and grok accept. codex and agy both reject it and exit non-zero before the review starts, so the reviewer's slot in the merge gate held a launch failure rather than a verdict.
  • The effort dispatch fails closed. The old shape assigned --effort generically then overrode it per agent, so any CLI without an explicit branch inherited the wrong flag — exactly how codex and agy broke. An unrecognized reviewer now gets no flag and keeps prompt-advisory effort.
  • /do:release verifies main actually reached release before reporting success, and recovers cleanly from interrupted runs.

Reasoning-effort carriers

Verified against the installed CLIs, not inferred from --help:

invocation result
codex --effort max … error: unexpected argument '--effort' found
agy --effort max invalid --effort "max" (valid: low, medium, high)
agy --model "Gemini 3.5 Flash (High)" --effort low --effort is not supported for model …
codex -c model_reasoning_effort=max … review --base main ✓ session reports reasoning effort: max
agy --model gemini-3.5-flash-low ✓ reports low
  • codex takes -c model_reasoning_effort=<level> (config override; no --effort exists at any level).
  • agy treats --effort as mutually exclusive with --model, which the loop always pins. Since the default model is itself an effort variant, agy~effort= failed 100% of the time at every level. Effort is a model variant there, resolved from the agy models roster at run time — nothing hardcoded, since the roster and level names change between releases.
  • A new effort-carrier table is the single statement of the rule, replacing the same fact restated in six places.

Release promotion (#211, #213)

/do:release confirms the source branch actually promoted to the target on the remote rather than trusting an exit status; interrupted runs preserve state across retries and checkpoint handoff is idempotent.

Test plan

  • npm test397 pass, 0 fail.
  • New table-driven contract test pins each agent's carrier and asserts no invocation passes a carrier its CLI rejects; a new reviewer CLI adds a row rather than a test.
  • The corrected codex form was run end-to-end against the real binary — its session header read reasoning effort: max, which the old form never reached.

atomantic and others added 10 commits August 27, 2026 06:50
fix: verify remote release promotion before success (#211)
…effort

The local-agent review loop built one blanket EFFORT_FLAG=(--effort <level>)
for every reviewer CLI. That flag is only valid for claude and grok:

  codex (0.149.1) has no --effort at any level -- not top-level, not on
  `review`, not on `exec` -- and exits 2 with "unexpected argument '--effort'
  found" before the review starts. Its reasoning effort is a config value,
  set via the top-level override -c model_reasoning_effort=<level>.

  agy (1.1.22) treats --effort as mutually exclusive with --model, and this
  loop always pins --model for agy. Every combination is rejected, at every
  level including ones agy itself offers. agy encodes effort as a model
  variant, so it is resolved by picking from the `agy models` roster at run
  time -- the roster and level names change between releases, so nothing is
  hardcoded.

Either way the reviewer never ran, and its slot in the merge gate was filled
by a launch failure rather than a verdict.

The deeper fix is the dispatch shape: effort was assigned generically and then
clobbered per agent, so the fallthrough for any CLI nobody wrote a branch for
was --effort. That fallthrough is what broke both. It is now a case over
REVIEW_AGENT that fails closed -- an unrecognized agent gets no flag and keeps
prompt-advisory effort, because a wrong flag is not a weaker review, it is a
non-zero exit. A new effort-carrier table replaces the same rule restated
across six places.
@atomantic
atomantic merged commit bbc89ec into release Aug 27, 2026
4 checks passed
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