Repository navigation
feat(source-control): commit the legacy FAILs file to turn on FAIL index mode - #12558
Conversation
…dex mode verify-legacy-fails.json lists the 550 pr-verify FAIL verdicts uploaded before the FAIL index existed (since 2026-10-17, cut over at 09:16:56Z 2026-11-02), each with its verified origin run and head branch. With it loaded, the verdict reader judges a pull request from the FAIL index and this file instead of paging the whole artifact listing. Built from 15,783 pr-verify runs by owner-token reads paced under 1,800 per rate window, across checkpoint-resumed runs. No entry was uploaded before --since; the earliest is 2026-10-17T05:11:02Z. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VcupomBPg7kuobwLoNpxEW
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-review reviewed claude-review (code-review lane): no findings on What changed
Prior finding resolved: the
Not reviewed
Closing issues: none. The PR uses Path-scoped rules: no Manifests: no Spend: none. The change adds no paid resource and doesn't change run frequency. |
|
claude-security-review reviewed Security review: PR #12558 (
|
…not in _typos.toml _typos.toml is synced verbatim from melodic-software/standards, so a local [type] entry is dropped by the next sync. Both typos callers pass --force-exclude and read the typos step's exclude: line, which is where consumer-local exemptions live. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VcupomBPg7kuobwLoNpxEW
Refs: melodic-software/claude-code-plugins#12558 <!-- session: poteto --> ## Summary Adds `generated-data` to the reviewed `allowedInputs` of `melodic-software/ci-workflows/.github/workflows/pr-review-cli.yml` in `components/runner-policy/policy.json`. ## Fix melodic-software/ci-workflows#971 (merged) added the opt-in `generated-data` input. Without this entry, a caller that passes it fails `runner-policy` with "the reusable workflow call has inputs absent from its reviewed contract: generated-data" (seen on claude-code-plugins#12601). The input names a repository file listing generated data files the review skips. It carries no secret and does not affect runner routing. ## Verification - `node --test components/runner-policy/runner-policy.test.mjs`: 226/226 pass. ## Related - melodic-software/ci-workflows#971 (the input); melodic-software/claude-code-plugins#12601 (the caller opt-in, waiting on this through the sync). Same shape as #940. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01VcupomBPg7kuobwLoNpxEW Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Refs: #12302
Summary
This commits
verify-legacy-fails.json, the follow-up #12302 left. Committing it turns on the verdict reader's FAIL index mode. The reader then judges a pull request from its FAIL-index artifacts plus this file, instead of paging the whole repository artifact listing on every judgment. That listing grew to about 136 pages, its page count never settled against GitHub's live count, and it caused breaker trips and the queue cycling #12472 fixed.The file lists the 550 FAIL verdicts uploaded before the index existed: since 2026-10-17, cut over at 2026-11-02T09:16:56Z (#12302's squash commit plus the one-hour margin).
Fix
plugins/source-control/skills/babysit-prs/scripts/verify-legacy-fails.jsonholds 550 entries from 550 runs. Each entry records the run's verified origin and its verdict's head branch. ci-status's sparse checkout already names the file (pr-require-checks.yml:4982).babysit_verify_evidence.py legacy-fails(flags as perf(source-control): find pr-verify FAILs by exact-name index instead of the whole artifact listing #12302's Follow-up gives them), with--merge-sha 23dfa3fe38, from 15,783 pr-verify runs. Owner-token reads stayed under 1,800 per rate window, across checkpoint-resumed runs, with no rate-limit or breaker stop.actions/runs/{id}/artifacts, 6,495 reads in the last resumed run). A skip filter would roughly halve a rebuild. It is not built here: no rebuild is planned, and the file only shrinks as entries expire.--since. The earliest is 2026-10-17T05:11:02Z, the oldest unexpired FAIL perf(source-control): find pr-verify FAILs by exact-name index instead of the whole artifact listing #12302 measured (05:11Z). fix(source-control): refuse pre-since legacy FAILs and retry the FAIL index pre-read #12370'slegacy-failsrefuses this case. The file was built on the pre-fix(source-control): refuse pre-since legacy FAILs and retry the FAIL index pre-read #12370 code, so this check was applied to the output by hand.Verification
Reader._legacyloads the file: 550 entries, 550 live,LEGACY_FAILS_VERSION1.test_babysit_verify_evidence.py429 passed,test_babysit_verify_index.py41,test_babysit_merge_unattended.py298,test_babysit_lane_room.py75.failverdicts, and everycreated_atfalls betweensinceandcutover.sinceFAILs and in-flight runs refuse the build, and a re-run of an old run executes main's write-verdict.mjs, which throws on a FAIL without the index.verify:unreadable).Follow-up owed after merge
The review lanes count this file as read through
scripts/review-generated-data.txt(#12601), because they cannot read 184 KB whole. That exemption is needed only for this one-time add: the loader checks structure, not content, so a later large rewrite must not skip review. Once this PR is on main, remove the entry fromscripts/review-generated-data.txt. The removal PR opens, held withdo-not-mergeuntil this one merges, as soon as #12601 is on main.Related
ci(review): count the legacy FAILs file as read through generated-data #12601: lists this file for the review lanes' generated-data input.
perf(source-control): find pr-verify FAILs by exact-name index instead of the whole artifact listing #12302: added FAIL index mode.
fix(source-control): refuse pre-since legacy FAILs and retry the FAIL index pre-read #12370: the
legacy-failspre-sinceguard.fix(source-control): keep a queued lanes App entry whose verdict the sweep cannot read #12472: the queue cycling this ends at its source.
🤖 Generated with Claude Code
https://claude.ai/code/session_01VcupomBPg7kuobwLoNpxEW