Selora AI is now MIT licensed. The proprietary Selora Homes Software License is gone — use, copy, modify, distribute and sublicense freely. The HACS license check is enforced in CI again.
This release is built around three themes: Selora knows your household, the Health tab tells you why, and chat can see and delete.
Highlights
Selora's Memory — household profile
A new Settings → Selora's Memory card holds up to 2,000 characters of free-form context about your home: who lives there, bedtimes, preferences, things to never automate. "Family of 4. Kids in bed by 20:30. Prefer warm, dim lights after sunset. Never auto-lock the garage (cat door)."
That text is prepended to the chat, architect and hourly-suggestion prompts, so replies and proposed automations reflect how your household actually runs. It's framed to the model as data, never as instructions — it can't override safety, confirmation or risk rules. Edits apply to the very next message with no integration reload. On Selora AI Local the editor advertises the smaller cap the on-device context window can actually keep.
Health score you can act on
- A "What's affecting your score" card now sits under the health gauge: one bar per check, biggest offender first, with points lost and issue count. Click a row to jump to that section of the checklist.
- Scoring was reworked so the number moves with the size of the problem. Device-outage checks (offline, unresponsive, unstable, low battery) now scale with the share of your device fleet affected rather than saturating. Previously a home with 50 dead devices scored about the same as one with 5.
- Integration errors say what actually broke — "The hue integration reported an error: Timeout connecting to 192.168.1.5" instead of a generic line, with repair-issue severity, title and learn-more link carried through.
- A 90-second boot grace period. During startup the Health tab says "Your home is still starting up" instead of showing a score inflated by devices that haven't reconnected yet.
- The
Home Healthsensor now mirrors the panel exactly — it reads the persisted audit instead of running its own formula, and an audit follows every health scan so it tracks the ~15 min cadence, not 24 h.
Chat can see images, and delete things
- Drop or paste screenshots into the composer — up to 4 images per message, downscaled client-side, EXIF (including GPS) stripped from every attachment. The affordance only appears when the active provider and model can actually read images. Images ride the current turn only and are never written to the conversation store.
delete_automationanddelete_scenechat tools. "Get rid of the Movie Night scene" renders a red confirmation card listing exactly what will be removed, with Delete / Cancel. Admin-only, YAML-managed targets only, identity re-verified at tap time, and YAML rolled back if the reload fails.
Automation flow diagrams, substantially rewritten
if/then/elsenow expands into If / Otherwise branch panels instead of collapsing to one opaque node.- Redundant triggers are hidden, bare state triggers merge into one pill, and conditions get explicit Any of / All of / None of the following headers.
- Common LLM-emitted templates render as plain language — "Living Room Light is on", "Temperature above 20", "Humidity between 45 and 55" — instead of "Template evaluates to true".
enabled: falsesteps are tagged as disabled rather than drawn as live ones;not_to/not_from, list-valuedto:/from:, andfor:durations are no longer dropped from descriptions.
Elsewhere in the panel
- Fuzzy search in the conversation sidebar — matches titles and message bodies, with a highlighted context snippet under body-only hits.
- Expanded automation cards show the full description, and the mobile layout got a pass (pills wrap, enable/disable moved into the ⋮ menu, disabled rows are recognizable at a glance).
- Recipe pills are clickable — tap the badge on an automation or scene to open the recipe that installed it.
- HA-native scenes can be deleted from the panel. Any scene in
scenes.yamlis now deletable, not just Selora-created ones, including hand-written entries with noid.
Fixes
- Refining an automation in chat no longer flips it on or off. The pre-edit live state is preserved across the reload, including a toggle you make during the write. Explicit intent still wins — YAML-editor saves, version restores and MCP toggles remain authoritative.
- Risk gate can't be bypassed by refining. An edit that escalates an automation to elevated risk (say, adding a
shell_command) now forces it disabled for review. - Restoring a version no longer silently kills a running automation.
- Selora Cloud self-heals expired sessions. Expiry is read from the token's own JWT
expclaim, and a surprise 401 forces one refresh-and-retry instead of failing until you re-link. - Deleting an id-less scene could remove the wrong scene if an unrelated entry happened to carry that string as its
id. Fixed, with ambiguous cases refused rather than guessed. - MCP server registration is now idempotent — every integration reload used to append duplicate aiohttp routes that grew unbounded for the process lifetime.
- Health-audit disk writes cut ~4× (≈96/day → ≈24/day) by writing only on content change. Real flash wear relief on SD-card and eMMC installs.
- Images are framed to the model as untrusted data, so text rendered inside a screenshot is reported on, never followed as an instruction.
- Chat quick-action chips render in one place only (the composer row) instead of duplicating into the message bubble.
- Unsaved Memory and pricing-override edits are no longer discarded by the settings save.
ble_monitordevices (Xiaomi/ATC thermometers, plant sensors, SwitchBot meters) count toward the attention tally again — a dead battery there is real hardware, not a passing tag.
Upgrade notes
⚠️ sensor.*_home_healthattributes changed. Thesignalsandinsightsattribute lists were removed;bandandbreakdownwere added. Dashboard cards or templates usingstate_attr(..., 'signals')or'insights'will break.⚠️ The Home Health sensor isunavailableuntil the first audit completes (~3 min after startup) instead of publishing a placeholder. Expect a small gap in history at each restart.⚠️ Your health score may drop on upgrade without anything having changed in your home — the new formula scales with the share of your fleet affected, where the old one saturated around 88.- The Scenes tab can now delete scenes Selora didn't create (any
scenes.yamlentry). Storage/UI-managed scenes remain untouched. - On mobile, the automation enable/disable toggle moved into the ⋮ menu. Desktop keeps the inline toggle.
- Selora Cloud image attachments need a gateway that advertises
supports_vision. An older gateway is treated as no-vision and the attach affordance simply stays hidden. - Insights export changes are additive within schema v2 — older producers omit
health,apps,integrations[].versionanddevices[].transient; consumers should default to unknown /[]/""/false. - Known gap: the new health-breakdown and settling strings ship English-only. All other new UI strings are translated across the 13 shipped locales.