Skip to content

fix(review): add missing duplicationDelta to REES_ANALYZER_NAMES (both copies) - #5871

Closed
lourincedaging0-commits wants to merge 1 commit into
JSONbored:mainfrom
lourincedaging0-commits:fix-rees-analyzer-parity
Closed

fix(review): add missing duplicationDelta to REES_ANALYZER_NAMES (both copies)#5871
lourincedaging0-commits wants to merge 1 commit into
JSONbored:mainfrom
lourincedaging0-commits:fix-rees-analyzer-parity

Conversation

@lourincedaging0-commits

Copy link
Copy Markdown
Contributor

Summary

REES_ANALYZER_NAMES is the canonical single-source-of-truth list that validates both the operator REES_ANALYZERS env list and per-repo .loopover.yml review.enrichment toggles. It listed 56 analyzers, but the generated review-enrichment/analyzer-metadata.json registry defines 57"duplicationDelta" (defaultEnabled: true, right next to "duplication") was the one missing entry.

Two concrete, reachable breakages in enrichment-wire.ts as a result:

  • resolveReesAnalyzers rejected "duplicationDelta" as an "invalid" analyzer name for any self-host operator who listed it explicitly.
  • resolveEnrichmentAnalyzerSelection could never honor a per-repo duplicationDelta toggle.

Fix

Add "duplicationDelta" immediately after "duplication" in both hand-duplicated copies of the list — src/review/enrichment-analyzer-names.ts and its engine twin packages/loopover-engine/src/review/enrichment-analyzer-names.ts — so the canonical list again matches the registry and the two copies stay in sync (the check-engine-parity guard requires them identical).

Tests

Adds a parity block to test/unit/enrichment-analyzers-taxonomy.test.ts:

  • REES_ANALYZER_NAMES covers 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.
  • Regression assertion that both duplication and duplicationDelta are present.
  • A no-duplicate-entries guard.

The existing check-engine-parity suite continues to pass (both copies now carry the entry). 100% patch coverage on the touched module locally.

Closes #5839

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-security

Copy link
Copy Markdown
Contributor

Superagent didn't find any vulnerabilities or security issues in this PR.

@loopover-orb

loopover-orb Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Caution

🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥

🛑 LoopOver review result - fixes required

Review updated: 2026-07-14 21:33:03 UTC

3 files · 1 AI reviewer · no blockers · readiness 78/100 · CI failing · blocked

🛑 Suggested Action - Fix Blockers

Review summary
This adds the missing "duplicationDelta" entry to both hand-duplicated copies of REES_ANALYZER_NAMES so the canonical list matches the 57-entry analyzer-metadata.json registry, fixing rejection of the analyzer in resolveReesAnalyzers and inability to toggle it via resolveEnrichmentAnalyzerSelection. The fix is minimal, correctly targets both copies required by check-engine-parity, and the added test compares the list against the registry as sets rather than a hardcoded count, which is the right way to prevent future drift.

Nits — 2 non-blocking
  • The new test reads review-enrichment/analyzer-metadata.json directly rather than importing a shared loader, duplicating the metadataPath pattern already used earlier in the file — minor but keeps two sources of truth for how metadata is parsed in test/unit/enrichment-analyzers-taxonomy.test.ts.
  • Consider asserting engine-copy parity (packages/loopover-engine/.../enrichment-analyzer-names.ts) directly in this same test file if check-engine-parity isn't already run in the same CI job, so a future one-sided edit fails fast in this suite too.

CI checks failing

  • validate
  • validate-tests (6)
  • validate-tests (1)
  • validate-tests (3)
  • validate-tests (2)
  • validate-tests (5)
  • validate-tests (4)
Signal Result Evidence
Code review ✅ No blockers 1 reviewer
Linked issue ✅ Linked #5839
Related work ✅ No active overlap found No same-issue or scoped active PR overlap found.
Change scope ✅ 20/20 Low review scope from cached public metadata (1 linked issue).
Validation posture ❌ 5/25 Preflight is holding this PR: the review lane is unavailable, so it is not ready for automated review.
Contributor workload ✅ 10/10 Author activity: 56 registered-repo PR(s), 23 merged, 4 issue(s).
Contributor context ✅ Confirmed Gittensor contributor lourincedaging0-commits; Gittensor profile; 56 PR(s), 4 issue(s).
Gate result ✅ Passing No configured blocker found.
Improvement ✅ Minor risk: clean · value: minor — Code changes are accompanied by test evidence. LLM value judgment: moderate — A one-line-times-two data fix that closes a concrete, reachable validation gap (an unselectable, default-enabled analyzer) and backs it with a drift-proof set-based regression test.
Linked issue satisfaction

Partially addressed
The PR correctly adds "duplicationDelta" to REES_ANALYZER_NAMES and adds a solid drift-guard test comparing the registry to the metadata file, satisfying the core fix and that deliverable, but it does not add the two explicitly required tests asserting resolveReesAnalyzers accepts duplicationDelta in REES_ANALYZERS and resolveEnrichmentAnalyzerSelection can toggle it via .loopover.yml.

Review context
  • Author: lourincedaging0-commits
  • Role context: outside_contributor
  • Public audience mode: oss maintainer
  • Lane context: Repository registration is not available in the local Gittensory cache.
  • Public profile languages: not available
  • Official Gittensor activity: 56 PR(s), 4 issue(s).
  • PR-specific overlap: none found.
Contributor next steps
  • Await review-lane availability.
  • Refresh registry data or choose a registered active repo.
Signal definitions
  • Related work = same linked issue, overlapping active PRs, or title/path similarity.
  • Change scope = cached public metadata such as size labels, draft state, and review-burden hints.
  • Validation posture = whether the PR provides enough public validation/test evidence for maintainer review.
  • Contributor workload = public contributor activity and cleanup pressure, not a repo-wide quality failure.
  • Contributor context = public GitHub/Gittensor identity context; non-Gittensor status is not a blocker.
[BETA] Chat with Gittensory

Ask 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.

  • @gittensory ask <question> answers contribution-quality Q&A with source citations and freshness.
  • @gittensory chat <question> answers in natural prose from cached decision-pack facts via local inference (maintainer/collaborator; read-only).
  • A plain-language @gittensory mention with a real question is routed to the closest matching read-only command automatically -- no exact syntax required.

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.

  • Re-run LoopOver review

@loopover-orb

loopover-orb Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Gittensory is closing this pull request on the maintainer's behalf (CI is failing (validate, validate-tests (6), validate-tests (1), validate-tests (3), validate-tests (2), validate-tests (5), validate-tests (4))). 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.

@loopover-orb loopover-orb Bot closed this Jul 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(review): REES_ANALYZER_NAMES is missing duplicationDelta, blocking its env/config toggles

1 participant