turnstone/app
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
..
api feat: initial Turnstone POC — ingest, FTS search, MCP server 2026-05-08 12:12:34 -07:00
context feat: dual-backend SQLite/Postgres + multi-tenant source namespacing 2026-06-08 08:37:54 -07:00
db feat(alerts): security alerts tab — full scorer integration 2026-06-10 14:32:43 -07:00
glean fix(corpus): glean_dir now recurses subdirs; fix docker SOURCE prefix 2026-06-11 16:30:28 -07:00
services feat(ui): security alert dedup, clickable criticals, loading shimmer 2026-06-13 09:32:26 -07:00
tasks feat(incidents): auto-incident detection + example-node Podman setup 2026-06-11 18:37:53 -07:00
watch fix(watcher): remove per-flush FTS sync to eliminate SQLite write lock contention 2026-06-10 12:42:24 -07:00
__init__.py feat: initial Turnstone POC — ingest, FTS search, MCP server 2026-05-08 12:12:34 -07:00
mcp_server.py feat: dual-backend SQLite/Postgres + multi-tenant source namespacing 2026-06-08 08:37:54 -07:00
rest.py feat(diagnose): conversational chat mode + NL source discovery 2026-06-11 22:04:53 -07:00