feat(ui): ship triage explainability workspace

This commit is contained in:
master
2026-03-07 21:43:55 +02:00
parent 437d26c47c
commit 8f43378317
32 changed files with 2296 additions and 259 deletions

View File

@@ -0,0 +1,60 @@
# Triage Explainability Workspace UI
## Module
Web
## Status
VERIFIED
## Description
Shipped the canonical triage artifact workspace with lane-based queue segmentation, contextual explainability panels, canonical `/triage/*` ownership, and a sibling `Audit Bundles` page. The preserved workbench ideas now live inside one usable operator shell instead of orphan routes. Security artifact entry points deep-link into the same canonical workspace instead of owning a second surface.
## Implementation Details
- **Feature directory**: `src/Web/StellaOps.Web/src/app/features/triage/`
- **Primary components**:
- `triage-artifacts` (`src/Web/StellaOps.Web/src/app/features/triage/triage-artifacts.component.ts`)
- `triage-workspace` (`src/Web/StellaOps.Web/src/app/features/triage/triage-workspace.component.ts`)
- `triage-audit-bundles` (`src/Web/StellaOps.Web/src/app/features/triage/triage-audit-bundles.component.ts`)
- `triage-audit-bundle-new` (`src/Web/StellaOps.Web/src/app/features/triage/triage-audit-bundle-new.component.ts`)
- **Canonical routes**:
- `/triage/artifacts`
- `/triage/artifacts/:artifactId`
- `/triage/audit-bundles`
- `/triage/audit-bundles/new`
- **Route state**:
- `lane=active|quiet|review`
- `panel=ai|reason|provenance|history`
- `findingId=<vulnId>`
- `tab=evidence|overview|reachability|delta|policy|attestations`
- **Preserved functionality**:
- lane-based queue management with row and bulk transitions
- explainability rail for AI recommendations, reason capsule, provenance, and decision history
- audit-bundle list and create flow
- security alias cutover from `/security/artifacts*`
- **Secondary entry points**:
- `Security > Triage`
- `Security > Findings`
- `Evidence`
## E2E Test Plan
- **Setup**:
- [ ] Log in with a user that can access `Security`, `Triage`, and `Evidence`.
- [ ] Navigate to `/triage/artifacts?lane=review`.
- [ ] Ensure vulnerability and audit-bundle fixtures are available.
- **Core verification**:
- [ ] Verify `Active`, `Quiet Lane`, and `Needs Review` lanes load and keep query state.
- [ ] Verify bulk lane movement and `Build audit bundle` operate from the live list.
- [ ] Verify workspace detail preserves `tab` and `panel` state while showing evidence-first advisory UX.
- **Legacy verification**:
- [ ] Verify `/security/artifacts` and `/security/artifacts/:artifactId` canonicalize into `/triage/*`.
- [ ] Verify alias redirects preserve `artifactId`, query params, and fragments.
- [ ] Verify audit-bundle creation remains reachable from list and detail entry points.
## Verification
- Run:
- `npx ng test --watch=false --include src/tests/triage/triage-artifacts.component.spec.ts --include src/tests/triage/triage-workspace-with-proof-tree.behavior.spec.ts --include src/tests/audit_bundle/triage-routes.spec.ts --include src/tests/security-risk/security-risk-routes.spec.ts --include src/tests/navigation/legacy-redirects.spec.ts --include src/tests/routes/legacy-route-migration-framework.component.spec.ts --include src/tests/audit_bundle/audit-bundles.client.contract.spec.ts --include src/tests/audit_bundle/triage-audit-bundle-new.component.spec.ts --include src/tests/audit_bundle/triage-audit-bundles.component.spec.ts`
- `npx playwright test tests/e2e/triage-explainability-workspace.spec.ts --workers=1`
- Tier 0 (source): pass
- Tier 1 (build/tests): pass
- Tier 2 (behavior): pass
- Verified on (UTC): 2026-03-07T19:40:00Z