[exact push-notification copy — not specified in spec]
[exact copy — not specified; §3.6 step 1 sets digest_time_of_day = 6:00pm local to the parent]
Parent sets preference per-child or globally (§3.6 step 7). Default on subscribe = real_time (§3.7 postcondition).
Tap → app → directly on photo, full-screen, zero intermediate steps (§3.6 step 2, AC2).
Swipe ← → between recent photos (§3.6 step 3).
AC5: no blurred preview, no urgency, no countdown overlay — no dark patterns.
37 days until this photo expires [inference: exact badge placement and wording not specified; §5.1 I-Retention and §3.11 require 90-day deletion but do not specify surfacing]
Chronological, most recent first (§3.6 step 4). Parent's last selected view is remembered across sessions (§3.6 step 5).
| Date | Photo | Visibility |
|---|---|---|
| today | photo | 89 days left |
| yesterday | photo | 88 days left |
| last Monday | photo | 83 days left |
Timeline Gallery — simple toggle (§3.6 step 5).
From either view, parent MAY download any photo. Download delivers original-resolution file, not a thumbnail (§3.6 step 6).
Download photoA scheduled warm delivery: a photo chosen from the day's captures with a short Message written from the child's perspective. Delivered at midday_heartbeat_time, set to 2:00pm local to the parent (§3.6).
A message from [child]
["Mommy, today I tried finger painting for the first time" — NOT the mock's content. Placeholder; actual message source is Q6 open parameter — see §5.4. Mock must not invent the message body.]
AC3: at most one Midday Heartbeat per linked child per day, even if multiple photos qualify.
[photo selection algorithm absent a teacher flag — Appendix A item 3 unresolved; options: first of day / most-tagged / random / require teacher flag]
Parent sees a soft, clean state. No blurred preview, no teaser, no countdown timer (§5.2 no-dark-patterns, AC5).
[exact copy — not specified. Spec requires "clean, clear state — not a teaser"]
Resubscribe
Photos past 90 days are hard-deleted within 24 hours of their soft-mark. Once deleted:
Spec: "photos visible in the app are never expired in-session" (§3.6 error cases). Expiry is applied at the retention job's next run, not mid-view.