homeos/app/Models
HomeOS Bootstrap 449533b60d fix: preserve raw input value on role/invert change; strict isOnline (R15)
Codex R15 on the previous fix:
- [P2] reclassifyInput derived the raw input level from the already-displayed
  (inverted) contact state, so toggling inversion twice didn't restore the
  original. The ingest + device page now carry the raw `on` inside the contact
  state, so flipping role/inversion is fully reversible. +1 round-trip test.
- Latent: Device::isOnline() could return null (null demo, no last_seen) and
  break the type hint / views. Now returns a strict bool.

Suite 58 green, 12/12 tabs clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 09:03:00 +02:00
..
Concerns Home dashboard + Host tab: device state & warnings, server status split out 2026-07-17 21:20:38 +02:00
Addon.php feat(addons): installable integrations framework + Ring connect UI 2026-07-18 01:47:02 +02:00
Automation.php feat(automations): trigger→condition→action engine with cooldown + dry-run 2026-07-18 01:11:02 +02:00
Command.php Phase 3: MQTT ingest — Mosquitto bus, Shelly driver, live device state 2026-07-17 22:51:14 +02:00
Device.php fix: preserve raw input value on role/invert change; strict isOnline (R15) 2026-07-18 09:03:00 +02:00
DeviceState.php Fix R15: reject out-of-order MQTT state updates (concurrency) 2026-07-17 23:01:32 +02:00
DiscoveryFinding.php All sidebar tabs are real pages (zero console errors) 2026-07-18 00:16:16 +02:00
Entity.php Tablet control panel: touch tiles, drag-reorder, light colour modal 2026-07-18 00:58:24 +02:00
Metric.php Charts: Chart.js MQTT + host traffic on the Host page 2026-07-18 00:40:32 +02:00
Person.php Phase 5: UniFi presence — poll, person↔client mapping 2026-07-18 00:31:32 +02:00
Room.php Home dashboard + Host tab: device state & warnings, server status split out 2026-07-17 21:20:38 +02:00
User.php Phase 1: bootstrap — Docker stack, Laravel 13, design system, auth 2026-07-17 21:06:20 +02:00