Skip to content

Commit 2c2c1db

Browse files
Merge branch 'ftr/frontend-fixes' into test-deployment
2 parents 1bed2d2 + e5a40ab commit 2c2c1db

File tree

134 files changed

+22221
-1723
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

134 files changed

+22221
-1723
lines changed

.env.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,7 @@ GCS_SIGNING_SERVICE_ACCOUNT=
3030
# Get your API key from: https://aistudio.google.com/apikey
3131
GOOGLE_API_KEY=
3232

33+
GOOGLE_MAPS_API_KEY=
34+
3335
# ADK backend toggle: set to TRUE to use Vertex AI instead of AI Studio
3436
GOOGLE_GENAI_USE_VERTEXAI=FALSE

.github/workflows/deploy.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ jobs:
204204
NEXT_PUBLIC_API_URL=${{ steps.backend-url.outputs.url }}
205205
NEXT_PUBLIC_VIDEO_URL=https://storage.googleapis.com/${{ vars.GCP_PROJECT_ID }}-media/video.mp4
206206
NEXT_PUBLIC_APP_URL=${{ steps.frontend-url.outputs.url }}
207+
NEXT_PUBLIC_GOOGLE_MAPS_API_KEY=${{ vars.GOOGLE_MAPS_API_KEY }}
207208
cache-from: |
208209
type=registry,ref=${{ env.REGION }}-docker.pkg.dev/${{ vars.GCP_PROJECT_ID }}/holmes/frontend:cache-${{ github.ref_name }}
209210
type=registry,ref=${{ env.REGION }}-docker.pkg.dev/${{ vars.GCP_PROJECT_ID }}/holmes/frontend:cache-main

.planning/REQUIREMENTS.md

Lines changed: 35 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)