Skip to content

v5.4.2

Choose a tag to compare

@tempus2016 tempus2016 released this 29 Aug 20:44
· 109 commits to main since this release
1072bd6

A patch release fixing three user-reported bugs — one of which has been silently blanking cards since v5.2.0.

Fixed

Rewards and approvals cards went blank whenever a reward claim was pending (#834, #836)

This is the big one. If a child claimed a reward, the rewards card disappeared entirely — an empty space where the card had been — and came back the moment a parent approved or rejected the claim. Approvals cards configured with a specific child_id went blank too.

Two sensors were publishing different data under the same attribute name: sensor.taskmate_rewards uses pending_reward_claims for the list of claims, while sensor.taskmate_pending_approvals used it for a plain count. The count won the merge, the cards tried to filter a number, the render threw, and Home Assistant leaves a card that fails to render as blank space.

It looked random because a count of 0 is falsy and hits the cards fallback — so it only broke once something was actually pending. Present since v5.2.0; if you have ever seen a rewards card vanish, this was why.

Affected: taskmate-rewards-card, taskmate-approvals-card (blank when filtered to a child, wrong claim list otherwise), taskmate-parent-dashboard-card (pending total showed NaN).

German weekday abbreviations on the weekly card (#833, #835)

The daily bar chart read Mo, Di, Heiraten, Do, Fr, Sa, Sonne — "Wed" had been machine-translated as the verb heiraten and "Sun" as the noun Sonne. Now Mi and So. Only the weekly card was affected; the chore editor and notification schedule were always correct.

Activity card and skip-rotation were English in every language (#837, #838)

22 strings shipped untranslated to German, French, Norwegian (Bokmål and Nynorsk) and Portuguese (PT and BR) users:

  • Activity card — the All / Chores / Rewards / Adjustments filter chips, relative timestamps (just now, 5m ago, 2h ago, 3d ago), the no-matching-events state, the end-of-feed marker, the filter aria-label, and every label and helper line in the cards visual editor
  • Admin panel — the skip-rotation button, its confirmation dialog and both toasts

Relative times now follow each languages existing convention (vor 2 T., il y a 2j, 2d siden, há 2d, 2d atrás) rather than a second competing style, and the chip labels reuse the wording the rest of the UI already uses. German also picked up three stragglers every other language had already translated.

Internal

Three classes of guard were added, because all three bugs shared a root cause in the checks themselves:

  • The translation check only verified that a key existed, never that its value was sensible — which is how Heiraten and 22 pasted English strings both passed CI. There is now a ratchet against a frozen baseline of values legitimately identical to English (units, loanwords, French and Portuguese cognates), so any new English copy fails.
  • Weekday abbreviations must now agree across all three places they appear in each locale, and none may be a whole word.
  • The card attribute resolver now refuses to let a companion sensor overwrite another sensors attribute, with the collision list derived from the sensor code itself.

Upgrading

Nothing to do — update through HACS and restart Home Assistant. No configuration changes, no breaking changes to services, entities or card options. The pending_* count attributes on sensor.taskmate_pending_approvals are unchanged and still readable in templates and automations.

Full changelog: v5.4.1...v5.4.2