fix(review): add missing duplicationDelta to REES_ANALYZER_NAMES - #5861
fix(review): add missing duplicationDelta to REES_ANALYZER_NAMES#5861lourincedaging0-commits wants to merge 1 commit into
Conversation
REES_ANALYZER_NAMES in enrichment-analyzer-names.ts is the canonical list that validates operator `REES_ANALYZERS` env entries and per-repo `.loopover.yml` `review.enrichment` toggles. It listed 56 analyzers but the generated analyzer-metadata.json registry defines 57 — `duplicationDelta` (right next to `duplication`) was the one gap. As a result resolveReesAnalyzers rejected `duplicationDelta` as "invalid" for operators who listed it explicitly, and resolveEnrichmentAnalyzerSelection could never honor a per-repo toggle for it. Add the missing entry so the list exactly matches the metadata registry, and add a parity test asserting REES_ANALYZER_NAMES and the registry stay in sync (set equality against the registry as source of truth, so a future analyzer can't silently drift the two apart), plus a regression assertion for duplicationDelta and a no-duplicates check.
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
|
Caution 🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥 🛑 LoopOver review result - fixes requiredReview updated: 2026-07-14 20:23:21 UTC
🛑 Suggested Action - Fix Blockers Review summary Nits — 2 non-blocking
CI checks failing
Linked issue satisfactionPartially addressed Review context
Contributor next steps
Signal definitions
[BETA] Chat with GittensoryAsk Gittensory 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/gittensory-commands 🟩 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.
|
|
Gittensory is closing this pull request on the maintainer's behalf (CI is failing (validate, validate-tests (5))). This is an automated maintenance action — to pursue this change, please open a new pull request with the issues resolved. Closed PRs may be analyzed later to improve review accuracy, but they are not automatically reopened or re-reviewed. |
…ed close (#8826) Both gate_decision writers key the same deterministic row id (gate:<source>:<project>#<pr>@<sha>) with ON CONFLICT DO UPDATE, so the last writer wins. One caller records the ACTUAL disposition the bot acted on; the other derives the verdict from the gate-check conclusion alone, where success maps to merge. On a PR the bot closed for a downstream reason (CI failure, policy) the conclusion-only writer runs last and clobbers the real close with a merge. On #5861 the close landed at 20:23:31 and the contradicting merge verdict was written at 20:23:44 -- 13 seconds after the PR was already closed. Fleet calibration reads the latest gate_decision as the gate's prediction, so every such row is scored as a merge prediction that ended closed: a false positive that never happened. Measured on the live self-host, 59 rows carry a verdict timestamped after the close action it contradicts, out of 210 in that class -- biasing published accuracy DOWNWARD, opposite to the reversal under-counting in #8823. Advances #8825 (the recording half; scoring policy closes as their own class is the remaining part). The DO UPDATE now skips when the incoming write is conclusion-derived and the stored decision is already 'close'. A close is a terminal action that already happened and no later conclusion can un-close it. An explicit action still replaces it, and non-close rows keep latest-finalize-wins.
Summary
REES_ANALYZER_NAMESinsrc/review/enrichment-analyzer-names.tsis the canonical single-source-of-truth list that validates both the operatorREES_ANALYZERSenv list and per-repo.loopover.ymlreview.enrichmenttoggles. It listed 56 analyzers, but the generatedreview-enrichment/analyzer-metadata.jsonregistry (also surfaced via the MCP taxonomy resource) defines 57 —"duplicationDelta"(defaultEnabled: true, sitting right next to"duplication") was the one missing entry.Two concrete, reachable breakages in
src/review/enrichment-wire.tsas a result:resolveReesAnalyzersrejected"duplicationDelta"as an "invalid" analyzer name for any self-host operator who put it in an explicitREES_ANALYZERSenv list.resolveEnrichmentAnalyzerSelectioncould never let a repo owner toggleduplicationDeltaper-repo via.loopover.yml review.enrichment.Fix
Add
"duplicationDelta"to the list, immediately after"duplication"(matching the registry's own ordering), so the canonical list is once again an exact match for the metadata registry.Tests
Adds a parity block to
test/unit/enrichment-analyzers-taxonomy.test.ts:REES_ANALYZER_NAMEScovers exactly the analyzers the metadata registry defines — compared as sets against the registry (the source of truth), not a hardcoded count, so a newly-added analyzer can't silently drift the two apart again.duplicationandduplicationDeltaare present.100% patch coverage on the touched module locally.
Closes #5839