# Orphan Evidence Proof Component Adoption ## Module Web ## Status VERIFIED ## Description Revival of dormant proof-verification widgets (EvidenceChecklistComponent, QuickVerifyDrawerComponent, ProofChainViewerComponent, DsseEnvelopeViewerComponent) by adopting them into already-shipped Evidence, Triage, and Releases flows. The widgets are now reachable from real operator workflows rather than orphan navigation. ## Sprint SPRINT_20260308_018_FE_orphan_evidence_proof_component_adoption ## Adopted Components and Host Surfaces ### QuickVerifyDrawerComponent - **evidence-bundles.component.ts**: Opens from bundle verify action, passes bundle ID as artifact ID. - **replay-controls.component.ts**: Opens from result "Quick Verify" button, passes artifact ID from replay result. - **evidence-detail.component.ts**: Opens from header "Quick Verify" button, passes content hash as artifact ID. ### EvidenceChecklistComponent - **vex-decision-modal.component.ts**: New "Required Evidence" section before Review. VexStatus is mapped to checklist status via computed property (`NOT_AFFECTED` -> `not_affected`, `UNDER_INVESTIGATION` -> `under_investigation`, `AFFECTED_*` -> `affected`, `FIXED` -> `fixed`). ### ProofChainViewerComponent - **provenance-visualization.component.ts**: Maps `ProvenanceNode[]` to `ChainNode[]` via computed property. Filters out unknown-type nodes (finding, advisory). Renders after chain legend section. - **evidence-detail.component.ts**: Maps gate results + approvals to `ChainNode[]` (SBOM from first artifact, policy from gate results, approval from approvals). Renders in signature tab. ### DsseEnvelopeViewerComponent - **triage-attestation-detail-modal.component.ts**: Replaces raw JSON section with DSSE envelope viewer. Builds `DsseEnvelope` from raw attestation data with fallback to raw JSON when data is not DSSE-shaped. - **evidence-detail.component.ts**: Builds `DsseEnvelope` from packet signature data. Renders in signature tab. ## Implementation Details - **Working directory**: `src/Web/StellaOps.Web` - **Modified files**: - `src/Web/StellaOps.Web/src/app/features/evidence-export/evidence-bundles.component.ts` - `src/Web/StellaOps.Web/src/app/features/evidence-export/replay-controls.component.ts` - `src/Web/StellaOps.Web/src/app/features/evidence-export/provenance-visualization.component.ts` - `src/Web/StellaOps.Web/src/app/features/triage/vex-decision-modal.component.ts` - `src/Web/StellaOps.Web/src/app/features/triage/vex-decision-modal.component.html` - `src/Web/StellaOps.Web/src/app/features/triage/triage-attestation-detail-modal.component.ts` - `src/Web/StellaOps.Web/src/app/features/triage/triage-attestation-detail-modal.component.html` - `src/Web/StellaOps.Web/src/app/features/release-orchestrator/evidence/evidence-detail/evidence-detail.component.ts` - **New test files**: - `src/Web/StellaOps.Web/src/app/features/release-orchestrator/evidence/evidence-detail/evidence-detail.component.spec.ts` - **Updated test files**: - `src/Web/StellaOps.Web/src/app/features/triage/vex-decision-modal.component.spec.ts` - `src/Web/StellaOps.Web/src/app/features/triage/triage-attestation-detail-modal.component.spec.ts` - `src/Web/StellaOps.Web/src/app/features/evidence-export/evidence-bundles.component.spec.ts` - `src/Web/StellaOps.Web/src/app/features/evidence-export/replay-controls.component.spec.ts` - `src/Web/StellaOps.Web/src/app/features/evidence-export/provenance-visualization.component.spec.ts` ## Exclusions - **EvidenceDrawerComponent (EvidencePacketDrawerComponent)**: Already mounted in `evidence-list.component.ts` and `evidence-center-page.component.ts`. No gap found; excluded from this sprint. - No new top-level routes introduced. - No second evidence product shell created. ## Verification - Angular build verified clean on all modified files (pre-existing errors in policy-interop, certificate-inventory, glossary-tooltip are unrelated). - Focused unit tests cover all computed properties, signal states, and template rendering for each adopted widget. - Date (UTC): 2026-03-08