feat(15-03): add signal history charts with expandable rows in station and link tables

- Create SignalHistoryChart with recharts LineChart, green/yellow/red reference bands, and 24h/7d/30d range selector
- Add expandable rows to WirelessStationTable (click station to see signal history)
- Add expandable rows to WirelessLinksTable CPE rows (click link to see signal history)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jason Staack
2026-03-19 07:22:49 -05:00
parent ef82a0d294
commit 3bddd6f654
6 changed files with 271 additions and 76 deletions

View File

@@ -3,13 +3,13 @@ gsd_state_version: 1.0
milestone: v9.7
milestone_name: Tower & Site Management
status: unknown
stopped_at: Completed 15-02-PLAN.md
last_updated: "2026-03-19T12:18:13.853Z"
stopped_at: Completed 15-01-PLAN.md
last_updated: "2026-03-19T12:19:31.850Z"
progress:
total_phases: 5
completed_phases: 4
total_plans: 14
completed_plans: 12
completed_plans: 13
---
# Project State
@@ -47,6 +47,7 @@ Plan: 2 of 3
| Phase 14 P02 | 3min | 2 tasks | 9 files |
| Phase 14 P03 | 3min | 2 tasks | 6 files |
| Phase 15 P02 | 3min | 2 tasks | 4 files |
| Phase 15 P01 | 4min | 2 tasks | 10 files |
## Accumulated Context
@@ -87,6 +88,9 @@ Decisions are logged in PROJECT.md Key Decisions table.
- [Phase 14]: Used fleet summary API for CPU/memory data since devicesApi.list does not return health metrics
- [Phase 15]: Used getattr with fallback for config settings so trend/alert services work before Plan 01 adds them to Settings class
- [Phase 15]: Alert events created with consecutive_hits=1 immediately; UI/API filters for >= 2 to confirm (hysteresis pattern)
- [Phase 15]: Site alert tables are separate from device-level alert_rules/alert_events (no coupling between systems)
- [Phase 15]: Signal history uses TimescaleDB time_bucket with 3 range presets (5min/1h/4h buckets)
- [Phase 15]: Alert event count endpoint returns simple JSON for notification bell badge
### Pending Todos
@@ -100,6 +104,6 @@ None yet.
## Session Continuity
Last session: 2026-03-19T12:18:06.830Z
Stopped at: Completed 15-02-PLAN.md
Last session: 2026-03-19T12:19:31.847Z
Stopped at: Completed 15-01-PLAN.md
Resume file: None