Releases: ccpk1/ChoreOps
1.5.0-beta.5
Includes all updates from beta 1 - 4 in addition to the fix below.
What's Changed
🐛 Fixes
Full Changelog: 1.5.0-beta.4...1.5.0-beta.5
1.5.0-beta.4
Includes everything in Beta 1 - 3 in addition to the fixes below.
To participate in the discussion: #188
What's Changed
🐛 Fixes
Full Changelog: 1.5.0-beta.3...1.5.0-beta.4
1.5.0-beta.3
Includes everything in Beta 1 and 2 plus another fix to notification specific to IOS.
To participate in the discussion: #188
What's Changed
🐛 Fixes
Full Changelog: 1.5.0-beta.2...1.5.0-beta.3
1.5.0-beta.2
Includes everything in 1.5.0-beta.1 plus the following small fix.
To participate in the discussion: #188
What's Changed
🐛 Fixes
Full Changelog: 1.5.0-beta.1...1.5.0-beta.2
1.5.0-beta.1
ChoreOps v1.5.0-beta.1
This release represents months of focused effort — not just writing code, but listening. A lot of listening. Feedback from users has shaped every priority in this update, and the recurring themes were clear: the foundational systems are good, but there were many opportunities to reduce friction. Chore scheduling, notifications, recurrence handling, standby coverage, and vacation management — these are the bones of ChoreOps, and they needed to be rock solid before anything else should be built on top.
There have been plenty of exciting ideas and suggestions around gamification too, and those have not been ignored. But the decision was deliberate: pour the effort into hardening the core experience first. When the foundation is stable and the daily rhythms are seamless, layering on more gamification becomes additive rather than corrective. No rework, no backtracking — just building on something that already works well. That maturity is settling in now, and this release reflects it.
Of course, ChoreOps already ships with a robust gamification engine — streaks, achievements, points, rewards — and those got their own attention here too. But the headline is the core. Let's get into it.
To participate in the discussion about this beta: #188
⚠️ Upgrading from earlier version — Important Changes
Version 1.5.0-beta.1 includes what was previously available as the 1.0.8 beta series. If upgrading from any earlier release, the following changes apply.
Breaking: Dashboard Helper Architecture
ChoreOps intentionally exposes rich, meaningful state directly into Home Assistant instead of hiding everything behind a private backend database or proprietary cards. That flexibility means the dashboard and helper layer must operate within real Home Assistant limits for helper payload size, template evaluation, and frontend rendering. At high chore counts per user, the previous single-helper pattern could hit those limits.
- High-Density Sharding: Large per-user chore lists are now split across multiple dashboard helper surfaces instead of being forced through one oversized helper. All maintained dashboards have been updated to use the new pattern.
chores_by_labelRemoved: Thechores_by_labelkey is no longer created on the dashboard helper. Labels are still fully supported, but grouped label views must now be rebuilt from chore rows and their labels data.- Action Required:
- All users should re-generate their dashboards after updating. The maintained dashboard templates in the repository have been updated to match.
- Custom dashboards, template sensors, automations, and cookbook-style snippets that read dashboard helper chore data should be reviewed and updated. The old direct-helper pattern is no longer the safe long-term contract for chore-list access.
- Around ~40 chores assigned to one user is the point where the new chore-list pattern becomes necessary. Below that range the older inline pattern may still appear to work, but above it chore rows can be split across multiple helpers, so older patterns may silently return incomplete chore lists.
- Reference: The updated wiki shows the recommended pattern at the Template Cookbook for Chores, Rewards, and Approvals.
Breaking: Removed Sensor Attributes
The time_until_due and time_until_overdue attributes have been removed from chore status sensors. These were recalculated on every update and caused significant Recorder database churn. Dashboards now compute countdowns locally from the underlying due_window_start and due_date fields — same display, no database bloat. Any custom dashboards, template sensors, or automations that read these attributes directly must be updated to use local calculation or the remaining date fields.
👥 Primary-Standby Chores — Accountability With a Backup Plan
Some chores belong to one person, but life does not always cooperate. Primary-Standby chores keep the primary owner accountable while ensuring a backup is always ready to step in — feed the cat, take out the trash, walk the dog — even when the primary is away.
- Permanent Primary + Standby Pool: Assign one primary owner and a list of standby users who can cover when needed.
- Three Claim Modes for Standbys:
- Anytime — jump in whenever
- On Overdue — only claim after the due date passes
- Manual Only — admin must explicitly activate a standby
- Always Resets to Primary: Once the chore is completed and approved, responsibility snaps right back to the primary owner. No confusing handoffs, no lost accountability.
- Standby-Needed Notifications: When a primary-standby chore goes overdue and no standby has claimed it, the system fires a dedicated alert so nothing gets forgotten.
- Pause-Aware: Pausing the primary automatically activates standbys. Unpausing snaps responsibility back. Seamless.
- Intelligent Standby Rotation: When the primary is paused and multiple standbys are available, the system rotates through them using simple rotation logic — distributing the workload across all non-paused standbys. The first listed standby assignee always takes the first turn, ensuring a predictable and fair handoff order.
- Thoughtful Standby Visibility: Standby chores appear in their own separate grouping at the bottom of the standby user's chore list, out of the way of their own responsibilities. That section can be hidden entirely. When a standby chore becomes overdue or is manually assigned to them, it moves up into their overdue list — clearly marked as someone else's chore and available for them to assist.
⏸️ User Chore Pausing — Vacation Mode, Done Right
When a family member needs a break — vacation, camp, illness, or a hectic week — all chores for that user can now be paused. ChoreOps handles the ripple effects intelligently.
- Pause Indefinitely or Set an Auto-Resume Date: Freeze chores with one tap, or schedule the pause to lift automatically when life returns to normal.
- Intelligent Turn Management: Pausing is not simply "stop everything." For shared-turn chores, the turn automatically advances past the paused person. For primary-standby chores, the standby crew is activated so nothing falls through the cracks. When the pause ends, everything snaps back to normal.
- Crystal-Clear Visibility: Paused users see a prominent "Chores Paused" on their dashboard. Their chores are blocked from generating overdue warnings, missed notifications, and statistics — truly frozen, not just hidden.
🔄 Smart Resume — No Punishment for Time Away
The real value appears when chores come back online. Without intervention, a week of paused chores would all be past-due the moment they resume, triggering a flood of notifications and overdue flags.
- Resume & Reschedule in One Tap: Three dedicated resume actions pick exactly what to shift forward:
- Shift Independent Chores — per-person tasks with their own due dates
- Shift Independent & Primary-Standby — the two per-assignee chore types
- Shift All (including shared) — everything, full coverage
- Respects Schedule Logic: Rescheduled chores do not blindly jump to today. They follow their full recurrence rules, applicable days, and time windows — a weekly Monday chore pushed past Friday lands on the next Monday, not Saturday.
- Safe by Default: The bulk reschedule intentionally skips long-recurrence chores (monthly, quarterly, yearly) so a one-week absence does not accidentally bump an annual task forward an entire year. Power users can opt in with an advanced toggle.
📅 Reschedule from Completion — Date Only Mode
A new scheduling mode solves a subtle but persistent annoyance: time drift when chores are completed late.
- Date-Only Rescheduling: For chores using the new "Reschedule from completion — date only" frequency, the next due date is calculated from the completion date while preserving the original due time. Complete a chore two days late, and the next occurrence lands exactly one interval from when it was actually done — at the same time of day it was always due.
- Prevents Time Drift: The old "reschedule from completion" mode used the exact completion timestamp, meaning a chore due at 8 AM but completed at 7 PM would permanently shift to 7 PM going forward. A few late completions could push a morning chore into the evening. The new mode eliminates that drift entirely.
⏱️ Overdue Duration Tracking — Measure What Matters
Knowing a chore is overdue is useful. Knowing how late it typically runs tells a richer story. Overdue duration tracking adds per-chore and per-assignee metrics without any Recorder overhead.
- Per-Chore Sensor Attributes: Each chore status sensor now exposes two new attributes — Avg Overdue Duration and Longest Overdue Duration — showing the average and peak lateness across all completions for that chore.
- Assignee-Level Rollups: Overdue duration stats are aggregated at the user level across all standard time periods — today, this week, this month, this year, and all-time.
- Dashboard & Notification Ready: Rollup fields are published through the existing statistics pipeline, making them available for dashboard cards, conditional styling, and notification triggers.
- Entirely Event-Driven: All tracking is handled in memory during chore approval ...
1.0.8-beta.2
Warning
This beta includes a significant dashboard contract change. All users MUST re-generate their dashboards after updating, and anyone with custom dashboards or template snippets will need to review and update them to the new chore-list pattern.
This beta introduces the new high-density dashboard helper architecture from Issue 124.
What’s new
- Large per-user chore lists can now be split across multiple dashboard helper surfaces instead of being forced through one oversized helper
- Maintained dashboards were updated to use the new helper pattern for resolving chore lists safely at higher densities
- Modern admin dashboards now correctly work with split chore-list helper data
- Shared dashboard template logic now rebuilds grouped chore views from chore rows instead of relying on the old helper-level
chores_by_labeltransport - The vendored dashboard assets were updated to the matching dashboard
1.0.5release content - Includes all previous updates in 1.0.8-beta.1
Why this matters
ChoreOps intentionally exposes rich, meaningful state directly into Home Assistant instead of hiding everything behind a private backend database or proprietary cards. That is one of the things that makes the integration especially flexible, but it also means the dashboard and helper layer must operate within real Home Assistant limits for helper payload size, template evaluation, and frontend rendering.
At very high chore counts per user, the previous single-helper pattern could hit those limits. This beta introduces the architectural change needed to support that workload more safely and reliably.
⚠️ Breaking change
- All users should re-generate their dashboards after updating to this beta
- All custom dashboards, template sensors, automations, and cookbook-style snippets that read dashboard helper chore data should be reviewed and updated
- The old direct-helper pattern is no longer the safe long-term contract for chore-list access
- The
chores_by_labelkey is no longer created on the dashboard helper - Labels are still fully supported, but grouped label views must now be rebuilt from the chore rows and their
labelsdata - Around
~40chores assigned to one user is the point where users should begin using the new chore-list pattern - Below that range, the older inline pattern often still appears to work the same
- Above that range, chore rows can be split across multiple helpers, so older patterns may silently return incomplete chore lists
The updated wiki shows the recommended pattern to use:
https://github.com/ccpk1/ChoreOps/wiki/Tips-&-Tricks%3A-Template-Cookbook-for-Chores,-Rewards,-and-Approvals
Important scope note
- This beta is focused on the high-density dashboard-helper redesign and the matching dashboard asset updates
- The backend data model was not replaced; this work changes how large chore lists are surfaced into Home Assistant
- Very large dashboards may still feel slow if they try to render extremely large chore lists all at once, because that remains a frontend rendering constraint
Beta testing focus
Please test:
- Re-generated maintained dashboards after updating
- Any custom dashboard or template that previously read helper
choresdirectly - Any custom logic that previously depended on
chores_by_label - Users with high chore counts, especially
~40+chores assigned to one user - Admin dashboard chore selection and approval flows
- Dashboard behavior after chore create, edit, delete, reassignment, reload, and restart
- Any missing chore rows, partial chore groups, stale helper behavior, or unexpected dashboard slowdowns
As always for beta builds, feedback is especially valuable if you are running unusually large chore lists per user. That is the exact scale this beta is meant to validate.
Full Changelog: 1.0.7...1.0.8-beta.2
1.0.8-beta.1
ChoreOps 1.0.8-beta.1
Warning
Testing for this beta is still minimal at this point. This build is intended for early validation of the new chore runtime-sync behavior before broader beta coverage and rollout confidence are established.
This beta introduces live runtime synchronization for chore CRUD.
What’s new
- Chore create, edit, and delete now update runtime chore entities without requiring a full integration reload
- Chore-linked sensors, workflow buttons, and dashboard helper payloads now stay in sync during live chore changes
- Options flow chore CRUD now uses the same runtime sync path as services
- Sparse chore edit handling was hardened so omitted optional fields preserve stored values instead of being reset by edit-form defaults
Why this matters
This release is focused on improving dashboard stability and reducing stale or broken chore views after chore changes. The goal is to make chore management feel live and reliable during normal use, especially when adding, editing, or removing chores from the UI.
Important scope note
- This beta only includes the chore runtime-sync improvement work
- Sanctioned system-settings changes still reload the integration where that remains the correct Home Assistant boundary
- No storage schema bump was required for this release
Beta testing focus
Please test:
- Creating chores from services and options flow
- Editing chore assignments and chore names
- Switching between shared and independent chore behavior
- Deleting chores and confirming dashboard/helper cleanup
- Partial chore edits to confirm omitted optional fields are preserved correctly
As always for beta builds, feedback on regressions, stale dashboard behavior, missing buttons, or incorrect helper entity state is especially useful.
Full Changelog: 1.0.6...1.0.8-beta.1
1.0.7
⚠️ Important Change: Approval Authority & Scoping
Strict Assignee Scoping (Fix #81): Non-admin approvers authority is now strictly limited to the linked assignees. Previously, approval capability of a single assignee allowed approval of any assignee.
Admin Approval Toggle: Added a new general options flag to enable or disable Home Assistant Admin account's ability to approve without being linked to an assignee. Home Assistant admin privileges no longer automatically force global approval authority if you want stricter control over your household setup.
Note: This could be a minor breaking change for households that relied on the previous global approval behavior. Please review your user approval links after updating.
What's Changed
🐛 Fixes
-
fix(auth): scope approvals for request 81 by @ccpk1 in https://github.com/ccpk1/ChoreOps/pull/[PR]
Restricts chore approval authority to the correct linked users instead of allowing unintended broader approval access. -
Fix recurring chore due-date validation for 1.0.6 by @ccpk1 in #74
Prevents invalid recurring due-date setups from causing scheduling problems. -
Fix stale chore dates after reset auto-approval by @ccpk1 in #94
Keeps chore dates accurate after resets so completed and reassigned chores do not show outdated deadlines. -
fix(services): sync reassigned chore entities by @ccpk1 in #101
Ensures service actions immediately stay in sync when a chore is reassigned to someone else.
✨ Enhancements
-
feat(auth): add admin approval option by @ccpk1 in https://github.com/ccpk1/ChoreOps/pull/[PR]
Adds a new setting that lets you decide whether Home Assistant admins can approve chores automatically or only explicitly linked approvers can do so.
Docs: General options -
Add decimal precision support for points and dashboards by @ccpk1 in #86
Lets you use point values like 1.5 or 2.25 for more flexible scoring and clearer dashboard totals. Enable in Dashboard Chore Preferences -
Add a service to reschedule chores after a date by @ccpk1 in #104
Makes it easier to push chores forward in bulk after vacations, breaks, or other schedule disruptions. -
Add dashboard filters for unscheduled and future chores by @ccpk1 in #102
Gives families more control over dashboard views by hiding chores that are unscheduled or too far in the future. Enable in Dashboard Chore Preferences
🌐 Localization
-
Add Polish Language
-
Sync French and Polish dashboard translations by @ccpk1 in #103
Improves dashboard language support for French users and adds Polish dashboard translations. -
chore(l10n): sync translations from Crowdin - Add Polish Language by @github-actions[bot] in #87
Expands overall language support by adding Polish translations across the integration.
New Contributors - THANK YOU
- @saschabuehrle made their first contribution in #98
- @CodekExplor made their first contribution to the Polish translations
❤️ Support the Project
If ChoreOps helps keep your household running smoothly, there are a few ways you can fuel its development and prevent open-source burnout!
⭐ Star this repository! (A MUST!)
If you like this integration, the best (and free!) thing you can do is click the Star button at the top of this page. It helps other users discover the project and builds trust as we grow.
Full Changelog: 1.0.5...1.0.6