docs(11): capture phase context for per-event reminders
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
# 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).
|
||||
Reference in New Issue
Block a user