Commit graph

7 commits

Author SHA1 Message Date
jedarden
a33ca37920 fix(proactive): use best-matching key for server-side repeated-edit hint
When the server sets repeated_edit_hint:true, pick the most-changed
qualifying setting from localStorage history instead of passing the
literal string 'detected_by_server' into formatSettingName, which
rendered as broken text in the hint banner.
2026-05-04 00:59:38 -04:00
jedarden
af5101e9e4 feat(feedback): enhance false positive explanations with diagnostic context
When users mark detections as incorrect, the system now provides:
- Contributing link name (MAC prefix)
- DeltaRMS value and threshold ratio
- Root cause from diagnostic checks
- Note about applying corrections

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-25 12:11:39 -04:00
jedarden
c0416fee6c feat(dashboard): anomaly detection & security mode UI with WS consistency fix
- Add security status card with arm/disarm dialog, DISARMED/LEARNING/ARMED/ALERT
  badge, learning progress bar (N of 7 days), and last-anomaly summary line
- Add full-width alert banner with acknowledge button for armed-mode anomalies;
  acknowledged alerts disappear from banner but remain in history
- Add anomaly timeline panel (24h) with severity scores and timeline navigation
- Fix WS broadcast field names to match AnomalyEvent JSON/REST API:
  anomaly_type→type, timestamp_ms→RFC3339 timestamp so JS handles both
  WS pushes and polled history uniformly
- Fix formatTimeAgo() to parse RFC3339 string timestamps in addition to Unix-ms
- Fix fetchAnomalyCount() to use /api/anomalies?since=24h (structured response)
  instead of /api/anomalies/history (returns plain array)
- Add security-card detail area styling to anomaly.css
- Add BlobIdentityProvider wiring in zones API for people resolution in zone responses
- Add linkweather diagnostic engine tests (Rules 1-5 + helpers)

All go test ./... pass; go vet ./... clean.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 09:03:51 -04:00
jedarden
d500900e0b feat: add feature discovery notification UI to proactive dashboard
Adds frontend implementation for feature discovery notifications:
- Polls /api/help/notifications every 30 seconds
- Displays notification cards with slide-in animation
- Handles action button clicks for navigation
- Persists dismissed notifications to prevent re-display
- Auto-dismisses after 30 seconds

Completes the feature discovery notifications feature for Phase 9,
complementing the backend notifier and monitor implementations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 21:02:43 -04:00
jedarden
70745bb577 feat: implement proactive quality prompts with link diagnostics
- Show non-blocking prompt card when ambient confidence drops below 0.6 for >5 minutes
- Add 'Diagnose' button that fetches and displays root cause analysis
- Add 'Dismiss for today' option with localStorage persistence
- Implement pulsing amber highlight on 3D link lines for degraded links
- Display diagnostic results in plain English with possible causes and actions
- Do NOT show prompts for transient drops (< 5 minutes)
- Add GetDiagnosticFor method to diagnostics package for timestamp-based queries
- Wire up /api/links/{linkID}/diagnostics endpoint with health snapshots

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 19:51:57 -04:00
jedarden
6812da8ccb feat: implement repeated-setting change detection with guided calibration
- Add dashboard/js/proactive.js module with:
  - Track qualifying setting changes (delta_rms_threshold, breathing_sensitivity,
    tau_s, fresnel_decay, n_subcarriers) in localStorage with 24h window
  - Show non-intrusive banner after 3+ changes to same setting
  - "Help me tune this" button opens guided calibration flow
  - Two-test calibration: walk around room (false positives), sit still (missed motion)
  - Suggest optimal value based on diurnal baseline SNR and link health
  - Apply suggested value button with API integration

- Include proactive.js in dashboard/index.html

- Integrate with settings-panel.js to track setting changes on save

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 00:13:51 -04:00
jedarden
f0798edc6b feat: implement repeated-setting change detection with guided calibration
Detect when a user changes the same configuration setting more than 3
times within 24 hours and show a non-intrusive prompt offering help.

Features:
- Track qualifying setting changes (delta_rms_threshold, breathing_sensitivity,
  tau_s, fresnel_decay, n_subcarriers) in localStorage
- Non-intrusive help prompt with "Help me tune this" button
- Guided calibration flow with:
  - False positive test: walk around room for 15 seconds
  - Missed motion test: sit still for 10 seconds
  - Suggest optimal value based on diurnal baseline SNR and link health
  - Apply suggested value button
- Full modal UI with progress indicators and countdown timers
- Integration with settings-panel.js for automatic tracking

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 00:05:52 -04:00