fix(review): give LOOPOVER_OPEN_PR_FILE_COLLISION a per-repo config override - #6035
Conversation
…verride
The open-PR file-path collision annotation (preflight/queue-health
enrichment showing which open PRs touch overlapping files -- display
only, never a close/gate blocker) was gated entirely by a single
fleet-wide LOOPOVER_OPEN_PR_FILE_COLLISION env var, with no per-repo
override -- the same shape as the other three config-as-code gaps
fixed in this series.
Adds openPrFileCollisionMode ("inherit" | "off" | "enabled", mirroring
duplicateWinnerMode/skipAutomationBotAuthors' shape) wired through
.loopover.yml settings.openPrFileCollisionMode, and a
resolveOpenPrFileCollisionEnabled helper (mirrors
resolveDuplicateWinnerEnabled) that the one call site in
processors.ts now goes through instead of reading the env var
directly. "inherit" (the default) reproduces today's exact fleet-wide
behavior; "off"/"enabled" let one repo opt out of (or into) the extra
GitHub API calls this enrichment costs, regardless of the global
default.
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Bundle ReportChanges will increase total bundle size by 267 bytes (0.01%) ⬆️. This is within the configured threshold ✅ Detailed changes
Affected Assets, Files, and Routes:view changes for bundle: loopover-uiAssets Changed:
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #6035 +/- ##
=======================================
Coverage 95.16% 95.16%
=======================================
Files 592 593 +1
Lines 46949 46955 +6
Branches 15003 15006 +3
=======================================
+ Hits 44679 44685 +6
Misses 1512 1512
Partials 758 758
Flags with carried forward coverage won't be shown. Click here to find out more.
|
|
Warning 🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨 ⏸️ LoopOver review result - manual review recommendedReview updated: 2026-07-15 07:24:39 UTC
⏸️ Suggested Action - Manual Review Review summary Nits — 4 non-blocking
Concerns raised — review before merging
📋 Copy for AI agents — paste into your coding agent
Review context
Contributor next steps
Signal definitions
🧪 Chat with LoopOverAsk LoopOver a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://gittensory.aethereal.dev/docs/loopover-commands 🧪 Experimental — new and may change. 🟩 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 LoopOver, a quiet PR intelligence layer for OSS maintainers.
|
Summary
#2653) -- preflight/queue-health enrichment showing which open PRs touch overlapping files, display-only, never a close/gate blocker -- was gated entirely by a single fleet-wideLOOPOVER_OPEN_PR_FILE_COLLISIONenv var, with no per-repo override anywhere. Same shape as the other three config-as-code gaps fixed in this series (fix(review): wire skipAutomationBotAuthors into .loopover.yml config #5986, fix(review): make size-gate file/line thresholds configurable #5997, fix(review): give LOOPOVER_DUPLICATE_WINNER a per-repo config override #6005).openPrFileCollisionMode("inherit" | "off" | "enabled", mirroringduplicateWinnerMode/skipAutomationBotAuthors' shape) wired through.loopover.yml settings.openPrFileCollisionMode.src/settings/open-pr-file-collision-mode.ts(isOpenPrFileCollisionEnabledGlobally+resolveOpenPrFileCollisionEnabled, mirroringduplicate-winner-mode.ts's resolver pattern), which the one call site insrc/queue/processors.tsnow goes through instead of readingenv.LOOPOVER_OPEN_PR_FILE_COLLISIONdirectly."inherit"(the default) reproduces today's exact fleet-wide behavior byte-for-byte;"off"/"enabled"let one repo opt out of (or into) the extra GitHub API round-trip this enrichment costs per open PR, regardless of the global default.Test plan
npm run test:ci(full local gate) greennpm audit --audit-level=moderate-- 0 vulnerabilitiestest/unit/open-pr-file-collision-mode.test.ts: the resolver's inherit/off/enabled truth table, both directionsparseFocusManifest/resolveEffectiveSettingstest foropenPrFileCollisionMode(mirrors the existingduplicateWinnerModetest)test/unit/queue-2.test.ts) covering the env-flag-on and env-flag-off cases pass unchanged, confirming byte-identical default behavior