Repository navigation
docs(jobs): maxRetries counts the retries after the first run - #4280
Conversation
#3412 made maxRetries the number of retries after the first run (maxRetries=3 allows 4 runs, pinned by JobHardenerSpec S9), but the background-jobs guide still said it counted total runs. The 4.1 and 4.2 guides and the AI jobs reference now match the code, and the log line for a job that runs out of retries reports how many times it ran. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Peter Amiri <peter@alurium.com>
|
Source APPROVE at e79a5f7. Verified maxRetries+1 semantics in every 4.1.x tag and current source, identical consumer/template copies, and no scheduling change. New wording specs are source assertions; existing S9 covers runtime attempt behavior. Final gate pending matrix 37221076048. |
Wheels Test Results216 679 tests 212 555 ✅ 1h 7m 45s ⏱️ Results for commit 59f4f03. ♻️ This comment has been updated with latest results. |
…es-wording Signed-off-by: Peter Amiri <peter@alurium.com> # Conflicts: # cli/lucli/templates/app/.ai/jobs.md # docs/consumer-ai/.ai/jobs.md
The check reads the background-jobs guide, which only the Wheels repository has, so it calls $requireRepoPath() first like the other repository-only specs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Peter Amiri <peter@alurium.com>
|
APPROVE at 59f4f03. The merge preserves both documentation changes and keeps the consumer/template copies identical. The guide read now has the matching $requireRepoPath guard; the production change remains limited to the failure-log count. Read all 32 result JSONs from matrix 37265788030 on this head: 518 bundles per leg, zero failures/errors. RequireRepoPathSpec is 4/4 Passed and JobRetryCountWordingSpec is 2/2 Passed on every leg, including Adobe 2025 + SQLite. No remaining blockers. |
Summary
maxRetriescounts the retries after the first run: a job withmaxRetries = 3runs up to four times. That has been the behaviour since #3412, which changed the retry check from<to<=on purpose ("maxRetries=3 now means 4 tries"), pinned byJobHardenerSpecS9 ("S9: maxRetries=3 allows 4 tries (retries after first fail)").The background-jobs guide was written before that (#3130) and still says
maxRetries"counts total attempts, not retries", with examples that are one run short. This PR fixes the docs, not the code.Changes
maxRetries=5example now runs at most six times (retries at about 4, 8, 16, 32 and 64 s), and the default3means up to four runs.docs/consumer-ai/.ai/jobs.mdand the identicalwheels newcopy gain one line:maxRetriescounts retries after the first run, so the default3means up to four runs.Job.cfc: the log line for a job that runs out of retries said "permanently failed after<maxRetries>attempts", one short of the real count. It now says "permanently failed after<runs>attempts (<maxRetries>retries)".jobs/JobRetryCountWordingSpecpins the log line and the guide wording; changelog fragment added.Note on Rails
Rails'
retry_on ..., attempts: Ncounts the total number of runs, first run included. Wheels'maxRetriesis one more than that by design (#3412), so a value copied from a Rails job runs once more in Wheels. The guide now states the Wheels meaning explicitly.Tests
JobHardenerSpecS9 unchanged).🤖 Generated with Claude Code