notify: overdue job nudges #99

Closed
opened 2026-08-16 14:24:16 +00:00 by nalum · 1 comment
Owner

#91 gives a job's owner a nudge on the day the deadline falls. After that day passes, an unfinished job goes silent again — the owner forgets, the board quietly accumulates overdue work, and nobody hears about it. The web paints overdue flags, but only for whoever looks.

Add an overdue nudge: the owner gets a reminder when a job's deadline has passed and the job is still open ("“Feed the cat” was due yesterday").

Design questions to settle first:

  • Cadence: a single day-after nudge (simplest, recommended first cut), or repeat until done (daily gets naggy fast for a family install)?
  • A distinct JOB_OVERDUE kind, or reuse JOB_DUE with different copy? A distinct kind lets a member mute the nag but keep the day-of reminder.
  • Unassigned overdue jobs: same decision as #91 — recommend the same answer both places.

This extends the #91 ticker (same scheduler, deadline < today instead of = today), so build it after #91 — possibly in the same PR if the design stays small. Usual kind plumbing if a new kind: proto enum, notify method, en+ga messages, webhook decorator, web push-preference checkbox + PUSH_KINDS entry, Android channel.

Follow-up from the reminders audit.

#91 gives a job's owner a nudge on the day the deadline falls. After that day passes, an unfinished job goes silent again — the owner forgets, the board quietly accumulates overdue work, and nobody hears about it. The web paints overdue flags, but only for whoever looks. Add an overdue nudge: the owner gets a reminder when a job's deadline has passed and the job is still open ("“Feed the cat” was due yesterday"). Design questions to settle first: - Cadence: a single day-after nudge (simplest, recommended first cut), or repeat until done (daily gets naggy fast for a family install)? - A distinct JOB_OVERDUE kind, or reuse JOB_DUE with different copy? A distinct kind lets a member mute the nag but keep the day-of reminder. - Unassigned overdue jobs: same decision as #91 — recommend the same answer both places. This extends the #91 ticker (same scheduler, deadline < today instead of = today), so build it after #91 — possibly in the same PR if the design stays small. Usual kind plumbing if a new kind: proto enum, notify method, en+ga messages, webhook decorator, web push-preference checkbox + PUSH_KINDS entry, Android channel. Follow-up from the reminders audit.
Author
Owner

Decisions (2026-08-16): distinct JOB_OVERDUE kind, fires every day the job stays open past its deadline (naggy by design; a member can mute it and keep JOB_DUE). Unassigned overdue jobs broadcast to everyone, matching #91.

Decisions (2026-08-16): distinct **JOB_OVERDUE** kind, fires **every day** the job stays open past its deadline (naggy by design; a member can mute it and keep JOB_DUE). Unassigned overdue jobs broadcast to everyone, matching #91.
nalum added reference main 2026-08-16 14:43:36 +00:00
nalum changed reference from main to v1.5.0 2026-08-16 14:43:58 +00:00
nalum closed this issue 2026-08-16 19:44:24 +00:00
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
eagraiclainne/app#99
No description provided.