fix(queue): reconcile all overlapping duplicate siblings by claim-time election#4071
Conversation
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4071 +/- ##
=======================================
Coverage 93.65% 93.65%
=======================================
Files 384 384
Lines 35865 35865
Branches 13160 13160
=======================================
Hits 33589 33589
Misses 1618 1618
Partials 658 658
🚀 New features to boost your workflow:
|
|
Warning 🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨 ⏸️ Gittensory review result - manual review recommendedReview updated: 2026-07-08 03:32:56 UTC
⏸️ Suggested Action - Manual Review
Concerns raised — review before merging
Review context
Contributor next steps
Signal definitions
🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by Gittensory, a quiet PR intelligence layer for OSS maintainers.
|
903304b to
3ddeb7f
Compare
Motivation
linkedIssueClaimedAt, which allows a higher-numbered PR that claimed earlier to precede a lower-numbered PR. The live reconciliation previously only refetched lower-numbered siblings, leaving stale higher-numbered claimants in the cache and causing falseduplicate_pr_riskblockers and failed gates.Description
reconcileLiveDuplicateSiblingsinsrc/queue/processors.tsto consider all overlapping open siblings (any PR that shares a linked issue), instead of onlyother.number < pr.numbersiblings, and maintain the existing live-fetch + fail-open semantics.openand that unreadable fetches keep the cached row (no new spare on transient failures).test/unit/reconcile-live-duplicate-siblings.test.tsto add and adjust cases that cover higher-numbered overlapping siblings (live-closed and live-open), mixed lower/higher clusters, non-overlapping siblings, and the previously-covered lower-sibling scenarios.src/queue/processors.ts,test/unit/reconcile-live-duplicate-siblings.test.ts.Testing
git diff --checkwhich produced no trailing-whitespace or conflict-marker failures.npx vitest run test/unit/reconcile-live-duplicate-siblings.test.ts, but Vitest failed to transform modules and did not execute the tests due to an existing unrelated syntax/transform error in the currentsrc/queue/processors.tsaround thedeliveryId/job construction site, so the updated tests have not yet been validated in this branch.npm run test:cionce the transform error is resolved so coverage and gate requirements can be met.Codex Task