homeos/app/Services
HomeOS Bootstrap 8086a9647b fix(addons): atomic Ring device creation + invalidate ingest gate cache (R15)
Codex R15 on the Ring bridge flagged two issues:
- [P1] Concurrent first-sight messages (retained info + motion on bridge
  startup) could create duplicate devices — no uniqueness on ring_id. Added a
  partial unique index on (config->>'ring_id'); resolveDevice now creates and,
  on the unique violation, re-fetches the winner (race-safe).
- [P2] The install-gate cache was never invalidated, so ingest was dropped for
  up to 15s after install and devices kept being created for up to 15s after
  uninstall. AddonService now forgets the shared cache key on install/uninstall.

+3 tests (unique-index guard, repeated-messages-reuse-device, cache
invalidation). Suite 43 green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 02:01:45 +02:00
..
AddonRegistry.php feat(addons): installable integrations framework + Ring connect UI 2026-07-18 01:47:02 +02:00
AddonService.php fix(addons): atomic Ring device creation + invalidate ingest gate cache (R15) 2026-07-18 02:01:45 +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