# Sprint Completion Summary - 2026-01-03 ## SPRINT_20260103_001_FE - Filter Presets & Patch Map Explorer **Status:** ✅ COMPLETE (All 11 tasks) ### Overview Implemented two UX polish features for the vulnerability explorer: 1. **Filter Preset Pills** - Always-visible filter chips with URL synchronization for shareable filter states 2. **Patch Map Explorer** - Interactive heatmap showing vendor backport coverage across fleet ### Key Deliverables #### Filter Presets (4 tasks) - Extended `TriageFilters` with noise-gating fields (runtimeExecuted, environment, backportProved, semverMismatch) - Created 7 standard presets: actionable, prod-runtime, backport-verified, critical-only, needs-review, vex-applied, all-findings - `FilterUrlSyncService` for bidirectional URL synchronization - `FilterPresetPillsComponent` with horizontal scrolling and copy URL #### Patch Coverage Backend (3 tasks) - Added 3 interface methods to `IDeltaSignatureRepository` - Implemented PostgreSQL aggregation queries with CTEs - Created `PatchCoverageController` with 3 REST endpoints: - `GET /api/v1/stats/patch-coverage` - Aggregated coverage by CVE - `GET /api/v1/stats/patch-coverage/{cveId}/details` - Function-level breakdown - `GET /api/v1/stats/patch-coverage/{cveId}/matches` - Paginated affected images #### Patch Map Frontend (4 tasks) - Created `patch-coverage.models.ts` and `patch-coverage.client.ts` - Created `PatchMapComponent` with heatmap, details, and matches views - Added route `/analyze/patch-map` and navigation entry - Linked from `binary-evidence-panel` header ### Files Created | Location | Files | |----------|-------| | Frontend | `filter-preset.models.ts`, `filter-preset-pills.component.ts`, `filter-url-sync.service.ts`, `patch-coverage.models.ts`, `patch-coverage.client.ts`, `patch-map.component.ts` | | Backend | `PatchCoverageController.cs` | ### Files Modified | File | Change | |------|--------| | `evidence-subgraph.models.ts` | Added noise-gating fields | | `app.routes.ts` | Added patch-map route | | `navigation.config.ts` | Added Patch Map nav entry | | `binary-evidence-panel.component.ts` | Added Patch Map link | | `IDeltaSignatureRepository.cs` | Added 3 methods + 6 DTOs | | `DeltaSignatureRepository.cs` | Implemented aggregation queries | | `BinaryIndex.WebService.csproj` | Added Persistence project reference | ### Decisions - CSS Grid for heatmap (accessibility compliance) - Severity-based color coding (critical=red, high=orange, medium=yellow, low=blue, safe=green) ### Build Status - Backend: ✅ Builds successfully (0 errors) - Frontend: ⚠️ Pre-existing errors in other components (not sprint-related)