Skip to content

Extend cross-source finding dedup to custom analyzer sentences - #2033

Draft
mamu0 wants to merge 2 commits into
feat-savemoney-finding-dedupfrom
feat-savemoney-extend-finding-dedup-to-custom
Draft

Extend cross-source finding dedup to custom analyzer sentences#2033
mamu0 wants to merge 2 commits into
feat-savemoney-finding-dedupfrom
feat-savemoney-extend-finding-dedup-to-custom

Conversation

@mamu0

@mamu0 mamu0 commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Extends the finding deduplication introduced for Advisor/AZQR/custom sources to also cover duplicate sentences produced by the custom (live-scan) analyzers themselves.

Previously, every sentence emitted by the per-resource analyzers (disk.ts, vm.ts, container-app.ts, etc.) shared the generic code: "custom.unknown" and had no recommendationId, so two custom findings describing the same problem on the same resource could never be collapsed — the existing dedup logic deliberately skips findings without a
recommendationId to avoid merging unrelated sentences on a guess.

Sentences that match a known template now get a stable, per-sentence custom.<id> identity (e.g. custom.disk.unattached, custom.low-cpu-usage), following the same <source>.<id> convention
already used by advisor.<id> and azqr.<id>. This lets the existing (already source-agnostic) fold logic collapse duplicate custom findings too, not just cross-source ones. Sentences with no known template are unaffected: they keep code: "custom.unknown" and no recommendationId, and are still never collapsed on guesswork.

Depends on #2026

Resolves: CES-2227

@mamu0
mamu0 temporarily deployed to bootstrapper-dev-ci August 4, 2026 09:20 — with GitHub Actions Inactive
@mamu0
mamu0 temporarily deployed to bootstrapper-prod-ci August 4, 2026 09:20 — with GitHub Actions Inactive
@mamu0
mamu0 temporarily deployed to infra-prod-ci August 4, 2026 09:20 — with GitHub Actions Inactive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant