Repository navigation
fix(source-control): give the verify reader's artifact listing its own timeout - #10465
Conversation
…n timeout The listing's pages share one timeout, gh's 60 s per-call default. At 7,522 artifacts (76 pages at 0.7 to 1 s each) a cold read ran out on page 66 and refused #10125 as verify:unreadable (run 40451037349). The listing now gets 300 s, and its 5xx retries still fit inside it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
claude-security-review reviewed I found no security issues in this pull request. critical-findings: 0 What changed: What I checked (
Trust-control lens: the change does not weaken, narrow or remove a merge hold. It does not widen who is trusted, token scope, the kill switch or the broker's inputs. Manifests: no Spend: the 300 s ceiling lets one listing read use more Actions runner time. That is subscription or prepaid usage, not a billing change, so it is not a hold. |
|
claude-review reviewed No findings on #10465 (head 47e5049). What I checked. I read the whole diff and the PR context. I also read
Manifest items. The diff touches no Closing issues. The PR says Cost. The change makes one listing read allowed to run longer, up to 300 s, which uses more prepaid runner time and API calls. It is not a billing change, so I set no hold. Notes, not findings.
|
Refs: #10125
Summary
The pr-verify verdict reader (
babysit_verify_evidence.py) lists every repository artifact throughbabysit_gh._run_pages, and every page shares one timeout: gh's 60 s per-call default. The repository now holds 7,522 artifacts, which is 76 pages at 0.7 to 1 s a page. On 2026-10-27 ci-status on #10125 (run 40451037349) ran out of time on page 66 and refused the PR asverify:unreadable:gh api -i repositories/1277265216/actions/artifacts?per_page=100&page=66 timed out after 0.281523s.pr-merge reads the same listing. On the 13:08Z tick (run 40508067887) its "Skip refusals whose inputs have not changed" step read 75 pages in about 51 s. Artifact uploads were 1,878 on 10-26 and 1,267 on 10-27 by 13:20Z. At that rate, pr-merge's cold listing should pass 60 s within about one to two days (estimate), and from then on every merge candidate in a tick would refuse.
Fix
LISTING_TIMEOUT_SECONDS = 300, for that one call; every other gh call keeps the 60 s default. At 1 s a page, 300 s reads about 300 pages, and that fits inside every reader's limit: ci-status's 20-minute job, pr-merge's 18-minute arm step and 45-minute merge job, and pr-feedback-dispatch's 10-minute job.Options considered:
name=filter. It matches one exact name. The reader has to see FAIL verdicts from other pull requests, and it cannot know those names in advance.TOO_OLD_DAYSis 80), so this would only slow the growth. The 90-day non-verdict artifacts are a separate question.Verification
AListingOfManyPagesReadsWhole, reads 76 pages at 1 s each. It fails on main with the production error (... --paginate --slurp timed out after 60s) and passes on this branch.test_babysit_verify_evidenceandtest_babysit_gh_rate_guardpass, 333 tests in all, on the branch merged with main after fix(pr-merge): arm a hold-path pull request a trusted person approved at its head #10397.Related
🤖 Generated with Claude Code