Skip to content

fix(report-lane-outcome): report max-turns as a sizing stop, not an infrastructure error - #946

Merged
kyle-sexton merged 2 commits into
mainfrom
fix/max-turns-annotation-7901
Nov 1, 2026
Merged

kyle-sexton merged 2 commits into
mainfrom
fix/max-turns-annotation-7901

Conversation

@kyle-sexton

Copy link
Copy Markdown
Member

Refs: melodic-software/claude-code-plugins#7901

Summary

The ci-workflows half of claude-code-plugins#7901 criterion 4: a lane run that used its whole --max-turns budget was annotated as an infrastructure error. It is a sizing stop: the work is bigger than one run allows.

Fix

report-lane-outcome annotates class=max-turns as <lane> stopped: turn budget used (<lane> exited with: <outcome> class=max-turns turns=N max-turns=M); the work is too big for one run, split it. The infrastructure-error text no longer lists max-turns exhaustion. The bare class=max-turns token and the exited with: phrase stay, so check-run readers parse it as before. README notes the wording.

Verification

  • node --test .github/actions/report-lane-outcome/outcome-step.test.cjs: 38/38 after merging main, including a sizing-stop case and a case that the infrastructure text drops max-turns.

Related

🤖 Generated with Claude Code

kyle-sexton and others added 2 commits October 26, 2026 00:00
…nfrastructure error

A run that went past its --max-turns cap now reads "<lane> stopped: turn
budget used (... class=max-turns turns=N max-turns=M); the work is too big
for one run, split it." The infrastructure-error text no longer lists
max-turns exhaustion. The bare class=max-turns token and the "exited with:"
phrase stay, so check-run readers parse it as before.

Refs: melodic-software/claude-code-plugins#7901

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-01T05:56:47.762648Z 11ed024 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions

github-actions Bot commented Nov 1, 2026

Copy link
Copy Markdown

claude-security-review reviewed 11ed024d3427c96c59deb96e0353e0964962fe70: 0 finding(s), 0 as inline comments.

No security issues found in this pull request.

The diff changes only the wording of the max-turns outcome annotation in .github/actions/report-lane-outcome/action.yml. It also updates the matching tests and README text.

  • The max-turns class still takes the core.error path, or core.notice for a handoff lane. Only the message text differs. The failure class output and review_failed are untouched.
  • The new message interpolates the same values the old one did (lane, outcome, tokens, before, reviewDetail). It adds no new untrusted input, no new token or secret handling, and no new injection surface.
  • No trust controls, merge holds, kill switch, token scopes or trusted-actor lists change.
  • No workflow, plugin manifest or instruction-surface file changes.
  • A repository-wide grep for the old "infrastructure error" and "max-turns exhaustion" strings found them only in the files this PR edits. Nothing else parses the annotation text.

Nothing was deleted or softened that a hook or validator relied on. The instruction-exception register was not consulted, since no instruction was removed.

critical-findings: 0

@github-actions

github-actions Bot commented Nov 1, 2026

Copy link
Copy Markdown

claude-review reviewed 11ed024d3427c96c59deb96e0353e0964962fe70: 0 finding(s), 0 as inline comments.

No findings. I read the full diff and the PR context, and grepped the repo for other consumers of the old annotation text. I did not run the tests; the PR's "38/38" is author-claimed and unverified.

  • Annotation branch (.github/actions/report-lane-outcome/action.yml:369-384): the new max-turns branch sits between the rate-limit branch and the generic infrastructure-error fallback. The level is unchanged: core.error, or core.notice on a handoff. The class=max-turns token and the exited with: phrase are kept, but the exited with: phrase now sits inside parentheses after <lane> stopped: turn budget used.
  • Other consumers of the text: a repo grep for "exited with" and "infrastructure error" found no code that matches on the old string. docs/lane-outcome.md:86 only shows the rate-limit example. The other workflows (intake-triage.yml, pr-review-security.yml) only list max-turns as a class token, which this PR leaves alone.
  • Fixtures: the four MAIN_OUTPUT fixtures that dropped "or max-turns exhaustion" match the new generic text. No other max-turns exhaustion string remains in the repo outside the PR's own context files.
  • New tests: both assert the new wording. One checks the lane-name-specific prefix with the turns=76 max-turns=75 tokens. The other checks that an error_during_execution result no longer mentions max-turns.
  • README: the one-line addition matches the behaviour.
  • PR body contract: the body has Refs: plus the Summary, Fix, Verification and Related sections. The Refs target is in claude-code-plugins, so no closing issue was supplied, and I checked no acceptance criteria.

No path-scoped rules besides pr-body-contract.md apply to the changed files, and no manifests changed.

@kyle-sexton
kyle-sexton added this pull request to the merge queue Nov 1, 2026
Merged via the queue into main with commit c41e345 Nov 1, 2026
29 checks passed
@kyle-sexton
kyle-sexton deleted the fix/max-turns-annotation-7901 branch November 1, 2026 06:17
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