fix(review): add missing duplicationDelta to REES_ANALYZER_NAMES - #6009
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. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #6009 +/- ##
=======================================
Coverage 95.16% 95.16%
=======================================
Files 591 591
Lines 46934 46934
Branches 15000 15000
=======================================
Hits 44664 44664
Misses 1512 1512
Partials 758 758
Flags with carried forward coverage won't be shown. Click here to find out more.
|
|
Tip 🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 ✅ LoopOver review result - approve/merge recommendedReview updated: 2026-07-15 06:57:21 UTC
✅ Suggested Action - Approve/Merge
Review summary Nits — 2 non-blocking
Linked issue satisfactionAddressed 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
duplicationDeltais a defined REES enrichment analyzer (present inreview-enrichment/analyzer-metadata.jsonright besideduplication), but it was missing from the canonicalREES_ANALYZER_NAMESregistry inenrichment-analyzer-names.ts. That list is the single source of truth every operatorREES_ANALYZERSenv entry and per-repo.loopover.yml review.enrichmenttoggle is validated against — so an analyzer absent from it is silently un-selectable and un-toggleable.duplicationwas listed; its delta counterpart was the one-entry gap.Fix
Add
"duplicationDelta"to the list, right after"duplication". Applied to both twin copies the engine-parity contract keeps byte-identical:src/review/enrichment-analyzer-names.tspackages/loopover-engine/src/review/enrichment-analyzer-names.tsTests
test/unit/enrichment-analyzers-taxonomy.test.ts:analyzer-metadata.json(the registry source of truth) — no missing, no extra — so any future analyzer added to the metadata but not the name list fails immediately, rather than a brittle hardcoded count.duplicationDeltasits alongsideduplication.100% line coverage on both twin modules locally.
Closes #5839