Skip to content

v4.4.0

Choose a tag to compare

@tempus2016 tempus2016 released this 26 Jun 23:10
66c806a

TaskMate v4.4.0 is a major release that rolls up the entire codebase-audit remediation campaign plus 14 new features — 49 PRs (#583#631) since v4.3.1. The integration is now meaningfully more secure, more correct, faster, and substantially more capable.

Install / upgrade: HACS → TaskMate → Redownload → pick 4.4.0, then restart Home Assistant. Hard-refresh the browser afterwards so the updated cards load.


✨ New features

  • Chore dependencies / unlocks (FEAT-1, #603) — a chore can be gated until another is approved.
  • Leaderboard seasons (FEAT-2, #624) — monthly reset + champion badge so a perpetual leader doesn't demoralise siblings.
  • Allowance / real-money payout ledger (FEAT-3, #627) — convert points into a parent-confirmable allowance with a payout log (fixed-cost only).
  • Family co-op goals (FEAT-4, #628) — a shared target ("everyone hits 500 → movie night") with a progress card.
  • Per-child quiet hours / DND (FEAT-5, #605) — suppress reminders during school/bedtime windows.
  • Reminder escalation (FEAT-6, #606) — nudge → reminder → parent alert when a mandatory chore stays incomplete.
  • Negative-balance policy (FEAT-7, #595) — allow_negative / floor-at-zero behaviour when a penalty would push a child below zero.
  • Native todo platform (FEAT-8, #602) — each child's due chores as a Home Assistant To-do list (works with the native to-do card and voice assistants).
  • number / select config entities (FEAT-9, #601) — key settings (multipliers, costs, streak-reset mode, card design) exposed as entities for automation.
  • ICS / calendar subscription export (FEAT-10, #625) — a subscribe URL so chores appear in Google/Apple Calendar.
  • Automation blueprint pack (FEAT-11, #622) — ready-made blueprints shipped with the integration.
  • Voice / conversation intents (FEAT-12, #629) — ask your assistant about chore status.
  • Photo-proof gallery card (FEAT-13, #626) — browse submitted evidence photos.
  • Monthly report-card summary (FEAT-14, #623) — per-child monthly recap notification.

🔒 Security

  • SEC-1 (#584) — sanitize header_color before CSS interpolation across the affected cards (closes a config-author CSS-injection vector).
  • SEC-2 (#591) — disk quota + orphan sweep for evidence photos.
  • SEC-3 (#592) — mutating service calls are now written to the admin audit log (previously only panel/WS actions were).
  • SEC-4 / SEC-6 (#599) — tighten the kiosk cross-child completion gate; clamp negative point arguments at the coordinator layer.
  • SEC-5 (#616) — re-validate photo_url on config import.
  • Plus the foreign-photo_url rejection in complete_chore (#583).

🐛 Fixes

  • ERR-1 (#585) — reverse streak-milestone bonuses on reject/undo (fixes points drift).
  • ERR-2 (#590) — project interval recurrences correctly when recurrence_start is unset (availability vs calendar no longer diverge).
  • ERR-3 (#586) — count today's completion when resuming a paused streak.
  • ERR-4 (#587) — track and clear the points-card toast auto-hide timer.
  • ERR-5 (#588) — guard bonuses/penalties create+edit against double-submit.
  • ERR-6 / ERR-8 / ERR-9 (#594) — config-sounds observer leak, child-card badge subscribe race, --mdc-icon-size typo.
  • ERR-7 (#600) — resolve Today/Yesterday graph tooltip labels in the HA timezone.
  • #604 (#615) — rewards card grows to fit all rewards in designed styles.

⚡ Performance

  • PERF-1 (#607) — memoize the per-build chore-availability matrix.
  • PERF-2 (#613) — cache the data snapshot keyed by storage version.
  • PERF-3 (#614) — debounce storage saves via async_delay_save.
  • PERF-4 (#618) — gate service-description rebuilds on a cheap data_version fingerprint.
  • PERF-5 (#593) — run the availability listener on the loop + cache tracked entities.

🧹 Refactor & quality

  • QUAL-2 (#631) — merge the ~95%-identical bonuses/penalties cards into one shared taskmate-incentive-card.js component.
  • QUAL-3 (#630) — extract the copy-pasted header-colour picker into the shared taskmate-design.js layer.
  • QUAL-6 (#619) — enable Ruff isort (I) + bugbear (B).
  • ARCH-1 (#617) — typed storage accessors for root flags.
  • Dead-code removal and set_setting typing fix (#598).

🌍 i18n

  • I18N-1 / I18N-2 (#589) — back-fill 7 missing service translations + the first_come selector key across all locales (de/fr/nb/nn/pt/pt-BR/en/en-GB).

🧪 CI & tests

  • CI-1 (#620) — pin the HA test harness to a py3.12-compatible version.
  • CI-3 (#621) — add an ESLint gate over www/ cards + panel.
  • TEST-1 / TEST-2 (#596, #597) — coverage for the button platform and the timed-task lifecycle.

Validated on the dev HA instance before release: the integration loads cleanly with no tracebacks, the new services and number/select/todo entity surfaces register, and the refactored incentive cards serve correctly.