You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Two features aimed at the two things you do most: give a chore a real photograph, and adjust a child's points without leaving the panel. Plus a correlation id for anyone wiring TaskMate into something else.
No configuration changes — upgrade is drop-in.
Upload a picture for a chore
The Picture field in the chore editor now takes a photograph, not just an icon from the list. Upload a JPEG, PNG or WebP and it replaces the icon everywhere the chore appears: the child card, the routine card, the reorder card and the panel.
A photo of your dishwasher beats a generic plate outline — and for a child who can't read yet, it's the difference between recognising the task and guessing.
How to use it: Admin panel → Chores → edit a chore → Picture → upload a file. Up to 2 MB per image, 64 MB across all chores.
Files are stored locally in taskmate_images/ beside your config — nothing leaves your machine. They're served over signed URLs so a dashboard renders them without the viewer holding a token, uploading is admin-only because it writes to disk, and the file is deleted when the chore is deleted or re-pictured.
Every child card in the panel now carries a row of quick buttons — −20 −10 −5 and +5 +10 +20 by default — plus ⋯ for a custom amount with an optional reason.
Awarding a few points for something off-list, or docking some, no longer means building a service call by hand.
How to use it: Admin panel → Children → tap a button on the child's card. Set your own amounts in Settings → Quick point amounts as a comma-separated list, e.g. 5, 10, 20. Every adjustment appears in the activity feed and can be undone from there.
taskmate_reward_claimed already carried a claim_id. Its two outcome events, taskmate_reward_approved and taskmate_reward_rejected, now carry the same value, so an external shop, kiosk or lock-screen integration can follow one claim from request to outcome instead of guessing from child and reward ids.
Rejection in particular had no other signal — a rejected claim is deleted outright, so it never reaches the activity feed.
The new External Lock-Screen Shops wiki page documents the safe pattern: never act on a claim, filter both ids, keep a single unlock owner, fail closed.
Manual point adjustments can be undone again — Undo in the activity feed refused every manual add or remove. The check was an allow-list of known reasons, and a manual adjustment carries whatever reason you typed (or none), so it never matched. It's now a deny-list of the derived transactions that genuinely must not be undone — weekend bonuses, streak milestones, pool allocations — and everything else is reversible. (#762, closes #761)
Duplicating a chore no longer destroys its picture — a duplicated chore points at the same image file as the original, and deleting or re-picturing either copy unlinked that file, leaving the other chore showing a broken image with nothing in the log. The file is now kept until the last chore referencing it goes. Found while testing this release. (#769, closes #768)
Internal
The test suite no longer depends on file ordering — twelve tests failed in a full run on Python 3.11 while passing in isolation, because two files used asyncio.get_event_loop() after another test had already closed the loop. (#766, closes #765)
Upgrading
HACS → TaskMate → Redownload → 5.1.0, then restart Home Assistant. Hard-refresh your browser (Ctrl+Shift+R) so the updated cards load.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
🚀 New Release: v5.1.0
Two features aimed at the two things you do most: give a chore a real photograph, and adjust a child's points without leaving the panel. Plus a correlation id for anyone wiring TaskMate into something else.
No configuration changes — upgrade is drop-in.
Upload a picture for a chore
The Picture field in the chore editor now takes a photograph, not just an icon from the list. Upload a JPEG, PNG or WebP and it replaces the icon everywhere the chore appears: the child card, the routine card, the reorder card and the panel.
A photo of your dishwasher beats a generic plate outline — and for a child who can't read yet, it's the difference between recognising the task and guessing.
How to use it: Admin panel → Chores → edit a chore → Picture → upload a file. Up to 2 MB per image, 64 MB across all chores.
Files are stored locally in
taskmate_images/beside your config — nothing leaves your machine. They're served over signed URLs so a dashboard renders them without the viewer holding a token, uploading is admin-only because it writes to disk, and the file is deleted when the chore is deleted or re-pictured.(#763, closes #750)
Adjust points from the Children page
Every child card in the panel now carries a row of quick buttons — −20 −10 −5 and +5 +10 +20 by default — plus ⋯ for a custom amount with an optional reason.
Awarding a few points for something off-list, or docking some, no longer means building a service call by hand.
How to use it: Admin panel → Children → tap a button on the child's card. Set your own amounts in Settings → Quick point amounts as a comma-separated list, e.g.
5, 10, 20. Every adjustment appears in the activity feed and can be undone from there.(#760, closes #746)
claim_idon the reward outcome eventstaskmate_reward_claimedalready carried aclaim_id. Its two outcome events,taskmate_reward_approvedandtaskmate_reward_rejected, now carry the same value, so an external shop, kiosk or lock-screen integration can follow one claim from request to outcome instead of guessing from child and reward ids.Rejection in particular had no other signal — a rejected claim is deleted outright, so it never reaches the activity feed.
The new External Lock-Screen Shops wiki page documents the safe pattern: never act on a claim, filter both ids, keep a single unlock owner, fail closed.
Thanks to @jr551 for this contribution. (#764)
Fixes
Internal
asyncio.get_event_loop()after another test had already closed the loop. (#766, closes #765)Upgrading
HACS → TaskMate → Redownload → 5.1.0, then restart Home Assistant. Hard-refresh your browser (Ctrl+Shift+R) so the updated cards load.
Full changelog: v5.0.4...v5.1.0
Upgrading
Update via HACS or by downloading the latest release and copying to
/config/custom_components/taskmate/.After updating, restart Home Assistant. Lovelace resources will update automatically on restart.
💬 Questions or issues with this release? Reply below or open an issue.
All reactions