Commit graph

7 commits

Author SHA1 Message Date
jedarden
670d7cef87 feat(timeline): add search and filter bar to sidebar timeline
Implement comprehensive filter bar with checkboxes for event categories
(Presence, Zones, Alerts, System, Learning), person and zone dropdowns,
date range selector, and text search with fuzzy matching.

- Client-side filtering on loaded events for instant response
- Server-side date range queries with since/until parameters
- FTS5 full-text search for fuzzy matching on descriptions
- Cursor-based pagination supporting 500+ results
- Virtualized rendering with IntersectionObserver for performance
- Active filters display with removable tags

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 01:17:07 -04:00
jedarden
758bef0138 feat(timeline): add search and filter bar to sidebar timeline
- Add collapsible filter panel with category checkboxes (Presence, Zones,
  Alerts, System, Learning) for client-side event type filtering
- Add person and zone dropdowns populated from /api/people and /api/zones
- Add date range selector (All Time / Today / Last 7 Days / Last 30 Days /
  Custom range) with server-side re-fetch on date changes
- Add text search input with fuzzy client-side matching and FTS5 server-side
  prefix matching for descriptions
- Add active filter tags with individual remove buttons and Clear All
- Add load-more cursor pagination for 500+ results
- Add virtualized rendering with IntersectionObserver for 1000+ events
- Render event feedback buttons (thumbs up/down) inline on each event
- Add now-replaying chip showing current replay timestamp

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 00:54:21 -04:00
jedarden
cf934ba2a2 feat(dashboard): tap-to-jump time-travel removes expert mode gating
Timeline event clicks now always trigger jump-to-time replay regardless
of dashboard mode, not just in expert mode. Simplified handleSeek to
remove the dashboardMode state variable and expert mode check.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-24 21:47:32 -04:00
jedarden
959a0c5962 feat(timeline): tap-to-jump time-travel with correct mode handling
Wire sidebar timeline handleSeek to navigate to timeline view in simple
mode instead of attempting replay. Fix onRouterModeChange to properly
detect expert vs simple modes based on route name. All 41 tests pass.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-24 20:11:44 -04:00
jedarden
21020e9fc9 feat(timeline): add tap-to-jump time-travel coordination
When timeline event is clicked in expert mode, emit jump_to_time command
with event timestamp. The time-travel player pauses live playback, seeks
CSI recording buffer to timestamp, and begins replay. Selected event
highlights in timeline and "Now replaying" chip appears in header.

Backend: POST /api/replay/jump-to-time creates replay session centered
on timestamp, replaces previous active session. Frontend: handleSeek()
in sidebar-timeline delegates to SpaxelReplay.jumpToTime() which calls
the API, shows replay control bar, and notifies Viz3D.

Tests: 7 Go test cases for jump-to-time endpoint, 8 JS test cases for
tap-to-jump interaction, event highlighting, and now-replaying chip.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-24 12:08:39 -04:00
jedarden
4734e62aa1 feat: implement notification configuration UI for dashboard
Add comprehensive notification settings with delivery channel selector,
channel-specific credential fields, test notification button, event
type toggles, quiet hours picker, smart batching, and morning digest.

Backend:
- Add NotificationSettingsHandler with GET/PUT /api/settings/notifications
- Add POST /api/notifications/test endpoint
- Support ntfy, pushover, webhook channels with validation
- Store settings in settings table with proper JSON encoding

Frontend:
- Integrate notification settings into settings panel
- Channel selector with dynamic credential fields
- Event type toggles for filtering notifications
- Quiet hours time picker with day-of-week bitmask
- Smart batching toggle (default on)
- Morning digest toggle (default on)
- Test notification button with immediate feedback

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 17:55:31 -04:00
jedarden
2d34f77d87 feat: implement expert vs simple mode for timeline panel
Add mode switching for timeline panel. Expert mode shows all event
types with system events as secondary (smaller, greyed). Simple mode
shows only person-relevant events: ZoneTransition, FallDetected,
AnomalyDetected, SleepSessionEnd. Mode is set by dashboard mode and
passed as ?mode=expert or ?mode=simple to API.

Changes:
- dashboard/index.html: Add sidebar timeline panel HTML and script include
- dashboard/js/sidebar-timeline.js: Add sidebar timeline with mode switching
- dashboard/js/sidebar-timeline.test.js: Add tests for mode switching behavior
- mothership/internal/ingestion/server.go: Add health score to link info

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 13:37:17 -04:00