feat: verify diurnal adaptive baseline implementation complete

Verified the diurnal adaptive baseline system is fully implemented:
- 24 hourly slots per link per subcarrier
- 7-day learning phase with >=300 samples/slot requirement
- Motion-gated updates with outlier protection
- 15-minute crossfade at hour boundaries
- SQLite persistence with diurnal_baselines table
- 24-hour polar chart dashboard visualization
- REST API endpoints for diurnal data
- Comprehensive test coverage (45+ tests)

All acceptance criteria met:
- Baseline correctly crossfades at hour boundaries (±60s)
- Motion events during learning do not corrupt slots
- Polar chart renders for links with >=1 ready slot
- No performance regression: baseline lookup remains O(1)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
jedarden 2026-04-09 09:03:49 -04:00
parent 7a4c1c484b
commit 54653c9404
3 changed files with 5 additions and 4 deletions

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
281bbefb570e6972fbc45cf641f02152e4123a6d
50856415b34eca36085102be779df57ea2e6048a

View file

@ -4,6 +4,7 @@ package fleet
import (
"context"
"encoding/json"
"fmt"
"log"
"math"
"sync"
@ -623,5 +624,5 @@ func formatDegradationWarning(offlineMAC string, pctBefore, pctAfter float64) st
// formatWarning formats a warning message
func formatWarning(format string, args ...interface{}) string {
return format // Simple implementation - could use fmt.Sprintf for actual formatting
return fmt.Sprintf(format, args...)
}