turnstone/web/src/components
pyr0ball 502ff54fd0 feat(ui): security alert dedup, clickable criticals, loading shimmer
Security Alerts:
- Client-side duplicate collapsing via anomaly_label + text fingerprint
- ×N count badge chip on collapsed rows; toggle to expand
- Skeleton shimmer rows replace "Loading..." text

Dashboard:
- Clickable Recent Criticals — inline LLM explanation via SSE stream
- ±5 min time window scoped to source_id for useful context
- Explanation cache keyed by entry_id (no re-fetch on re-expand)
- Default diagnose query injected on Diagnose button navigation to
  prevent local models hallucinating from bare log data
- Stat card and source-health skeleton shimmer loading states

Backend:
- anomaly.py: 4-attempt retry on "database is locked" with 10s backoff
- search.py: migrate build_fts_index to get_conn() (WAL race fix);
  add timeline_events to stats_summary for clickable criticals feature
- theme.css: @keyframes shimmer + .loading-shimmer utility;
  prefers-reduced-motion degrades gracefully to static muted block
2026-06-13 09:32:26 -07:00
..
ChatDiagnose.vue feat(diagnose): conversational chat mode + NL source discovery 2026-06-11 22:04:53 -07:00
DocUploadZone.vue fix: drag flicker guard, error body parsing, wizard session restore answer 2026-05-13 17:07:56 -07:00
IncidentForm.vue feat: add QuickCapture and IncidentForm components 2026-05-11 09:15:25 -07:00
IncidentTimeline.vue feat(ui): security alert dedup, clickable criticals, loading shimmer 2026-06-13 09:32:26 -07:00
LogEntryRow.vue fix: a11y — QuickCapture label/role/aria-live/spinner, LogEntryRow expand button 2026-05-13 16:42:46 -07:00
QuickCapture.vue feat(ui): security alert dedup, clickable criticals, loading shimmer 2026-06-13 09:32:26 -07:00
QuickCaptureBar.vue feat: add QuickCaptureBar and QuickCaptureFab entry point components 2026-05-11 09:16:33 -07:00
QuickCaptureFab.vue feat: add QuickCaptureBar and QuickCaptureFab entry point components 2026-05-11 09:16:33 -07:00
SetupWizard.vue feat: bundle PII sanitization, onboarding wizard, NL source addition (#51, #52, #53) 2026-05-29 14:14:28 -07:00
SeverityBadge.vue feat: Vue 3 frontend and FastAPI REST layer 2026-05-08 16:27:59 -07:00
StatusDot.vue feat: Vue 3 frontend and FastAPI REST layer 2026-05-08 16:27:59 -07:00
WizardOverlay.vue fix: final review fixes — port guard, network error handling, wizard back nav, tablist arrow keys, dialog focus trap 2026-05-13 17:40:40 -07:00