Files
familysync/.planning/milestones/v1.1-phases/11-per-event-reminders/11-DISCUSSION-LOG.md
T
2026-06-18 22:21:38 -04:00

3.0 KiB

Phase 11: Per-Event Reminders - Discussion Log

Audit trail only. Do not use as input to planning, research, or execution agents. Decisions are captured in CONTEXT.md — this log preserves the alternatives considered.

Date: 2026-06-13 Phase: 11-per-event-reminders Areas discussed: Existing-alarm display, All-day treatment, Notification copy, Recurring events


Existing-alarm display (edit / preserve)

Option Description Selected
"Custom (kept)" sentinel Read-only Custom entry; preserve verbatim unless changed
Snap to nearest preset Show nearest preset; risks silent rewrite
Show exact if single Render real value for single relative alarm; "Custom" for absolute/multiple

User's choice: Show exact if single. Notes: Off-list single relative alarm shows its real value ("45 min before"); absolute-time or multiple alarms → read-only "Custom (kept)", preserved verbatim (CAL-14).


All-day treatment

Option Description Selected
Hidden when all-day Picker disappears once All-day toggled on
Shown but disabled Picker greyed with a hint
(Free text) All-day fires reminders like any event, in days User override of the locked roadmap criterion

User's choice: All-day events DO get reminders, with day-granularity leads. Notes: Reverses ROADMAP criterion 5 / PITFALLS Pitfall 3 (which locked selector hidden/disabled for all-day). Follow-up: presets None / 1d / 2d / 1wk, fire at 9 AM local. Later in discussion the user added "Same day" to the all-day presets ("why not"), giving None / Same day / 1d / 2d / 1wk.


Notification copy

Option Description Selected
Humanized relative "Starts in 2 days" / "in 1 hour" / "in 30 min"
Absolute local time "Starts at 3:00 PM" / "Tomorrow 9:00 AM"
Keep "Starts in N min" No change

User's choice: Humanized relative. Notes: Replaces hardcoded Starts in ${minutes} min (reminderScheduler.ts:157), which is absurd for long leads.


Recurring events

Option Description Selected
Series-level only One VALARM on master; per-occurrence fire via scheduler
Per-occurrence override RECURRENCE-ID override per occurrence

User's choice: Series-level only. Notes: Per-occurrence override deferred to a possible future phase.


Claude's Discretion

  • Picker placement within EventForm.tsx (reuse Recurrence <select> pattern).
  • Exact humanized-unit thresholds/wording for the notification body.

Deferred Ideas

  • Per-occurrence (RECURRENCE-ID) reminder override — its own phase if wanted.
  • Reminder snooze / notification-preferences UI — already out of scope per REQUIREMENTS.md.
  • Reviewed-not-folded todos: PWA BottomTabBar overlap (Phase 17), Gitea CI regression/Docker publish (Phase 8 / backlog).