homeos/database/migrations
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
..
0001_01_01_000000_create_users_table.php Phase 1: bootstrap — Docker stack, Laravel 13, design system, auth 2026-07-17 21:06:20 +02:00
0001_01_01_000001_create_cache_table.php Phase 1: bootstrap — Docker stack, Laravel 13, design system, auth 2026-07-17 21:06:20 +02:00
0001_01_01_000002_create_jobs_table.php Phase 1: bootstrap — Docker stack, Laravel 13, design system, auth 2026-07-17 21:06:20 +02:00
2026_07_17_201001_create_rooms_table.php Home dashboard + Host tab: device state & warnings, server status split out 2026-07-17 21:20:38 +02:00
2026_07_17_201002_create_devices_table.php Home dashboard + Host tab: device state & warnings, server status split out 2026-07-17 21:20:38 +02:00
2026_07_17_201003_create_entities_table.php Home dashboard + Host tab: device state & warnings, server status split out 2026-07-17 21:20:38 +02:00
2026_07_17_201004_create_device_states_table.php Home dashboard + Host tab: device state & warnings, server status split out 2026-07-17 21:20:38 +02:00
2026_07_17_202001_create_commands_table.php Phase 3: MQTT ingest — Mosquitto bus, Shelly driver, live device state 2026-07-17 22:51:14 +02:00
2026_07_17_203001_add_observed_at_to_device_states.php Fix R15: reject out-of-order MQTT state updates (concurrency) 2026-07-17 23:01:32 +02:00
2026_07_17_203002_add_demo_to_devices.php Fix R15: per-device MQTT ACLs, monotonic presence, real-device online semantics 2026-07-17 23:08:29 +02:00
2026_07_18_000001_create_persons_discovery_automations_tables.php All sidebar tabs are real pages (zero console errors) 2026-07-18 00:16:16 +02:00
2026_07_18_010001_add_mac_to_persons.php Phase 5: UniFi presence — poll, person↔client mapping 2026-07-18 00:31:32 +02:00
2026_07_18_020001_create_metrics_table.php Charts: Chart.js MQTT + host traffic on the Host page 2026-07-18 00:40:32 +02:00
2026_07_18_030001_add_panel_to_entities.php Tablet control panel: touch tiles, drag-reorder, light colour modal 2026-07-18 00:58:24 +02:00
2026_07_18_040001_add_dry_run_to_automations.php feat(automations): trigger→condition→action engine with cooldown + dry-run 2026-07-18 01:11:02 +02:00
2026_07_18_050001_create_addons_table.php feat(addons): installable integrations framework + Ring connect UI 2026-07-18 01:47:02 +02:00
2026_07_18_060001_add_ring_id_unique_index_to_devices.php fix(addons): atomic Ring device creation + invalidate ingest gate cache (R15) 2026-07-18 02:01:45 +02:00