Repository navigation
feat(chores): follow-up chores — when one is done, hand the next one on - #243
Merged
Merged
Conversation
…on (#241) A chore can have up to 3 follow-ups, set in its edit dialog under "When it's done": "then give Unload the dishwasher to Liam, after 2 hours". Concept from #233 by @adamecker; spec and decisions in #241. - Completing the chore today gives each named person an ordinary one-time schedule of the follow-up chore, so the widget, clams, transfer, snooze, history and nightly cleanup apply unchanged. The completion and its follow-ups are one transaction. Back-dated completions don't hand work on. - A delay is a snooze: hidden, and out of the bonus, until it ends. Follow-ups have no due date or time. - Fairness: a follow-up doesn't count toward the daily bonus, or get logged as missed, on the day it appeared; from the next day it counts and stays until done. One rule in getTodaysRegularChoresForUser covers both, and countsTowardDailyBonus keeps the widget in step. - No stacking while a person still has an open follow-up from a rule. - Undoing the trigger removes its follow-ups that nobody has done. - Rules live on the chore. Self, duplicates, more than 3, unknown chores or people, no one picked, a delay over 7 days and loops are refused; chains are fine. Both chore references cascade, so either chore can still be deleted. - The widget captions a follow-up "after Run the dishwasher"; the definitions table shows a chip per follow-up; the schedules table marks follow-up schedules. en and es strings. Schema 27: chore_followups, plus followup_rule_id, triggered_by_schedule_id and triggered_on on chore_schedules. Co-Authored-By: adamecker <eckerpad@gmail.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
adamecker
pushed a commit
to adamecker/HomeGlow
that referenced
this pull request
Oct 8, 2026
… follow-up chores)
adamecker
pushed a commit
to adamecker/HomeGlow
that referenced
this pull request
Oct 8, 2026
…orth#245 icon picker, jherforth#246 event colors, theming)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #241. The concept is from #233 by @adamecker, credited as co-author. This builds it from the spec in #241, with the decisions from its comments:
What it does. In Admin → Family → Chores → Edit chore → When it's done: "Then give Unload the dishwasher to Liam, Ava, right away / after 2 hours."
Server:
chore_followups, plus three columns onchore_schedules);GET/PUT /api/chores/:id/followups, andfollowupsonGET /api/chores;followup_ofonGET /api/chore-schedules;followups_createdandfollowups_removedon complete and uncomplete;getTodaysRegularChoresForUser, which drives both the bonus and missed-chore logging.Client:
countsTowardDailyBonus(utils/choreHelpers.js), used for the widget's "day complete" (celebration and green card), so it agrees with the server;Checked:
server/tests/choreFollowups.test.js, 9 tests covering rules and validation, hand-off with delay, no stacking, today-only, undo, chains, the bonus rule, the missed-logging rule, and deleting either chore. Disabling the first-day rule makes exactly the two fairness tests fail. Full suite 353/353.countsTowardDailyBonusunit tests; client suite 524/524; i18n check and build pass.🤖 Generated with Claude Code