spaxel/mothership/internal
jedarden 9c36b0dab3 feat(bf-28dv): implement zone-aware rate control (Component 24)
Implement fleet-level sentinel link coordination with zone-aware idle modes:

- Zone membership tracking: Track which nodes belong to which zones and update zone state on motion events
- Zone idle detection: Detect when all nodes in a zone have been idle and designate one sentinel link per zone at 5 Hz
- Sentinel designation: Lexicographically smallest MAC becomes sentinel (5 Hz), others drop to 1 Hz
- Fleet idle coordination: When all zones are idle, only sentinel links run at 5 Hz for minimal bandwidth
- Adjacent zone ramping: When motion detected in a zone, ramp adjacent zones to 5 Hz for preemptive coverage
- RampZone() method: Interface for prediction engine to preemptively ramp zones when P(arrival) > threshold
- Zone-aware tests: Comprehensive tests for zone membership, idle detection, sentinel designation, fleet coordination, and backward compatibility

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-05 23:16:08 -04:00
..
analytics style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
apdetector style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
api feat(api): wire build-time version through StatusHandler (bf-iekf) 2026-07-04 04:29:59 -04:00
auth style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
automation style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
autoupdate style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
ble fix(lint): resolve golangci-lint v2 failures blocking CI 2026-06-03 23:34:50 -04:00
briefing style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
config feat(onboarding): migration window, Unpaired badge, re-provision flow 2026-04-24 18:46:47 -04:00
dashboard style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
db style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
diagnostics style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
diskspace style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
doctor style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
eventbus style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
events style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
explainability style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
falldetect style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
fleet feat(ingestion): persist hello-announced node position in fleet registry (bf-24xp) 2026-07-03 18:42:34 -04:00
floorplan style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
fusion test(fusion): assert default-placement produces non-zero peaks (bf-1kid) 2026-07-03 19:18:46 -04:00
guidedtroubleshoot feat(ingestion): persist hello-announced node position in fleet registry (bf-24xp) 2026-07-03 18:42:34 -04:00
health style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
help style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
ingestion feat(bf-28dv): implement zone-aware rate control (Component 24) 2026-07-05 23:16:08 -04:00
learning style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
loadshed style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
localization style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
localizer/fusion style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
mqtt style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
notifications style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
notify style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
ota style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
oui style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
prediction style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
provisioning style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
recorder feat(diskspace): implement runtime disk-space monitor with pause-on-low behavior 2026-05-24 10:43:25 -04:00
recording test: implement acceptance scenario integration tests (AS-1 through AS-6) 2026-05-05 05:45:15 -04:00
render style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
replay style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
shutdown style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
signal test(signal): harden PhaseSanitize property test, add collinear edge case (bf-nzev) 2026-07-04 05:27:35 -04:00
simulator feat(simulator): seed spread geometry for default virtual nodes in registry bridge (bf-xrej) 2026-07-03 19:00:37 -04:00
sleep style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
startup feat: startup phase sequencing with 30s timeout enforcement 2026-04-07 12:40:25 -04:00
timeline style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
tracker style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
tracking style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
volume style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
webhook style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00
zones style(mothership): run go fmt to format all Go code 2026-05-24 15:30:02 -04:00