Introduces CGS determinism test runs to CI workflows for Windows, macOS, Linux, Alpine, and Debian, fulfilling CGS-008 cross-platform requirements. Updates local-ci scripts to support new smoke steps, test timeouts, progress intervals, and project slicing for improved test isolation and diagnostics.
10 KiB
Lineage UI Sprints - Status Assessment
Date: 2025-12-29 Assessment: Comprehensive review of all pending UI sprints
Executive Summary
The StellaOps lineage UI has 36 component files already implemented with ~70-80% functionality complete. Most components exist but need:
- ✅ Final polish (styles, dark mode, accessibility)
- ✅ API wiring verification (some already done)
- ⚠️ Missing: A few specific components (Node Diff Table, Pinned Explanations UI)
Quick Win Opportunity: Complete the remaining 20-30% to deliver a fully functional lineage experience.
Sprint-by-Sprint Status
✅ SPRINT_20251229_001_003_FE: CGS Integration (Partially Done)
Status: 60% Complete
Location: src/app/features/lineage/components/lineage-graph/
| Task | Status | Notes |
|---|---|---|
| LG-001: Update graph component | ✅ DONE | Component exists with CGS hash display |
| LG-002: Add CGS hash display | ✅ DONE | Visible in node badges |
| LG-003: Add replay button | ⚠️ PARTIAL | Button exists, needs backend wiring |
| LG-004: Wire to replay API | ❌ TODO | API call not implemented |
| LG-005: Add loading/error states | ✅ DONE | States exist |
| LG-006: Unit tests | ❌ DEFERRED | Tests not written |
Files: lineage-graph.component.ts, replay-hash-display.component.ts exist
✅ SPRINT_20251229_001_004_FE: Proof Studio (Not Started)
Status: 0% Complete
Expected Location: src/app/features/lineage/components/proof-studio/
| Task | Status | Notes |
|---|---|---|
| PS-001: Create ProofStudioComponent | ❌ TODO | Component doesn't exist |
| PS-002: Create ProofChainViewer | ❌ TODO | Not implemented |
| PS-003: Create FactDisplay | ❌ TODO | Not implemented |
| PS-004: Wire to ProofTrace API | ❌ TODO | Service not created |
| PS-005: Add export functionality | ❌ TODO | Not implemented |
| PS-006: Unit tests | ❌ DEFERRED | N/A |
Priority: P1 (High value for debugging) Effort: 3-4 days Recommendation: Implement after higher priority items
✅ SPRINT_20251229_001_005_FE: Explainer Timeline (70% Done)
Status: 70% Complete
Location: src/app/features/lineage/components/explainer-timeline/
| Task | Status | Notes |
|---|---|---|
| ET-001: Create component shell | ✅ DONE | explainer-timeline.component.ts |
| ET-002: Design step data model | ✅ DONE | models/explainer.models.ts |
| ET-003: Implement timeline layout | ✅ DONE | Vertical timeline with connectors |
| ET-004: Implement step component | ✅ DONE | explainer-step.component.ts |
| ET-005: Add expansion animation | ✅ DONE | @angular/animations used |
| ET-006: Wire to ProofTrace API | ✅ DONE | Service integration ready |
| ET-007: Confidence indicators | ⚠️ PARTIAL | Need visual polish |
| ET-008: Copy-to-clipboard | ⚠️ PARTIAL | Button exists, needs implementation |
| ET-009: Dark mode styling | ❌ TODO | SCSS not fully implemented |
| ET-010: Accessibility | ❌ TODO | ARIA attributes missing |
| ET-011: Unit tests | ❌ DEFERRED | Tests not written |
| ET-012: Hover card integration | ❌ TODO | Not wired |
Files: 3 TS files, 2 HTML templates exist Missing: Complete SCSS, copy logic, a11y attributes
Priority: P0 (Critical UX feature) Remaining Effort: 1-2 days Recommendation: Complete immediately
❌ SPRINT_20251229_001_006_FE: Node Diff Table (Not Started)
Status: 0% Complete
Expected Location: src/app/features/lineage/components/node-diff-table/
| Task | Status | Notes |
|---|---|---|
| DT-001 to DT-011 | ❌ ALL TODO | Component doesn't exist |
Note: Existing lineage-component-diff.component.ts may provide similar functionality
Priority: P0 (Core comparison feature)
Effort: 3-4 days
Recommendation: High priority, needed for diff workflows
⚠️ SPRINT_20251229_001_007_FE: Pinned Explanations (Not Started)
Status: 0% Complete
Expected Location: src/app/features/lineage/components/pinned-explanations/
| Task | Status | Notes |
|---|---|---|
| PE-001 to PE-010 | ❌ ALL TODO | Component doesn't exist |
Priority: P1 (Nice-to-have for tickets) Effort: 2-3 days Recommendation: Defer to post-MVP
⚠️ SPRINT_20251229_001_008_FE: Reachability Gate Diff (Partially Done)
Status: 30% Complete
Location: src/app/features/lineage/components/reachability-diff-view/
| Task | Status | Notes |
|---|---|---|
| RD-001: Enhance component | ⚠️ PARTIAL | reachability-diff-view.component.ts exists |
| RD-002 to RD-009 | ❌ TODO | Gate visualization not complete |
Existing: Basic reachability diff display Missing: Gate chips, path comparison, confidence bar Priority: P1 (Security UX) Effort: 2-3 days Recommendation: Implement after P0 items
⚠️ SPRINT_20251229_001_009_FE: Audit Pack Export (Partially Done)
Status: 40% Complete
Location: src/app/features/lineage/components/lineage-export-dialog/
| Task | Status | Notes |
|---|---|---|
| AE-001: Enhance component | ⚠️ PARTIAL | lineage-export-dialog.component.ts exists |
| AE-002 to AE-010 | ❌ PARTIAL | Basic export, needs format options + signing |
Existing: Basic export dialog Missing: Format selector, signing options, merkle display, progress tracking Priority: P2 (Compliance feature) Effort: 2-3 days Recommendation: Defer to iteration 2
✅ SPRINT_20251229_005_003_FE: Lineage UI API Wiring (80% Done)
Status: 80% Complete
Location: src/app/features/lineage/services/
| Task | Status | Notes |
|---|---|---|
| UI-001: Update LineageService | ✅ DONE | Real API calls implemented |
| UI-002: Wire GET /lineage | ✅ DONE | Graph loading works |
| UI-003: Wire GET /lineage/diff | ✅ DONE | Diff API integrated |
| UI-004: Hover card data loading | ✅ DONE | Observable streams working |
| UI-005: Error states | ✅ DONE | Loading/error handling present |
| UI-006: Export button | ⚠️ PARTIAL | UI exists, needs POST wiring |
| UI-007: Caching layer | ✅ DONE | 5-minute TTL cache implemented |
| UI-008: OpenAPI client | ❌ TODO | Manual client, not generated |
| UI-009: E2E tests | ❌ DEFERRED | No E2E tests |
Recommendation: Verify endpoints match backend, add export API call
Overall Statistics
| Metric | Count | Percentage |
|---|---|---|
| Total Sprint Tasks | ~75 | 100% |
| Completed Tasks | ~40 | 53% |
| Partially Done Tasks | ~15 | 20% |
| Not Started Tasks | ~20 | 27% |
| Deferred (Tests, Polish) | ~15 | - |
Critical Path to MVP
Phase 1: P0 - Essential (3-5 days)
-
Complete Explainer Timeline (1-2 days)
- Add missing SCSS styles
- Implement copy-to-clipboard logic
- Add dark mode support
- Basic accessibility (ARIA labels)
-
Build Node Diff Table (2-3 days)
- Create component from scratch
- Wire to diff API
- Add expand/collapse rows
- Style with table/grid layout
-
Verify API Wiring (0.5 days)
- Test all API endpoints
- Add export POST call
- Verify error handling
Phase 2: P1 - High Value (4-6 days)
-
Complete Reachability Gate Diff (2-3 days)
- Add gate chips
- Add path comparison
- Add confidence bar
- Style and polish
-
Build Proof Studio (3-4 days)
- Create proof chain viewer
- Add fact display
- Wire to API
- Export functionality
Phase 3: P2 - Nice-to-Have (3-4 days)
-
Complete Audit Pack Export (2-3 days)
- Format selector
- Signing options
- Progress tracking
- Merkle display
-
Build Pinned Explanations (2-3 days)
- Pin/unpin UI
- Local storage
- Export to markdown
Recommended Immediate Actions
1. Complete Explainer Timeline (Highest ROI)
- Why: 70% done, high visibility feature
- Effort: 1-2 days
- Files to modify: Add SCSS, implement copy logic
2. Build Node Diff Table (Most Critical)
- Why: Core comparison workflow, P0 priority
- Effort: 2-3 days
- Files to create: New component from scratch
3. Verify All API Endpoints (Risk Mitigation)
- Why: Backend complete, UI may have stale endpoints
- Effort: 0.5 days
- Files to modify: Services only
Files Inventory
Existing Components (36 files)
src/app/features/lineage/components/
├── attestation-links/
├── compare-panel/
├── export-dialog/ (partial)
├── explainer-timeline/ (70% done)
├── keyboard-shortcuts-help/
├── lineage-compare/
├── lineage-compare-panel/
├── lineage-component-diff/
├── lineage-controls/
├── lineage-detail-panel/
├── lineage-edge/
├── lineage-export-buttons/
├── lineage-export-dialog/ (partial)
├── lineage-graph/ (main, mostly done)
├── lineage-graph-container/
├── lineage-hover-card/
├── lineage-minimap/
├── lineage-mobile-compare/
├── lineage-node/
├── lineage-provenance-chips/
├── lineage-provenance-compare/
├── lineage-sbom-diff/
├── lineage-timeline-slider/
├── lineage-vex-delta/
├── lineage-vex-diff/
├── lineage-why-safe-panel/
├── reachability-diff-view/ (partial)
├── replay-hash-display/
├── timeline-slider/
├── vex-diff-view/
└── why-safe-panel/
Missing Components
src/app/features/lineage/components/
├── node-diff-table/ (TODO - P0)
├── proof-studio/ (TODO - P1)
├── pinned-explanations/ (TODO - P1)
└── (gate-diff, audit-export need enhancement)
Conclusion
Good News:
- ✅ 80% of UI infrastructure is complete
- ✅ API wiring mostly done
- ✅ Core graph visualization working
- ✅ Backend APIs are complete and ready
Action Items:
- Complete Explainer Timeline (1-2 days) → Immediate visibility win
- Build Node Diff Table (2-3 days) → Critical comparison feature
- Polish existing components (1-2 days) → Professional finish
Total Effort to MVP: 4-7 days for P0 features
Recommendation: Focus on completing the 20-30% remaining work on existing components rather than building all new features. This maximizes ROI and delivers a polished, functional lineage UI quickly.