feat(ui): adopt evidence proof components on mounted flows [SPRINT-018]

Wire QuickVerifyDrawer, EvidenceChecklist, ProofChainViewer, and
DsseEnvelopeViewer into evidence-export, triage, and release-orchestrator
evidence-detail surfaces for richer proof verification workflows.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
master
2026-03-08 19:25:17 +02:00
parent d6521923fe
commit 7fbf04ab1e
16 changed files with 1015 additions and 31 deletions

View File

@@ -0,0 +1,95 @@
# Sprint 20260308-018 - FE Orphan Evidence Proof Component Adoption
## Topic & Scope
- Revive the dormant proof and verification widgets that still fit naturally inside already shipped Evidence, Triage, and Releases experiences.
- Adopt `EvidenceChecklistComponent`, `QuickVerifyDrawerComponent`, `ProofChainViewerComponent`, and `DsseEnvelopeViewerComponent` on mounted evidence-investigation flows.
- Explicit non-goal: do not create a second evidence product shell and do not reopen the already-corrected `EvidenceDrawerComponent` claim unless a fresh mounted-gap check proves a real missing integration.
- Working directory: `src/Web/StellaOps.Web`.
- Allowed coordination edits: `docs/modules/ui/orphan-revival-batch/README.md`, `docs/modules/ui/TASKS.md`, `docs/modules/ui/implementation_plan.md`, `docs/features/checked/web/`, `src/Web/StellaOps.Web/src/app/shared/components/evidence-checklist/`, `src/Web/StellaOps.Web/src/app/shared/components/quick-verify-drawer/`, `src/Web/StellaOps.Web/src/app/shared/components/proof-chain-viewer.component.ts`, `src/Web/StellaOps.Web/src/app/shared/components/dsse-envelope-viewer.component.ts`, `src/Web/StellaOps.Web/src/app/features/evidence-audit/`, `src/Web/StellaOps.Web/src/app/features/evidence-export/`, `src/Web/StellaOps.Web/src/app/features/triage/`, and `src/Web/StellaOps.Web/src/app/features/release-orchestrator/evidence/`.
- Expected evidence: focused Angular tests, one checked-feature note, and sprint execution-log updates.
## Dependencies & Concurrency
- Hard dependency inside the orphan revival batch: none.
- External prerequisite already satisfied: the canonical Evidence shell, release evidence flows, and triage evidence hosts are already shipped.
- Safe parallelism:
- Can run in parallel with sprints `013`, `014`, `015`, `021`, `022`, and `023`.
- This sprint exclusively owns proof-chain, DSSE, quick-verify, and evidence-checklist adoption targets while staffed.
## Documentation Prerequisites
- `docs/modules/ui/orphan-revival-batch/README.md`
- `src/Web/StellaOps.Web/AGENTS.md`
- `src/Web/StellaOps.Web/src/app/shared/components/evidence-checklist/evidence-checklist.component.ts`
- `src/Web/StellaOps.Web/src/app/shared/components/quick-verify-drawer/quick-verify-drawer.component.ts`
- `src/Web/StellaOps.Web/src/app/shared/components/proof-chain-viewer.component.ts`
- `src/Web/StellaOps.Web/src/app/shared/components/dsse-envelope-viewer.component.ts`
## Delivery Tracker
### FE-OEP-001 - Freeze mounted proof-verification adopter list
Status: DONE
Dependency: none
Owners: Developer (FE), Project Manager
Task description:
- Freeze the mounted host pages that will adopt the dormant proof-verification widgets.
- Recheck the current repo snapshot so the sprint only targets real gaps and explicitly records why `EvidenceDrawerComponent` is not the primary adoption target.
Completion criteria:
- [x] Mounted adopter list is recorded in the execution log.
- [x] Every adopted host belongs to an already shipped Evidence, Triage, or Releases flow.
- [x] The evidence-drawer correction and any related exclusions are recorded.
### FE-OEP-002 - Adopt quick verification and checklist flows
Status: DONE
Dependency: FE-OEP-001
Owners: Developer (FE)
Task description:
- Wire `QuickVerifyDrawerComponent` and `EvidenceChecklistComponent` into the frozen mounted hosts where they complete real operator verification workflows.
- Ensure the revived widgets open from current evidence actions rather than from orphan navigation.
Completion criteria:
- [x] Quick verify is reachable from the adopted mounted hosts.
- [x] Evidence checklist content is shown in a real evidence or VEX-completeness workflow.
- [x] The adopted flows use current route or drawer patterns instead of legacy dead-shell affordances.
### FE-OEP-003 - Adopt proof-chain and DSSE viewers
Status: DONE
Dependency: FE-OEP-001
Owners: Developer (FE)
Task description:
- Wire `ProofChainViewerComponent` and `DsseEnvelopeViewerComponent` into the frozen mounted hosts where proof-chain or attestation detail is currently weaker than the dormant component capability.
Completion criteria:
- [x] Adopted hosts render the shared proof-chain viewer or DSSE viewer instead of bespoke partial implementations.
- [x] Proof-chain and envelope detail remain contextual to the parent flow.
- [x] No new top-level route is introduced for these widgets.
### FE-OEP-004 - Verify and document proof-component revival
Status: DONE
Dependency: FE-OEP-002
Owners: Test Automation, Documentation author
Task description:
- Add focused Angular coverage for the revived proof-verification components in their mounted hosts and document the shipped slice.
Completion criteria:
- [x] Angular tests cover the revived proof-verification widgets in mounted consumers.
- [x] Checked-feature note exists under `docs/features/checked/web/`.
- [x] UI plan/task docs reflect the proof-verification adoption.
## Execution Log
| Date (UTC) | Update | Owner |
| --- | --- | --- |
| 2026-03-08 | Sprint created from the orphan-revival batch to revive dormant proof-verification widgets inside mounted Evidence, Triage, and Releases flows. | Project Manager |
| 2026-03-08 | FE-OEP-001 DONE. Frozen adopter list: (1) evidence-bundles.component.ts: QuickVerifyDrawerComponent, (2) replay-controls.component.ts: QuickVerifyDrawerComponent, (3) vex-decision-modal.component.ts: EvidenceChecklistComponent, (4) provenance-visualization.component.ts: ProofChainViewerComponent, (5) triage-attestation-detail-modal.component.ts: DsseEnvelopeViewerComponent, (6) evidence-detail.component.ts: ProofChainViewerComponent + DsseEnvelopeViewerComponent + QuickVerifyDrawerComponent. EvidenceDrawerComponent (EvidencePacketDrawerComponent) confirmed already mounted in evidence-list.component.ts and evidence-center-page.component.ts -- no gap, excluded from this sprint. | Developer (FE) |
| 2026-03-08 | FE-OEP-002 DONE. QuickVerifyDrawerComponent wired into evidence-bundles (opens from bundle verify action), replay-controls (opens from result Quick Verify button), and evidence-detail (opens from header Quick Verify button). EvidenceChecklistComponent wired into vex-decision-modal (new Required Evidence section before Review, driven by VexStatus-to-checklist-status computed). All flows use current drawer/signal patterns. | Developer (FE) |
| 2026-03-08 | FE-OEP-003 DONE. ProofChainViewerComponent wired into provenance-visualization (maps ProvenanceNode to ChainNode via computed) and evidence-detail (maps gate results + approvals to ChainNode[]). DsseEnvelopeViewerComponent wired into triage-attestation-detail-modal (replaces raw JSON section, maps raw attestation data to DsseEnvelope) and evidence-detail (builds DsseEnvelope from signature data). No new routes introduced. Build verified clean on all modified files. | Developer (FE) |
| 2026-03-08 | FE-OEP-004 DONE. Added focused Angular tests to 6 spec files: vex-decision-modal (checklistStatus mapping + template rendering), triage-attestation-detail-modal (dsseEnvelope/dsseDisplayData computed + DSSE viewer rendering + fallback), provenance-visualization (proofChainNodes mapping + filtering + verification status + rendering), evidence-bundles (quick-verify open/close/complete), replay-controls (quick-verify open/close/complete), evidence-detail (new spec: signatureDsseEnvelope, proofChainNodes, quick-verify lifecycle). Created checked-feature note at docs/features/checked/web/orphan-evidence-proof-component-adoption.md. Fixed VerifyResult.passed -> .verified type error in evidence-detail. All tasks DONE. Sprint complete. | Test Automation, Documentation |
## Decisions & Risks
- Decision: proof and verification widgets must be absorbed into current Evidence, Triage, and Releases flows rather than restored as a separate product shell.
- Decision: `EvidenceDrawerComponent` is not assumed to be missing; the sprint must explicitly confirm any current gap before touching it.
- Risk: the proof widgets may overlap with bespoke evidence UI already shipped in triage or release detail.
- Mitigation: freeze mounted hosts first and record explicit exclusions where the current shell already provides an equivalent or better UX.
## Next Checkpoints
- 2026-03-09: mounted adopter list frozen.
- 2026-03-11: widget-adoption criteria agreed.