fix(ci): raise max_turns to 100 so weekly maintenance can finish - #115
Merged
Merged
Conversation
The 2026-09-07 Claude Maintenance run failed with 'Claude reported a successful result after 68 turns, exceeding the configured maximum of 60'. The agent completed its work; claude-code-action failed the run purely for crossing the cap, so the maintenance output was discarded. Maintenance drives five tasks in one invocation and has outgrown 60 turns. Raise this repo's own cap to 100. The public defaults in profiles/_base.yml and template/githubai.yml are unchanged.
bamr87
marked this pull request as ready for review
September 12, 2026 15:58
Contributor
|
Verdict: no blockers, no important issues — sound, self-contained config fix. Findings: 0 blocker, 0 important, 1 nit.
What I checked from the review focus list:
Semver classification: patch (internal/operational change to this repo's own dogfooding config; no public API — workflow names, inputs, schema keys, or template paths — is touched). Note: this PR was already merged ( |
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.
Problem
Queue candidate 2:
bamr87/githubai·.github/workflows/claude-maintenance.yml· signalfailing.The weekly scheduled run fails. Recent history:
The two clusters are different bugs. The July–August failures were auth:
That was fixed — Aug 24 and Aug 31 went green. The current failure is unrelated and new.
Root cause
Run 34092704491, step
Run maintenance with Claude, after 8m17s:The agent finished its work and reported success.
claude-code-actionthen failed the run solely because 68 > the--max-turns 60it was launched with, so a completed maintenance pass was thrown away and reported red.The cap traces back to
.github/githubai.yml:This is not an agent that ran away.
claude-maintenance.ymldrives five tasks in a single invocation —docs_drift,todo_sweep,dependency_report,stale_nudge,health_report— each costing severalgh/Grep/Readround trips, plus the mandatory dedupe search before filing anything. As the repo grew, that workload crossed 60 turns. 68 for five tasks is proportionate; the cap simply sits below the job's real cost.Fix
Raise this repo's own cap to 100 in
.github/githubai.yml— 47% headroom over the observed 68, so ordinary growth does not re-break it next quarter.Deliberately not changed:
profiles/_base.yml(max_turns: 50) andtemplate/githubai.yml— these are the framework's public API for consuming repos. This failure is about this repo's own workload, so the override belongs in this repo's config, not in the defaults every consumer inherits.claude.max_turnsis a single repo-wide scalar consumed by all fiveclaude-*.ymlworkflows; there is no per-task override inload-config, so the repo config is the correct and only knob.No
continue-on-error, no retry: the run failed for a real reason and the reason is being removed.Expected impact
timeout-minutes: 45, which is untouched and remains the real backstop — the 68-turn run took 8m17s, so even 100 turns lands around 12 minutes, well inside it.Verification
Config-only change; the value flows through
actions/load-configunmodified (load_config.py:245writesclaude.max_turnsstraight to the output).tests/test_load_config.pyalready covers repo-config override ofclaude.max_turns. The real proof is the next scheduled run (cron: 17 6 * * 1) or aworkflow_dispatch; worth dispatching once from this branch rather than waiting a week.Links