v0.21.0
[0.21.0] - 2026-02-06
Changed
- Refactored
AppHandlerinto four focused components:AppRegistry(state tracking),AppFactory(instance creation),AppLifecycleManager(init/shutdown orchestration), andAppChangeDetector(configuration diffing) - File watcher now batches multiple file change events to prevent race conditions (
changed_file_pathpayload is nowchanged_file_paths: frozenset[Path]) - Renamed
active_apps_configtoactive_manifestsonAppRegistry AppManifest.app_confignow accepts both"config"and"app_config"keys
Added
HassetteAppStateEventemitted when app instances change status (includes app_key, status, previous_status, exception details)- New
Busconvenience methods:on_app_state_changed(),on_app_running(),on_app_stopping() BlockReasonenum and blocked app tracking inAppRegistryto distinguish "enabled but excluded by@only_app" from "not configured"ResourceStatus.STOPPINGenum valueenabled_manifestsproperty onAppRegistryfor querying enabled apps regardless ofonly_appfilterStateManager.get(entity_id)for generic entity access with automatic domain-type resolution andBaseStatefallback
Fixed
- Removing
@only_appdecorator now correctly starts previously-blocked apps during hot reload
Full Changelog: v0.20.4...v0.21.0