No description
Find a file
jedarden 3254fcaf67 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>
2026-05-05 11:48:07 -04:00
.beads test: implement acceptance scenario integration tests (AS-1 through AS-6) 2026-05-05 07:38:16 -04:00
.github/workflows test: add CI benchmark gate for fusion loop timing budget 2026-05-04 06:34:50 -04:00
.marathon ci: set VERSION to 0.1.0 for image build 2026-04-06 08:53:25 -04:00
dashboard test: improve HelpOverlay test mocking 2026-05-04 04:55:33 -04:00
docs test: add CI benchmark gate for fusion loop timing budget 2026-05-04 06:34:50 -04:00
firmware feat(provisioning): carry ms_ip in payload for mDNS-less networks 2026-04-24 01:06:05 -04:00
mothership ota: implement auto-update with canary strategy and quiet window 2026-05-05 11:48:07 -04:00
test/acceptance test: implement acceptance scenario integration tests (AS-1 through AS-6) 2026-05-05 07:38:16 -04:00
tests/e2e feat: complete anomaly detection & security mode dashboard UI 2026-04-07 15:50:25 -04:00
.dockerignore feat(deploy): Docker packaging with multi-stage build and compose orchestration 2026-03-26 07:46:15 -04:00
.gitignore Fix ESP-IDF 5.x firmware compilation for ESP32-S3 build 2026-04-14 15:35:03 -04:00
.golangci.yml ci: add golangci-lint static analysis configuration 2026-05-05 02:48:35 -04:00
.needle-predispatch-sha test: implement acceptance scenario integration tests (AS-1 through AS-6) 2026-05-05 07:38:16 -04:00
.needle.yaml feat: trigger CI build and verify deployment 2026-04-06 09:54:08 -04:00
API_IMPLEMENTATION_STATUS.md docs: verify REST API implementation completeness 2026-04-09 18:18:42 -04:00
docker-compose.yml feat(deploy): Docker packaging with multi-stage build and compose orchestration 2026-03-26 07:46:15 -04:00
Dockerfile Fix firmware flashing: correct merge binary, seed overwrite, inline flash UI 2026-04-15 15:41:51 -04:00
fix_ble_handlers.py feat: implement spatial quick actions with follow camera 2026-04-09 22:54:36 -04:00
go.work test: implement acceptance scenario integration tests (AS-1 through AS-6) 2026-05-05 05:45:15 -04:00
PROGRESS.md docs: mark Phase 8 and Phase 9 COMPLETE — all 9 phases of Spaxel implementation done 2026-04-15 19:18:53 -04:00
VERSION ci: auto-bump version to 0.1.309 2026-05-05 11:38:56 +00:00