2.0.60 (2026-11-13)
Bug Fixes
- #515: rebuild fan endpoints when capabilities change (4daad8e), closes #515
- #519: resume thermostat from Off on cooling setpoint writes (a87ba0f), closes #519
- #530: raise attestation CSR warning grace from 10s to 30s (82b865f), closes #530
- #530: renew root UniqueID on factory reset, bridge id survived erase (20364ca), closes #530
- add-on panel 403, slow test timeouts, camera deallocate retry (0d824c7)
- apply bridge port edits to the ServerNode (4408c4a)
- audit fixes for path traversal, crashes, and leaks (63b960f)
- backend: live bridge import, clear optional PUT, guard reset (3082e38)
- backup restore caps, flush ids, restart, prune auto backups, drop mDNS VPN (a7756f2)
- bridge icon check returns false on a failed fetch (d2658ed)
- bridge id, port, ws, auth, shutdown, storage, release (1bfa318)
- bridge recovery, HA refusals, endpoint races, and legacy cleanup (5e68466)
- bridge waits for HA, battery, identity re-key, session supervisor (bebebe1)
- bundle bootstrap.ts so it configures the bundled matter.js config (2838247)
- close armed failsafe before factory reset erase (#541) (c688ccc)
- compare update versions numerically, skip older stables (0558733)
- composed: share endpoint logic and fix mapped state updates (559be98)
- electrical sensor units and blank state handling (165c835)
- fan on with no percentage, label rename, area fetch warn, mdns diff (64fdc98)
- fan preset path, wind casing, hvac modes, pump, humidifier (841d0e7)
- filter preview counts, skip hidden, add devices, export, ws url (9eb40ed)
- frontend: address audit findings and cleanup (edbbbfb)
- frontend: stabilize hooks, close sockets, reset errors (e0d5992)
- guard mode labels, share area logic, and track pending mode (e449086)
- host and origin guard, ws auth, plugin name, backup cap, base href (f1ba6c0)
- host origin, backup size, json, icons, images, plugin spec (882b989)
- keep last areas on failed HA registry query (3c19290)
- level with on-off, thermostat drift, blank sensors, serial 32 bytes, fabric log, device class, race, reload, bridge rollback (14600a0)
- light off-level control and thermostat setpoint drift while Off (8254c6a)
- log sub ids, clear stale timer, reuse callback, drop migrate (b8b9ffb)
- media player power, keypad mute, input index, water heater off (c6686fa)
- non-admin token, ws close on auth change, refresh retry, hamh skip (11bfbdc)
- pairing window, config version, mdns container links, ipv6 check (8d6e947)
- refresh retry, controller fabric log, and entities without state (1ba169c)
- refresh retry, slow bridge, config version, mdns, controller log (f76d029)
- serialize plugin installs, drop failed mounts, guard config (5b7846f)
- session, watchdog, reset, topology, mutex, identity (4f71a43)
- share lock PIN logic, enforce length bounds, and clean up (58bf899)
- share switch press logic, clamp flow, guard y=0, use unit helper (62614bd)
- skip bare light On after color/level change if on (#542) (9de6b54)
- spread mapping config in backup restore to keep all fields (f0b5e2d)
- stable identity endpoint id clash, file overwrite, refresh retry budget (f11843c)
- thermostat setpoint lost on resume, raise/lower resume, wizard device labels, mdns retry (94cc3ce)
- vacuum dock, offline reset, lock pin, config, HA, bridge (cc7db13)
- vacuum: map native Roborock operational errors (#535) (22b9a1c)
- vacuum: preserve Roborock jobs through mid-clean recharges (#536) (20f9fe2)
- vacuum: read mapped clean mode outside export filter (#533) (fe62b3a)
- vacuum: report readiness and guard native cleaning starts (#538) (3d000a0)
- vacuum: respect combined-only mop capabilities (#532) (05e1191)
- vacuum: select unique automatic intensity tags (#534) (9397154)
- wait for group sensors before bridge start (#540) (9839923)
Features
- #507: add productNameFromModel bridge feature flag (a2b8b18), closes #507
- #527: block thermostat Off with climateBlockOff (643128a), closes #527
- #537: add Vietnamese locale (36e1aea), closes #537
- add-on option access_token to act as its own user (3f7a631)
- frontend: replace top bar nav with side drawer and flat UI (d408c7a)
- translate remaining hard-coded bridge UI strings (516b7db)