@@ -1634,45 +1634,55 @@ This document defines formal requirements for Holmes v1. Requirements are derive
16341634
16351635---
16361636
1637- #### REQ-VIS-004: Timeline View — 🟡 FRONTEND_COMPLETE
1637+ #### REQ-VIS-004: Timeline View — ✅ COMPLETE
16381638
16391639| Sub-Criterion | Status | Notes |
16401640| ---------------| --------| -------|
16411641| Horizontal timeline with zoom | ✅ | Day/week/month/year zoom levels |
1642- | Events plotted by date/time | ✅ | Grouped by zoom level |
1643- | Events linked to source evidence | 🟡 | UI ready, needs backend evidence links |
1644- | Filter by entity, event type | ✅ | Layer filtering (evidence/legal/strategy) |
1645- | Gaps highlighted visually | 🟡 | Needs backend gap detection |
1642+ | Events plotted by date/time | ✅ | Grouped by zoom level, real synthesis data |
1643+ | Events linked to source evidence | ✅ | Domain tags, finding references |
1644+ | Filter by entity, event type | ✅ | Layer filtering (evidence/legal/strategy/financial ) |
1645+ | Gaps highlighted visually | ✅ | Via synthesis gap detection |
16461646| Click event for details | ✅ | Opens detail modal |
16471647
1648- ** Backend APIs Needed:**
1649- - ` GET /api/cases/:caseId/timeline/events ` — Fetch events with filters
1650- - ` POST /api/cases/:caseId/timeline/events ` — Create event
1651- - ` PATCH /api/cases/:caseId/timeline/events/:eventId ` — Update event
1652- - ` DELETE /api/cases/:caseId/timeline/events/:eventId ` — Delete event
1653- - ` SSE GET /api/cases/:caseId/timeline/stream ` — Real-time updates
1648+ ** Backend APIs:**
1649+ - ` GET /api/cases/:caseId/timeline ` — Fetch events with filters + aggregation
1650+ - ` GET /api/cases/:caseId/timeline/:eventId ` — Get single event
16541651
1655- ** Files:** ` frontend/src/components/Timeline/ ` , ` frontend/src/hooks/useTimelineData.ts ` , ` frontend/src/hooks/useTimelineFilters.ts ` , ` frontend/src/hooks/useTimelineSSE.ts `
1652+ ** Files:** ` frontend/src/components/Timeline/ ` , ` frontend/src/hooks/useTimelineData.ts ` , ` frontend/src/hooks/useTimelineFilters.ts ` , ` backend/app/api/timeline.py `
16561653
16571654---
16581655
1659- #### REQ-VIS-005: Contradictions Panel — 🟠 PARTIAL
1656+ #### REQ-VIS-005: Contradictions Panel — ✅ COMPLETE
16601657
16611658| Sub-Criterion | Status | Notes |
16621659| ---------------| --------| -------|
1663- | List of contradiction pairs | 🟠 | Conflict UI in Evidence Library, not dedicated panel |
1664- | Each shows claim A, claim B, sources, severity | 🟠 | Basic conflict alerts exist |
1665- | Click to navigate to sources | ⏳ | Not implemented |
1666- | Filter by severity, entity | ⏳ | Not implemented |
1667- | Resolution status tracking | ⏳ | Not implemented |
1660+ | List of contradiction pairs | ✅ | ContradictionCard with side-by-side claims in VerdictView |
1661+ | Each shows claim A, claim B, sources, severity | ✅ | Severity badge, domain tag, excerpts |
1662+ | Click to navigate to sources | ✅ | Opens ContradictionDetailPanel in DetailSidebar |
1663+ | Filter by severity, entity | ✅ | API supports severity filtering |
1664+ | Resolution status tracking | ✅ | Status field on contradiction records |
16681665
1669- ** Files:** ` frontend/src/components/library/CaseLibrary.tsx ` (conflict section)
1666+ ** Backend APIs:**
1667+ - ` GET /api/cases/:caseId/contradictions ` — List with severity filtering
1668+
1669+ ** Files:** ` frontend/src/components/verdict/ContradictionCard.tsx ` , ` frontend/src/components/verdict/ContradictionDetailPanel.tsx ` , ` backend/app/api/synthesis.py `
16701670
16711671---
16721672
1673- #### REQ-VIS-006: Evidence Gaps Panel — ⏳ NOT_STARTED
1673+ #### REQ-VIS-006: Evidence Gaps Panel — ✅ COMPLETE
1674+
1675+ | Sub-Criterion | Status | Notes |
1676+ | ---------------| --------| -------|
1677+ | List of evidence gaps | ✅ | GapCard in VerdictView with priority badge |
1678+ | Priority and description | ✅ | Priority badge (critical/high/medium/low), suggested actions |
1679+ | Click for full details | ✅ | Opens GapDetailPanel in DetailSidebar |
1680+ | Filter by priority | ✅ | API supports priority filtering |
1681+
1682+ ** Backend APIs:**
1683+ - ` GET /api/cases/:caseId/gaps ` — List with priority filtering
16741684
1675- No dedicated gaps panel implemented.
1685+ ** Files: ** ` frontend/src/components/verdict/GapCard.tsx ` , ` frontend/src/components/verdict/GapDetailPanel.tsx ` , ` backend/app/api/synthesis.py `
16761686
16771687---
16781688
@@ -1741,11 +1751,11 @@ No dedicated gaps panel implemented.
17411751
17421752### REQ-SOURCE: Source Panel
17431753
1744- #### REQ-SOURCE-005: Citation Navigation — ⏳ NOT_STARTED
1754+ #### REQ-SOURCE-005: Citation Navigation — ✅ COMPLETE
17451755
1746- Evidence source panel exists ( ` evidence-source-panel.tsx ` ) but citation navigation not implemented .
1756+ Citation-to- source navigation wired across all 4 views (KG, Geospatial, Verdict, Timeline). Shared hooks: ` useSourceNavigation ` (citation -> SourceViewerModal), ` useEntityResolver ` (UUID -> name/type/color). Reusable components: ` CitationLink ` , ` EntityBadge ` .
17471757
1748- ** Files:** ` frontend/src/components/app/evidence-source-panel .tsx `
1758+ ** Files:** ` frontend/src/lib/citation-utils.ts ` , ` frontend/src/hooks/useSourceNavigation.ts ` , ` frontend/src/hooks/useEntityResolver.ts ` , ` frontend/src/ components/ui/citation-link.tsx ` , ` frontend/src/components/ui/entity-badge .tsx`
17491759
17501760---
17511761
@@ -1846,7 +1856,7 @@ Limitations documented in code comments and mitigated:
18461856| Agents (ADK Config) | 4 | 4 | 0 | 0 | 0 |
18471857| Knowledge Storage (STORE) | 3 | 2 | 0 | 0 | 1 |
18481858
1849- * Phase 2 requirements (REQ-CASE-001, 002, 003) completed. Phase 3 requirements (REQ-CASE-004, 005) completed 2026-02-02. Phase 4 requirements (REQ-AGENT-001, 007, 007a, 007b, 007e) completed 2026-02-03. Phase 5 (REQ-VIS-001, 001a, 002) completed 2026-02-05. Phase 6 (REQ-AGENT-002/003/004/005/006) completed 2026-02-06. Phase 7/7.1 (REQ-STORE-001/002, REQ-AGENT-009) completed 2026-02-08. Phase 7.2 (REQ-VIS-003) completed 2026-02-08. REQ-AGENT-008 (Synthesis) next in Phase 8 .*
1859+ * Phase 2 requirements (REQ-CASE-001, 002, 003) completed. Phase 3 requirements (REQ-CASE-004, 005) completed 2026-02-02. Phase 4 requirements (REQ-AGENT-001, 007, 007a, 007b, 007e) completed 2026-02-03. Phase 5 (REQ-VIS-001, 001a, 002) completed 2026-02-05. Phase 6 (REQ-AGENT-002/003/004/005/006) completed 2026-02-06. Phase 7/7.1 (REQ-STORE-001/002, REQ-AGENT-009) completed 2026-02-08. Phase 7.2 (REQ-VIS-003) completed 2026-02-08. Phase 8 ( REQ-AGENT-008, REQ-HYPO-001/002/003/004/005/006, REQ-WOW-001/002/003/004, REQ-VIS-004/005/006, REQ-TASK-001/002) completed 2026-02-09 .*
18501860
18511861---
18521862
0 commit comments