Repository navigation
v5.7.0
New — open-ended chores
Kids do helpful things that were never on the list. Until now the only way to reward that was for a parent to create a one-off chore from scratch, which is enough friction that it mostly doesn't happen.
A chore can now be marked Open-ended (child describes it) in the chore editor, beside Require photo proof. It acts as a standing placeholder — call it "Something extra" — and tapping DONE on it opens a sheet asking the child what they did and how many points they reckon it was worth.
- The description is required. It is the chore; without it there's nothing for you to review.
- Open-ended completions always come to a parent for approval, even if the chore has Requires approval switched off. The child names the price, so it must never pay itself.
- Leave the chore on 0 points. The real number is the one you set when you approve.
- Works alongside Require photo proof — the description is collected first, then the camera, and the completion carries both.
New — set the points when you approve
The approvals card has a second control beside Approve: ✍️ when the child left a note, ✎ otherwise. It opens a review sheet showing their words, the evidence photo, and an editable award pre-filled with their suggestion.
Approve itself is still one tap — nothing about the existing flow changes.
The override replaces the chore's base points, so streak and level multipliers still apply on top exactly as they would for any other approval. It's available on the service too:
service: taskmate.approve_chore
data:
completion_id: 8a3b2c1d4e5f6789
points: 15 # optional — omit to use the chore's own valueAnd complete_chore now accepts the two fields the sheet sends:
service: taskmate.complete_chore
data:
chore_id: 8a3b2c1d4e5f6789
child_id: ef19c56175c14bd9
note: "I raked the leaves off the drive"
suggested_points: 15Both are bounded before they're stored — the note is trimmed to 200 characters, the suggestion clamped to 0–999 — and they're only published on the pending-approvals sensor when actually set, so ordinary tap-to-complete chores cost nothing extra.
The approval notification now quotes the child's estimate for an open-ended chore. It used to announce "+0" every time.
(#879, closes #832 — thanks @cabatech for the write-up.)
Fixed — shared jackpots
A funded jackpot could be redeemed twice and charge the family twice (#877). A jackpot is funded from one shared pool and redeemed once per cycle, but the pending-claim guard was per-child: once one child tapped Redeem, a sibling was still offered Redeem for the same pool, in the card and in claim_reward itself. Approving both claims charged the family twice. The lock is now per pool — the second child sees the claim as pending instead of a Redeem button, and the service refuses it.
The classic rewards card drew the jackpot bar wrong (#876). Each child's segment was sized against an equal share of the goal rather than the reward cost, so a 50-point jackpot funded 40 + 10 drew a 70%-full bar under a "50/50" label, and the breakdown read "100%" and "40%". Segments and percentages now both measure against the cost: 40 of 50 reads 80%, 10 reads 20%, and the bar fills.
Behind the scenes
- ESLint bumped to 10.10.0 (#878).
- Twelve new interface strings, translated across all eight locales in the same release.
Upgrading
Nothing to do. Existing chores are unaffected — open_ended defaults to off, and approvals behave exactly as before unless you use the new control.