Releases: tempus2016/taskmate
v4.3.1
Fixed
- Pending-approval counts now include swap requests (#573). The sidebar Activity badge and top-bar pending pill summed only chore completions + reward claims, so they under-counted versus the Pending approvals list. The "Awaiting your approval" banner also printed each number twice. All three surfaces now consistently count completions + reward claims + swap requests, and the banner renders each number once. New
panel.topbar_swap_countstring translated into all locales (de/fr/nb/nn/pt/pt-BR/en-GB).
Changed
- Brand icons trimmed (#575) —
icon.png/icon@2x.pngcropped to minimum empty space (smaller payload, no visual change). - HACS now distributes via a
taskmate.ziprelease asset (#576). Each release carries a zipped build of the integration. This is the first stable release with the asset, and it makes the HACS/README download counters start tracking installs (previously stuck at 0 because source-only releases have no downloadable asset). Existing installs are not retroactively counted.
Upgrading
Update via HACS and restart Home Assistant. Lovelace resources refresh automatically on restart.
v4.3.1-beta.1
🧪 Pre-release for testing — not for production. Cut to validate the new HACS zip-asset distribution path and the #573 fix on the dev instance before stable v4.3.1.
Fixed
- Pending-approval counts now include swap requests (#573). The sidebar Activity badge and top-bar pending pill summed only completions + reward claims, so they under-counted versus the Pending approvals list. The "Awaiting your approval" banner also printed each count twice. All three surfaces now count completions + reward claims + swap requests consistently, and the banner renders each number once. New
panel.topbar_swap_countstring translated into all locales (de/fr/nb/nn/pt/pt-BR/en-GB).
Changed
- Brand icons trimmed (#575) —
icon.png/icon@2x.pngcropped to minimum empty space (smaller payload, no visual change).
Internal
- First release to carry a
taskmate.zipasset (#576). A new CI workflow attaches a zipped copy of the integration to each release. This is the prerequisite for switchinghacs.jsontozip_release, which will make HACS install via the asset and surface a real download count.hacs.jsonis not flipped yet — this pre-release is the end-to-end test of the asset path.
Testing this pre-release
Install/redownload v4.3.1-beta.1 via HACS (pre-releases shown when enabled) and restart Home Assistant.
v4.3.0
TaskMate v4.3.0 — four new features and three fixes since v4.2.1.
✨ Features
- Chore row actions stay next to the title (#568) — the Edit ✏ and overflow ⋮ controls now ride inside the pinned task-name column, so they stay reachable when a wide chore table scrolls horizontally instead of being stranded off to the right. They un-pin and scroll with the name column in bulk-select mode.
- Custom pool deposit amounts (#559) — the Rewards card gains a
deposit_amountsoption to set the quick-deposit button values on pool/jackpot rewards (default[1, 5, 10]), plus a free-form Amount field so a child can deposit any custom value toward a big goal.type: custom:taskmate-rewards-card deposit_amounts: [10, 50, 100]
- Stricter streaks & perfect weeks (#563) — two new settings, Streak needs all tasks and Perfect week needs all tasks, only count a day once every chore due that day is done (rather than just one). Both default to off, preserving the original behaviour.
- Kid-friendly activity card (#565) — a new Show undo buttons toggle (
show_undo, default on) on the Activity card. Turn it off for a children's dashboard so they can see what they earned without being able to undo their own activity. Translated into all locales.type: custom:taskmate-activity-card show_undo: false
🐛 Fixes
- Refund pool allocations when a reward is deleted (#564) — deleting a pool/savings-jar or jackpot reward now refunds the points children had already deposited, instead of losing them.
- Quests & challenges advance on no-approval completions (#558) — completing a chore that does not require approval now correctly progresses active quests and challenges.
- Jackpot claim dialog shows the pool total (#557) — the jackpot claim confirmation now displays the accumulated pool total.
⬆️ Upgrading
Update TaskMate via HACS (it's in the HACS default store), then restart Home Assistant. After restart, hard-refresh your browser so the updated dashboard cards load.
Full changelog: v4.2.1...v4.3.0
v4.2.1
TaskMate v4.2.1
Bug-fix release focused on the Rewards Card.
🐛 Fixed
Claim button missing when the Rewards Card has no child_id (#547)
The card only rendered a claim button when a child context was set, but the in-card child selection was never wired up — so a Rewards Card added without child_id (documented as optional) showed no claim button and rewards could not be claimed. The card now defaults to the first child and shows a child picker (tabs) when no child_id is configured and you have more than one child, so you can choose who is claiming. Works in every card design.
Jackpot rewards could not be claimed with combined points (#552)
A jackpot whose pool mode was off rendered a single-child claim button whose affordability check only looked at one child — so when no single child could afford the cost (but the kids combined could), the button was permanently disabled. Jackpots are now always pool-mode: everyone deposits into the shared jar and it is redeemed once the combined total reaches the cost. Enforced everywhere, including a one-time automatic migration of existing jackpots on load.
Redundant Pool toggle for jackpots (#554)
Since jackpots are always pooled, the reward editor no longer shows a separate Pool mode toggle when Jackpot is enabled.
📖 Docs
- README updated: the Rewards Card child picker, and jackpots as pool-mode (deposit → redeem).
Upgrade notes
No action required. Existing jackpot rewards are migrated automatically; existing Rewards Cards keep working and gain the child picker when no child_id is set.
Full changelog: v4.2.0...v4.2.1
v4.2.0
TaskMate v4.2.0
✨ New
Per-card design styles (#539)
Every TaskMate card can now be themed independently with one of four visual styles, plus a global default that any card can inherit.
- Classic — the original TaskMate look (default; unchanged).
- Playroom — warm, rounded, picture-book styling.
- Console — dark, neon-accented, game-HUD styling.
- Clean Pro — minimal, flat, professional styling.
How to use it:
- Per card: pick a style from the new Design dropdown in each card’s visual editor, or set
card_design: classic | playroom | console | cleanproin YAML. Leave it on Global default (global) to follow the integration-wide setting. - Global default: set once in the TaskMate admin panel; every card left on Global default updates together.
Design tokens are shadow-scoped per card, so mixing styles across a dashboard is safe and cards never leak styling into the rest of Home Assistant.
🐛 Fixed
first_come chores were invisible on child cards and task lists (#540)
A first_come (competitive, first-to-complete-wins) chore was hidden from the entire pool of children. The visibility filter treated every non-everyone assignment mode as a single-active-child rotation and gated the chore on a current-child match — but first_come never sets a single active child, so its identifier was always empty and the chore showed for nobody.
first_come chores are now treated like everyone for the who-can-see-it decision: the whole pool sees the chore until one member fills the shared single-winner quota, after which it disappears for everyone. The frontend mirrors the backend logic and clamps the quota to 1. (PR #541)
Full changelog: v4.1.0...v4.2.0
v4.1.0
TaskMate v4.1.0 adds mandatory chores with parent-controlled late penalties, a native per-child calendar, per-child vacation/streak handling, and an Activity-feed undo — plus a tidier chore admin table.
✨ New
Mandatory chores (#532)
Mark any chore mandatory and give it a penalty-points value. If it isn't completed before its time-of-day window closes, TaskMate raises a per-child review item for parents — points are never auto-deducted; you choose:
- Apply Penalty — deduct the configured points (counts toward career score)
- Postpone — give it the next period today (rolls to tomorrow after the last period); repeatable
- Dismiss — clear it with no penalty
Mandatory chores get a distinct look on the child card (red border, tint, "⚠ Mandatory" badge) so kids see at a glance what's non-negotiable. Detection runs at each period's end, with a midnight pass for Anytime chores and a catch-up scan after restarts. New admin services: apply_mandatory_penalty, postpone_mandatory_chore, dismiss_mandatory_chore. Fully translated into all locales.
Native per-child calendar platform (#529)
Per-child HA calendar entities for chores/schedules.
Per-child & calendar-synced vacation / streak pause (#525)
Vacation periods per child, with streaks paused while away.
Per-action Undo in the Activity card (#531)
Undo individual actions directly from the activity feed.
🔧 Changed
Chore admin actions are now a ⋮ menu (#533)
The Chores table keeps Edit inline and tucks the rest (pause, skip, swap, duplicate, delete, parent-complete) into a kebab dropdown. This also removes the unnecessary horizontal scrollbar on wide screens and pins the task-name column so titles stay visible if the table ever scrolls.
🐛 Fixed
- Wide-screen horizontal scrolling that hid task names in the Chores table (#533).
- Mandatory badge/styling now renders on the child card (the chores sensor now carries the flag) (#532).
🧰 Maintenance
- CI: bump
actions/checkout6→7 andactions/github-script7→9.
⬆️ Upgrading
- In HACS, redownload TaskMate v4.1.0, then restart Home Assistant and hard-refresh the dashboard (cards are cache-busted by the manifest version).
- No breaking changes — existing chores and data load unchanged.
Full changelog: v4.0.2...v4.1.0
v4.0.2
TaskMate v4.0.2
Localisation patch for v4.0.1.
- Translates the new child-card strings — difficulty badge (Easy/Medium/Hard) and chore swap ("Take over a chore" / Request / Requested) — into German, French, Norwegian Bokmål, Norwegian Nynorsk, Portuguese (PT) and Portuguese (BR). Previously these showed in English on non-English instances.
No functional changes. HACS → Redownload → 4.0.2.
v4.0.1
TaskMate v4.0.1
Maintenance release on top of v4.0.0 — finishes wiring photo evidence into the cards, makes the admin panel usable on phones, and surfaces difficulty + chore-swaps to children. Every item below was verified on a live Home Assistant.
🐛 Fixes
Photo evidence now shows on the approval cards (#515)
v4.0.0 captured evidence photos and displayed them in the admin panel, but the approvals and parent-dashboard Lovelace cards never showed them — they didn't render photo_url, and the sensor handed them an unsigned URL a plain <img> can't load. Both cards now render an evidence thumbnail (opens the full image), and the sensor signs the photo URL so it loads without a bearer token.
Admin panel tables scroll horizontally on phones (#516)
Wide tables (e.g. Chores) used overflow: hidden, so on a phone they were clipped and the action buttons were unreachable. Tables now scroll horizontally (and cells no longer squash). Applies to every panel table.
✨ Improvements
Difficulty badge on the child-card (#518)
Children now see an Easy / Hard badge on each chore (medium = default, no badge) — previously the tier only showed up indirectly as a higher/lower points value.
Children can request a chore swap (#519)
A new "Take over a chore" section on the child-card lets a child request a rotation chore currently assigned to a sibling today, sending it to the parent's approval queue — no admin-panel access needed. (Toggle with the card's show_swaps option.)
Upgrading
HACS → TaskMate → ⋮ → Redownload → 4.0.1, then restart Home Assistant. Cards self-register. New i18n strings are English for now (other locales fall back to English until a translation pass).
v4.0.0
TaskMate v4.0.0
The largest TaskMate release to date — a full gamification layer, a big batch of chore/points/reward capabilities, a redesigned notification system, and admin tooling. Everything below is live after a HACS Redownload; cards self-register, so there's nothing to wire up in Lovelace.
✨ Gamification
Levels & XP (#468, #470) — every child now has a level driven by total points earned, with a level badge and an XP-to-next-level progress bar on the child card. Levels also gate avatar unlocks (below).
Avatar unlockables (#492) — each child has an avatar catalogue (Starter, Rocket, Robot, Ninja, Royalty, Champion, On Fire, Diamond…) unlocked by reaching a level, a lifetime-earned threshold, or a streak length. Children pick from what they've unlocked; locked avatars show a 🔒 with the requirement. Managed via the taskmate.choose_avatar service / the child card.
Quests / chore chains (#489) — chain chores into an ordered quest (Quests tab → Add quest). The child advances one step each time the chore at their current step is approved; finishing every step awards a bonus. Quests can be repeatable and assigned to specific children or everyone.
Daily / weekly challenges (#495) — time-boxed goals (Challenges tab → Add challenge) with a scope (daily/weekly), a metric, a target, and a bonus-point reward on completion.
Tiered celebrations (#487) — completion celebrations now scale: bigger, longer celebration moments for bigger achievements rather than one flat animation.
Surprise / random daily bonus (#455) — optional random bonus that can fire once a day to keep things fresh (Settings).
✨ Chores
Difficulty tiers (#416) — mark a chore Easy / Medium / Hard in the chore editor; each tier applies a points multiplier so harder chores are worth more.
Photo / evidence proof (#480, #504/#507) — toggle Require photo proof on a chore. The child is prompted to capture/attach a photo when completing; the completion is held for parent approval with the photo attached. (Known limitation — see below: the photo currently shows in the admin panel's approval/activity view but not yet on the approvals/parent-dashboard Lovelace cards.)
Early-bonus / late-penalty by time (#478) — set a due time on a chore plus an early-completion bonus and/or a late-completion penalty, so timing affects the points awarded.
First-come-first-served assignment (#401) — a new assignment mode that shows a chore to the whole pool; the first child to claim it wins and the chore locks for the others (race-losers get a graceful message, #405/#406).
Complete on behalf of a child (#402) — parents can complete a chore for a child from the Overview/dashboard; this is admin-gated on the backend (as_parent, #410/#411), and auto-approves the completion.
Sibling chore swaps (#483) — a child can request to take over another's rotation assignment for the day (taskmate.request_swap), subject to parent approval.
Vacation / pause mode (#419) — pause chores and freeze streaks for a date range (Settings) so holidays don't break streaks or pile up overdue chores.
Clone / duplicate a chore (#432), optional expiry date (#459), and bulk operations — delete / enable / disable / reassign multiple chores at once (#462).
✨ Points & Rewards
Inter-child points gifting (#466) — parent-controlled transfer of spendable points between children (Children tab → Gift points, or taskmate.gift_points).
Periodic savings interest (#476) and optional points decay (#464) — reward saving, or discourage hoarding, on a schedule (Settings).
Undo / retract (#430) — reverse an applied penalty or bonus from the transaction log (taskmate.undo_transaction).
Per-period reward spending cap (#474) — limit how many points a child can spend per day/week/month.
Reward auto-restock (#457) — rewards with limited stock can refill automatically on a daily/weekly/monthly schedule.
✨ Notifications & Admin
Redesigned notification routing — per-type master toggles and per-recipient routes (Notifications tab), with parent recipients and per-child notify services.
- Weekly digest for parents (#485)
- Test-notification — send a sample of any type to verify routing before going live (#436)
- Streak-milestone notifications (#427)
- Graceful fallback for non-
mobile_appnotify backends (#421)
Badge OR-logic (#425) — badge criteria now support an OR combinator and operators beyond >=.
Config export / import (#438) — back up and restore your full TaskMate configuration.
Admin audit log (#423) — records who changed what, and when.
More events (#434) — fires penalty / bonus / reward-approved / reward-rejected / chore-rejected bus events for your own automations.
🐛 Fixes & hardening
- Service calls now raise clean validation errors instead of unhandled 500s + tracebacks — locked-avatar / over-balance gift / unknown-id / bad-swap, etc. (#501/#502)
- Stale Lovelace resources for the three removed read-only cards are deregistered on startup — fixes 3×
404console errors on every dashboard load for anyone upgrading (#505/#506) - Pending-approval notifications now reach a parent, not the completer — the old code popped an instance-wide persistent notification for every event, leaking parent-only "awaiting approval" messages to the child on a kiosk; parents are now auto-subscribed to default-on parent types (#508/#509)
- Security hardening: linked-child gate, rotation-quota enforcement, CI action SHA-pinning (#415); admin gate on
as_parentcompletion (#410/#411) - Retired the deprecated options flow in favour of the admin panel (#412)
- Friendlier child-undo message (#511)
🌐 Internationalisation
German, French, Norwegian Bokmål/Nynorsk, and Portuguese (PT/BR) updated across the whole batch, including the photo-evidence strings (#499, #512, #472, #440).
⚠️ Known limitations
- Photo evidence on cards: a captured photo is visible in the admin panel's approval/activity view, but not yet on the
approvals/parent-dashboardLovelace cards (those cards don't renderphoto_url, and the sensor doesn't expose a signed URL yet). A follow-up patch will wire this up. Approve from the admin panel to see the photo in the meantime.
⬆️ Upgrading
- HACS → TaskMate → ⋮ → Redownload → 4.0.0, then restart Home Assistant. Cards re-register automatically (check Settings → Dashboards → ⋮ → Resources for
/taskmate/*). - Notifications: for approval alerts to reach only a parent, set that parent recipient's channel (Notifications tab) to a per-person service such as
notify.mobile_app_<your_phone>—notify.persistent_notificationis instance-wide and will also show on kiosk dashboards. - New gamification data (levels, quests, challenges, avatars) initialises automatically; existing points/streaks/history are preserved.
v4.0.0-beta.1
First 4.0.0 beta. Pre-release for HACS testing — in HACS open TaskMate → ⋮ → Redownload, choose v4.0.0-beta.1, restart Home Assistant and hard-refresh the browser.
This build is everything since v3.9.8: two new features (#401, #402).
✨ First-come-first-served chores (#401, PR #403)
A new competitive assignment mode for chores that only need doing once by whoever gets there first — take out the bins, feed the pets.
- New
first_comeassignment mode alongside everyone / alternating / random / balanced. - The chore is shown to the whole pool (its
assigned_tolist, or all children if empty) simultaneously. - First child to complete it wins — that single claim fills the day’s quota and the chore immediately disappears for everyone else (locks on claim, counting pending and approved completions).
- Race losers who tap Complete in the brief refresh window get a clear “already taken” message rather than a generic limit error.
- Approval flow: approve → points go to the winner only; reject → the chore reopens for the whole pool.
- Re-opens automatically on the chore’s normal recurrence (e.g. daily).
- Configurable from the admin panel (mode selector, badge, task-group + daily-limit handling); mode strings localised.
How to use: edit a chore in the TaskMate panel → set Assignment mode to First come, first served → choose which children compete (or leave empty for all).
✨ Complete a chore on behalf of a child (#402, PR #404)
Parents (HA admins) can mark a chore done for a specific child straight from the cards — the child earns their normal points immediately, even for approval-required chores. Solves the “kid did it but forgot to log it” daily friction.
- Parent Dashboard card — Overview tab: tap a child tile to expand their outstanding chores today, each with a ✓ Complete button.
- Overview card — same admin-gated expandable tiles with ✓ Complete buttons.
- Admin-only — non-admin users see the cards exactly as before.
- One click, auto-approved — no second trip to the Approvals tab. All eligibility rules (daily limit, recurrence window, one-shot availability, first-come races) are still enforced.
- Distinct from the panel’s existing “parent did it” action (which awards zero points for the whole chore); this credits the individual child their points.
Changed
taskmate.complete_choreservice gains an optionalas_parentboolean (defaultfalse). Existing callers and automations are unaffected.
How to test this beta
- Redownload
v4.0.0-beta.1, restart HA, hard-refresh. - #402: as an admin, open the Parent Dashboard (Overview tab) or an Overview card → tap a child tile → confirm the outstanding-chores list with ✓ Complete buttons. Complete an approval-required chore → child gets points immediately (nothing lands in Approvals). Log in as a non-admin → tiles are not expandable and no buttons appear.
- #401: create a chore with assignment mode First come, first served across two children → confirm both see it, the first to complete wins, and it vanishes for the other.
Changes: #403 (first-come-first-served) · #404 (complete-on-behalf)