What's new in v0.3.0
This is a major release bringing multi-list support, a fully-featured Lovelace card, and a complete backend rewrite.
Multi-list support
- Each activity list is now an independent config entry — add as many lists as you need (Home, Work, Social, etc.)
- WebSocket commands and HA services all accept
entry_idto route operations to the correct list - Handlers are registered once on first entry setup, making concurrent entry loading race-safe
New Lovelace card (activity-manager-card)
- Visual activity rows with status-coloured SVG progress rings (ok / due soon / overdue)
- Compact mode — smaller rows with inline due-date for dense dashboards
- Mark done — tap any activity to log a completion with a datetime picker
- Manage panel — add, edit, and delete activities without leaving the card
- Card editor — configure list, category filter, title, icon, "due only" toggle, compact toggle, and "due soon" threshold via the Lovelace UI editor
- Subscribes to
activity_manager_updatedevents for real-time refresh - Falls back to entity scan for list discovery when config-entries WS call is unavailable
Backend rewrite
- New
ActivityManagerCoordinator(DataUpdateCoordinator) owns all data and persistence; entities areCoordinatorEntityand stay in sync automatically - Per-entry persistence — each list saves to
.activities_list_<entry_id>.json; legacy.activities_list.jsonis migrated automatically (original backed up to.activities_list.json.bak) - Flexible frequency — frequency can be an integer (days) or a dict with
days,hours,minutes,seconds; stored alongside pre-computedfrequency_msfor fast card rendering - Icon support — activities carry an MDI icon field (defaults to
mdi:checkbox-outline) - WebSocket CRUD (
activity_manager/items,/add,/update,/remove) with proper error responses - HA services (
add_activity,update_activity,remove_activity) updated to match new schema activity_manager_updatedbus event fired on every mutation withaction,item, andentry_id- Config entry migration: v1.1/v1.2 → v1.3 sets
unique_idandtitlefrom existing data - Diagnostics endpoint (
async_get_config_entry_diagnostics) for HA built-in diagnostics support
Breaking changes from 0.0.7
frequencyfield is now a dict ({"days": N, ...}) instead of a plain integer; legacy integer values are migrated automatically on first load- Per-entry persistence replaces the single shared
.activities_list.json(auto-migrated) - Card must be re-added to dashboards; the old card element name has changed to
activity-manager-card