From 2d8fdcc0abd1c73352382c8582a88595f91c63fd Mon Sep 17 00:00:00 2001 From: Jeremy McSpadden Date: Tue, 17 Mar 2026 23:19:42 -0500 Subject: [PATCH] fix: match both milestoneId and sliceId when filtering duplicate blocker cards The high-risk card filter in buildBlockersSection only compared sliceId, causing false positives when different milestones had slices with the same ID (e.g. M001/S01 and M002/S01). Now matches on both milestoneId and sliceId to correctly deduplicate. --- src/resources/extensions/gsd/export-html.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/resources/extensions/gsd/export-html.ts b/src/resources/extensions/gsd/export-html.ts index b3eb0b620..5528df66e 100644 --- a/src/resources/extensions/gsd/export-html.ts +++ b/src/resources/extensions/gsd/export-html.ts @@ -241,7 +241,7 @@ function buildBlockersSection(data: VisualizerData): string { `).join(''); const riskCards = highRisk - .filter(hr => !blockers.some(b => b.sliceId === hr.slId)) + .filter(hr => !blockers.some(b => b.milestoneId === hr.msId && b.sliceId === hr.slId)) .map(hr => `
${esc(hr.msId)}/${esc(hr.slId)}