Skip to content

feat(alarm): recurring daily-repeat alarms (US-002) - #18

Merged
Hectormalvarez merged 6 commits into
mainfrom
feat/us-002-recurring-alarms
Sep 15, 2026
Merged

Hectormalvarez merged 6 commits into
mainfrom
feat/us-002-recurring-alarms

Conversation

@Hectormalvarez

Copy link
Copy Markdown
Owner

What

US-002: recurring (daily-repeat) alarms — story docs/stories/US-002-recurring-alarms.md (MVP scope: daily repeat only; weekday scheduling recorded as future work).

Core

  • Persisted schema-additive flags: repeat + lastRungDay on Alarm; legacy JSON (no flags) normalizes to one-shot — no migration, no data loss
  • Repeat alarms are never consumed by ringing: the ring consumes the local calendar day (lastRungDay), so a dismiss mid-grace-window or a page reload cannot re-ring the same occurrence; the next day rings again
  • Toggling clears both markers (re-arms from the configured time); snooze interplay unchanged

UI

  • "Daily" checkbox in the create form (label + focus ring per US-005 control language); resets after add
  • Monochrome ↻ SVG indicator on repeat rows only (role="img" + aria-label "Repeats daily")

Verification

  • 152/152 unit tests (12 new covering AC-2..AC-8 incl. next-day re-ring, legacy parse, toggle re-arm, second-due queuing); make check green
  • 7/7 Playwright assertions (indicator on repeat rows only, flags persist to localStorage, checkbox resets); 2 screenshots in the story folder

@Hectormalvarez
Hectormalvarez merged commit bc4a065 into main Sep 15, 2026
4 checks passed
@Hectormalvarez
Hectormalvarez deleted the feat/us-002-recurring-alarms branch September 15, 2026 16:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant