ota: implement auto-update with canary strategy and quiet window
Implements Component 6 OTA auto-update system with:
- Canary deployment strategy: update one node first, monitor quality
for configurable duration (default 10 min), then roll out fleet-wide
- Configurable quiet window (default 02:00-05:00 local time) for
automatic updates
- Auto-update mode toggle (auto_update_enabled setting)
- Quality-based rollback: if canary degrades detection quality
beyond threshold (default 5%), abort and alert
- Zone vacancy check: only update when all zones vacant for >10 min
- Dashboard broadcaster integration for real-time progress updates
- Event notifier integration for timeline events
- REST API endpoints: /api/ota/auto/status, /api/ota/auto/trigger,
/api/ota/auto/cancel, /api/ota/auto/config, /api/ota/auto/history
New settings:
- auto_update_enabled (bool, default false)
- quiet_window_start (string, default "02:00")
- quiet_window_end (string, default "05:00")
- canary_duration_min (int, default 10)
- auto_update_quality_threshold (float, default 0.05)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>