Repository navigation
ci(targeted-verification): let "Re-run failed jobs" find the shard selection - #2001
Conversation
…lection The selection artifact was named with run_attempt, but "Re-run failed jobs" does not re-run the select job, so re-attempted shards looked for an artifact from the new attempt that was never uploaded and failed with "Artifact not found". Key the artifact by run_id only (earlier attempts' artifacts remain downloadable within the same run) and upload with overwrite: true so "Re-run all jobs" can replace it. Co-Authored-By: Claude Opus 5.5 (1M context) <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. |
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Artifact naming and verification .github/workflows/targeted-feature-verification.yml, tests/fixtures/targeted-feature-verification.test.ts |
The workflow uses github.run_id for artifact upload and download. Uploads enable overwrite: true. The test checks both artifact names and the overwrite setting. |
Priority:
Estimated code review effort: 2 (Simple) | ~10 minutes
Change: Bug fix
Possibly related PRs
- AgentWorkforce/relay#1345: Changes the feature manifest and verification procedures that contribute to the shard-selection artifact.
- AgentWorkforce/relay#1983: Changes feature manifest inputs read by the targeted verification workflow.
Merge Risk: 
Minimal · up to 9fcdb
-
The rerun artifact path is aligned and verified by the fixture; no merge-blocking risk remains.
Pre-merge checks: 
4 · 
1
-
Failed checks: 1 warning Passed checks: 4 passed-
Full details: Docstring Coverage
-
Explanation
No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 1 files.
-
Full details: Description check
-
Explanation
The description clearly explains the problem, fix, affected artifacts, and test results. However, it omits the required RelayFlow Proof section and does not provide the required change type or case values.
Resolution
Add the RelayFlow Proof section with a valid Change type and RelayFlow case. Use non-functional and n/a if runtime behavior is unchanged.
-
Finishing Touches
-
📝 Generate docstrings
-
- Commit to this branch
- Create a new PR
🧪 Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
A rabbit checks the run ID twice,
The artifact keeps its matching name.
It may be replaced on a rerun,
Then downloaded without a change.
The workflow test confirms the way,
And hops along its verified day.
Comment @coderabbitai help to get the list of available commands.
[Low impact] The PR appears safe to merge; no blocking issues remain.
|
Parse the workflow and check the upload/download steps directly so the overwrite assertion cannot match a different step. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Problem
targeted-feature-verification.ymluploads the shard selection astargeted-feature-selection-${{ github.run_id }}-${{ github.run_attempt }}from theselectjob, and eachFlows v2 sharddownloads the same name. Re-run failed jobs only re-runs the failed shards;selectsucceeded, so it is not re-run and nothing uploads an artifact for the newrun_attempt. Every re-attempted shard then fails at Download immutable selection withArtifact not found, so the only way to retry a flaky shard was to re-run the whole workflow.Fix
targeted-feature-selection-${{ github.run_id }}(norun_attempt) in both the upload and download steps. Artifacts uploaded by an earlier attempt are still listed for later attempts of the same run, so a re-attempted shard downloads the selection the originalselectjob produced.overwrite: true. With upload-artifact v4, uploading a name that already exists in the run is a 409 conflict, which would otherwise break Re-run all jobs (whereselectruns again). The selection is computed from the same base/head SHAs, so replacing it is equivalent.targeted-feature-plan-...-${{ github.run_attempt }}-<shard>) keeprun_attempt. Each attempt uploads its own, so they don't collide.overwrite: true.Test plan
npx vitest run tests/fixtures/targeted-feature-verification.test.ts -t "workflow|Re-run"passes🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Agent Relay sessions
claudesessiona5019981· opened viagh pr create· last active 2026-10-27