v0.37.0 — ⚠ Breaking: async registration, unified executions
0.37.0 (2026-05-30)
⚠ BREAKING CHANGES
-
bus registration is now async — add
awaitto everyself.bus.on_*()call (on_state_change,on_attribute_change,on_call_service,on_component_loaded,on).name=is now required on every registration (it was optional); omitting it raisesListenerNameRequiredError. -
scheduler registration is now async — add
awaitto everyself.scheduler.run_*()andschedule()call (run_in,run_once,run_every,run_minutely,run_hourly,run_daily,run_cron).# before self.bus.on_state_change("light.kitchen", handler=self.on_change) self.scheduler.run_in(self.task, 5) # after await self.bus.on_state_change("light.kitchen", handler=self.on_change, name="kitchen_light") await self.scheduler.run_in(self.task, 5)
-
HandlerInvocationandJobExecutionremoved — use the unifiedExecutionmodel with akinddiscriminator ("listener"or"job"). The separate read models and their compat wrappers are gone. -
Subscription.registration_taskremoved — registration is now synchronous with the database;sub.listener.db_idis a valid integer as soon as the awaited call returns. -
dropped_no_sessionremoved — the counter is gone from API responses, the dashboard status badge, and thesessionstable column. -
CLI/REST endpoint renamed —
/api/telemetry/handler/{id}/invocations→/api/telemetry/listener/{id}/executions.
Features
- add automated doc screenshot capture pipeline (#912) (901b81b)
- redesign telemetry database around a unified executions table (#922) (b97a495)
Refactoring
- decompose bus_service.py into focused modules (#919) (477e10c)
- extract Service and RestartSpec from resources/base.py (#921) (69f77e9), closes #813
- standardize abort handling, extract predicate scaffold, widen Button ref type (#909) (f747ad9)
Documentation
- add documentation quality rules for voice, structure, and examples (#910) (c489b58)
- add Svelte-derived voice guide for documentation rewrites (#920) (0174ab9)
- audit docs against quality rules — voice fixes and snippet migration (#917) (2fa8cfb)
- fix stale README and add link-check CI (#918) (9361da0)