# Findings Compare Baseline Availability UI ## Module Web ## Status VERIFIED ## Description The embedded compare surface on `/security/findings` now treats `active-scan` as a first-class current target, shows an explicit unavailable state when no baseline exists, disables export until comparison data is real, and keeps detail mode on live findings data without the stale `Export Audit Pack` control. ## Implementation Details - **Feature directories**: - `src/Web/StellaOps.Web/src/app/features/findings/` - `src/Web/StellaOps.Web/src/app/features/compare/` - **Primary implementation files**: - `src/Web/StellaOps.Web/src/app/features/findings/container/findings-container.component.ts` - `src/Web/StellaOps.Web/src/app/features/compare/components/compare-view/compare-view.component.ts` - `src/Web/StellaOps.Web/src/app/features/findings/findings-list.component.ts` - **Focused regression files**: - `src/Web/StellaOps.Web/src/app/core/testing/findings-container.component.spec.ts` - `src/Web/StellaOps.Web/src/tests/findings/findings-list.audit-export.behavior.spec.ts` - `src/Web/StellaOps.Web/tests/e2e/findings-compare-baseline-availability.spec.ts` - **Canonical route**: - `/security/findings` ## Verification - Run: - `npm test -- --watch=false --include src/tests/findings/findings-list.audit-export.behavior.spec.ts` - `npx playwright test --config playwright.config.ts tests/e2e/findings-compare-baseline-availability.spec.ts --workers=1` - `npm run build` - Tier 0 (source): pass - Tier 1 (build/tests): pass - Tier 2 (behavior): pass - Notes: - Focused unit coverage passed: `1/1` tests in `findings-list.audit-export.behavior.spec.ts`. - Deterministic Playwright passed: `2/2` scenarios for no-baseline diff behavior and detail-mode audit-export removal. - Live authenticated replay on `https://stella-ops.local/security/findings?tenant=demo-prod®ions=us-east&environments=stage&timeWindow=7d` showed `Active scan`, rendered `No baseline recommendations available for this scan`, kept `Export` disabled, and issued no `/api/compare/delta` request without a selected baseline. - Production build passed; existing bundle-budget warnings remain unchanged from the baseline. - Verified on (UTC): 2026-03-08T13:04:26Z ## Verified Behavior - `/security/findings` passes the embedded compare surface the active/current scan context instead of relying on standalone compare route params. - When `/api/compare/baselines/active-scan` returns `selectedDigest: null`, the page shows a truthful unavailable state instead of fake zero-change content. - Export remains disabled until both current and baseline targets exist. - Detail mode renders live findings rows and does not expose the removed `Export Audit Pack` action.