homeos/app/Services
HomeOS Bootstrap 3ed49ee882 fix(automations): honor conditions + atomic cooldown claim (R15)
Codex R15 flagged two P1 correctness bugs in AutomationEngine:
- Conditions were never evaluated — a trigger→condition→action rule ran its
  actions unconditionally. Now every stored condition must match current
  entity state (AND) before actions run; a false condition does NOT touch the
  cooldown clock, so the rule stays armed for its next legitimate trigger.
- Cooldown was read-check-then-save, so concurrent queue workers on a burst of
  state changes could all pass the check and each fire. Now claimed with a
  single conditional UPDATE — exactly one worker wins the race (H5).

+3 tests (condition true/false, cooldown-not-armed-on-failed-condition).
AutomationTest 9 green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 01:15:22 +02:00
..
AutomationEngine.php fix(automations): honor conditions + atomic cooldown claim (R15) 2026-07-18 01:15:22 +02:00
DeviceCommandService.php Tablet control panel: touch tiles, drag-reorder, light colour modal 2026-07-18 00:58:24 +02:00
HomeStatus.php Fix R15: require prod hardening in docs; drop N+1 in warnings 2026-07-17 22:03:20 +02:00
MqttCredentialProvisioner.php Fix R15: provision a per-device MQTT credential when assigning a device 2026-07-18 00:50:53 +02:00
SystemHealth.php Home dashboard + Host tab: device state & warnings, server status split out 2026-07-17 21:20:38 +02:00
UnifiClient.php Phase 5: UniFi presence — poll, person↔client mapping 2026-07-18 00:31:32 +02:00