Commit Graph

  • f82837ca03 test(quick-260610-jlp): drop unused React import in InstructionSheet test Lucas Berger 2026-06-10 14:15:02 -04:00
  • 874c030291 fix(quick-260610-jlp-01): wire SettingsSheet 'How to enable' to open InstructionSheet Lucas Berger 2026-06-10 14:12:38 -04:00
  • 74b5d44712 refactor(quick-260610-jlp-01): extract InstructionSheet into shared component Lucas Berger 2026-06-10 14:10:58 -04:00
  • 1f3c672194 test(05): UAT — Test 5 PASS (coalescing); Test 4 issue (blocked-notif recovery link broken) Lucas Berger 2026-06-10 14:06:13 -04:00
  • 24f4589c4e test(05): UAT Test 1 PASS — scheduled reminder delivers on real iPhone after node-cron→setInterval + catch-up fixes Lucas Berger 2026-06-10 13:15:22 -04:00
  • 914197f848 docs(quick-260610-i4x): plan/summary/verification + STATE row (node-cron→setInterval, Verified) Lucas Berger 2026-06-10 13:09:09 -04:00
  • d9efbc1060 fix(quick-260610-i4x-01): replace node-cron schedule() with setInterval in three broker workers Lucas Berger 2026-06-10 13:06:56 -04:00
  • 3b87fa4581 docs(quick-260610-hbu): plan/summary/verification + STATE row (reminder resilience, Verified) Lucas Berger 2026-06-10 12:40:48 -04:00
  • 19d92c671b test(260610-hbu): drop unused 'now' param in rowForNow helper Lucas Berger 2026-06-10 12:38:37 -04:00
  • 93bb2c1c68 test(260610-hbu-02): update reminderScheduler tests for catch-up + per-uid dedup Lucas Berger 2026-06-10 12:36:23 -04:00
  • 3fdb242f7e fix(260610-hbu-01): catch-up window + per-uid dedup in reminderScheduler Lucas Berger 2026-06-10 12:32:43 -04:00
  • ec38dea1dc test(05): UAT — iOS push delivery PROVEN on-device (test 2 pass); reminder scheduling issue (test 1) Lucas Berger 2026-06-10 12:26:11 -04:00
  • 69e5ae8726 fix(06): set hasRrule on EventDetailPopover test fixtures Lucas Berger 2026-06-10 11:44:37 -04:00
  • 883b00b92b feat(06-06): distinct all-day event pill styling Lucas Berger 2026-06-10 11:41:01 -04:00
  • 96ef0b45b9 feat(06-06): add whole-series edit confirmation prompt Lucas Berger 2026-06-10 11:40:33 -04:00
  • cbf5f98eb9 feat(06-06): wire end-tracking and recurrence-bound control into EventForm Lucas Berger 2026-06-10 11:38:24 -04:00
  • 9aa15c484b test(06-06): add failing tests for end-tracking wiring and recurrence-bound control Lucas Berger 2026-06-10 11:36:49 -04:00
  • 139ef00ed4 feat(06-05): global session-expiry interstitial via QueryCache/MutationCache onError Lucas Berger 2026-06-10 11:32:45 -04:00
  • e7b34a5ce2 feat(06-05): gate app render behind AuthSplash (no pre-auth flash) Lucas Berger 2026-06-10 11:31:17 -04:00
  • d7d4023cf9 feat(06-05): centralize session-expiry detection and extend client types Lucas Berger 2026-06-10 11:29:37 -04:00
  • e5072ff663 test(06-05): add failing SessionExpiredError detection tests Lucas Berger 2026-06-10 11:26:59 -04:00
  • 81f2678987 fix(06-04): add global pulse keyframe and drop redundant spin redefinition Lucas Berger 2026-06-10 11:23:01 -04:00
  • 0c2c26c375 docs(06-03): complete hasRrule server-side exposure plan Lucas Berger 2026-06-10 11:20:17 -04:00
  • 44d336c01b feat(06-03): expose hasRrule on expanded occurrences Lucas Berger 2026-06-10 11:17:13 -04:00
  • 593302ee41 test(06-03): add failing tests for hasRrule + bounded expansion Lucas Berger 2026-06-10 11:11:08 -04:00
  • b869fe0a93 docs(06-02): complete RRULE UNTIL/COUNT serialization plan Lucas Berger 2026-06-10 11:04:04 -04:00
  • d2abb91bd2 feat(06-02): serialize RRULE UNTIL/COUNT and lock FREQ persistence Lucas Berger 2026-06-10 11:00:24 -04:00
  • a59455a727 test(06-02): add failing tests for RRULE UNTIL/COUNT + FREQ persistence Lucas Berger 2026-06-10 10:56:22 -04:00
  • 78a8cb5ccd docs(06-01): complete end-tracking math plan (D-04) Lucas Berger 2026-06-10 10:51:16 -04:00
  • 605f543f81 feat(06-01): implement duration-preserving end-tracking helpers Lucas Berger 2026-06-10 10:49:10 -04:00
  • 16cdbf3d7c test(06-01): add failing tests for end-tracking duration math Lucas Berger 2026-06-10 10:48:09 -04:00
  • 7de1f2482e docs: add backlog 999.10 (admin Settings section) + 999.11 (initial setup wizard) Lucas Berger 2026-06-10 10:38:36 -04:00
  • 53913bb7fd docs(06): record planning complete + annotate roadmap Lucas Berger 2026-06-10 10:37:02 -04:00
  • f6b2322012 docs(06): fix 06-06 depends_on format; populate validation map Lucas Berger 2026-06-10 10:34:44 -04:00
  • f1a2de2cdc docs: resolve D-16 — FamilySync shared calendar synced (id 10) + marked is_shared=1 Lucas Berger 2026-06-10 10:34:41 -04:00
  • 456121969f docs(06): create ux-polish phase plan (6 plans, 2 waves) Lucas BergerandClaude Opus 4.8 2026-06-10 10:25:41 -04:00
  • d52acad54c docs(06): add validation strategy Lucas Berger 2026-06-10 10:04:34 -04:00
  • 3d0ec986a2 docs(06): research phase for ux-polish Lucas Berger 2026-06-10 10:02:29 -04:00
  • 4b77ec0254 docs(06): add brand assets & iconography contract to UI-SPEC Lucas Berger 2026-06-10 09:45:00 -04:00
  • 9707fd0d85 docs(06): UI design contract for ux-polish phase Lucas BergerandClaude Sonnet 4.6 2026-06-10 09:38:54 -04:00
  • cdbe94deb2 docs(state): record phase 6 context session Lucas Berger 2026-06-10 09:33:43 -04:00
  • afdc8d124d docs(06): capture phase context Lucas Berger 2026-06-10 09:33:36 -04:00
  • 497daf6add docs: add deferred REQ-IDs to REQUIREMENTS traceability table Lucas Berger 2026-06-10 09:26:45 -04:00
  • 7369c9f1d1 docs(quick-260610-czd): plan/summary + STATE quick-task row, resolve deployment.md dev-cmd todo Lucas Berger 2026-06-10 09:25:24 -04:00
  • 39e2ee067e docs(quick-260610-czd-01): add host-side local dev run instructions to deployment.md Lucas Berger 2026-06-10 09:24:22 -04:00
  • b745515753 docs(quick-260610-cr8): plan/summary/verification + STATE quick-task row Lucas Berger 2026-06-10 09:20:22 -04:00
  • 736adf7c58 docs(quick-260610-cr8): adopt drizzle generate+migrate, retire db:push Lucas Berger 2026-06-10 09:20:13 -04:00
  • 1a95d81a3f docs(quick-260610-cr8-01): repoint deployment.md to generate+migrate, warn against push Lucas Berger 2026-06-10 09:16:30 -04:00
  • f452400517 chore(quick-260610-cr8-01): remove db:push script from apps/api/package.json Lucas Berger 2026-06-10 09:15:30 -04:00
  • 68ff72d195 docs(phase-05): add security threat verification (26/26 closed) Lucas Berger 2026-06-10 09:09:45 -04:00
  • 3b54ea2f12 wip: phase 05 web-push paused — code complete + verified, awaiting iOS/Android device UAT Lucas Berger 2026-06-09 22:51:04 -04:00
  • 17dfaac5f2 docs(05): mark phase pending iOS/Android device UAT (verification human_needed) Lucas Berger 2026-06-09 22:48:07 -04:00
  • ecb576eb8a test(05): verification (12/12 code) + persist 5 human UAT items Lucas Berger 2026-06-09 22:47:14 -04:00
  • 02526d07eb docs(05): code review clean after --fix --all --auto (3 iterations) Lucas Berger 2026-06-09 22:41:28 -04:00
  • 17756fc523 fix(05-review): NEW-WR-01 emit delete changes when server returns zero events (whole-cache clear) Lucas Berger 2026-06-09 22:39:11 -04:00
  • c7ef5811d1 fix(05-review): NEW-CR-01 pre-resolve SW registration to eliminate await before pushManager.subscribe Lucas Berger 2026-06-09 22:39:05 -04:00
  • dc8516beb8 docs(05): add code review report Lucas Berger 2026-06-09 22:33:09 -04:00
  • 44fbb2bb3a fix(05-review): commit 0004 migration meta (journal + snapshot) Lucas Berger 2026-06-09 22:33:09 -04:00
  • 1044de57ae test(05-review): add CR-01/WR-01 reminder pruning tests and IN-01 actor-name tests Lucas Berger 2026-06-09 22:30:03 -04:00
  • 50da9b3bca fix(05-review): IN-01 resolve actor display name in eventChangeDispatcher for D-02/D-03 Lucas Berger 2026-06-09 22:25:32 -04:00
  • 8cecbab7ab fix(05-review): CR-02 change endpoint/p256dh to varchar to prevent InnoDB prefix-index truncation Lucas Berger 2026-06-09 22:24:23 -04:00
  • 82eccc9017 fix(05-review): CR-04 pre-fetch VAPID key into state; no await before pushManager.subscribe Lucas Berger 2026-06-09 22:24:00 -04:00
  • e5f7b1ab7c fix(05-review): CR-03 notificationclick uses matchAll+focus+navigate for deep-link URLs Lucas Berger 2026-06-09 22:22:27 -04:00
  • 7702f7e19a fix(05-review): CR-01+WR-01 prune sentReminders after each scan and mark-sent after dispatch Lucas Berger 2026-06-09 22:22:04 -04:00
  • f058aefb88 fix(05-review): WR-04 collect delete changes after db.delete to avoid race in sync fan-out Lucas Berger 2026-06-09 22:21:37 -04:00
  • 814d29dbdd fix(05-review): WR-05 re-confirm push subscription server-side on health-check mount Lucas Berger 2026-06-09 22:21:16 -04:00
  • 76e0fb9588 fix(05-review): IN-03 use useId() instead of Math.random() for headingId in PushPermissionPrompt Lucas Berger 2026-06-09 22:21:05 -04:00
  • bf64a0a0e1 fix(05-review): IN-02 add empty-string fallbacks for VAPID env vars in docker-compose Lucas Berger 2026-06-09 22:20:50 -04:00
  • c69bd30aaa fix(05-review): WR-03 log error.message not raw error in push route catch blocks Lucas Berger 2026-06-09 22:20:43 -04:00
  • b666b1d114 fix(05-review): WR-02 remove unused 'and' import from listChangeDispatcher Lucas Berger 2026-06-09 22:20:30 -04:00
  • e496b5e00a docs(05-07): complete eventChangeDispatcher + syncCalendar diff plan Lucas Berger 2026-06-09 22:06:14 -04:00
  • 30e9de13f9 feat(05-07): implement eventChangeDispatcher + syncCalendar diff/title/onChanges Lucas Berger 2026-06-09 22:03:52 -04:00
  • 4ef6333201 docs(05-08): complete opt-out + reliability surface plan Lucas Berger 2026-06-09 21:53:33 -04:00
  • 010a69c047 feat(05-08): PermissionDeniedBanner + App mount + CalendarShell onOpenSettings wiring Lucas Berger 2026-06-09 21:50:48 -04:00
  • 1de4aa5a3e feat(05-08): SettingsSheet (master toggle D-09) + AppNav avatar promoted to button Lucas Berger 2026-06-09 21:45:59 -04:00
  • 458d6e4fef feat(05-08): extend usePushSubscription with isSubscribed, setEnabled, permission state (D-10) Lucas Berger 2026-06-09 21:43:31 -04:00
  • 8e741cf528 docs(05-06): complete reminderScheduler plan Lucas Berger 2026-06-09 21:40:22 -04:00
  • b95f671485 feat(05-06): implement reminderScheduler — shared timed 15-min reminder scan Lucas Berger 2026-06-09 21:38:32 -04:00
  • 9b04528fd6 docs(05-05): complete list-change push plan Lucas Berger 2026-06-09 21:29:09 -04:00
  • d2ce4e08c7 feat(05-05): hook notifyListChange into list/item mutations (reorder excluded) Lucas Berger 2026-06-09 21:26:29 -04:00
  • 69231043e4 feat(05-05): implement listChangeDispatcher — access-scoped, self-suppressed, coalesced push (NOTIF-02) Lucas Berger 2026-06-09 21:24:48 -04:00
  • 97f7026095 test(05-05): add failing tests for listChangeDispatcher — RED gate Lucas Berger 2026-06-09 21:20:34 -04:00
  • 60c247d8ed docs(05-04): complete push vertical slice plan Lucas Berger 2026-06-09 21:16:23 -04:00
  • d816f79271 fix(05-04): wrap setVapidDetails in try/catch to prevent startup crash on bad VAPID key Lucas Berger 2026-06-09 21:13:58 -04:00
  • bf8f63b47c feat(05-04): usePushSubscription hook + PushPermissionPrompt + App mount Lucas Berger 2026-06-09 21:09:41 -04:00
  • e5953ebb31 feat(05-04): SW migration to injectManifest with push + notificationclick + denylist Lucas Berger 2026-06-09 21:06:32 -04:00
  • f6f1374904 feat(05-04): push subscription API + VAPID startup wiring Lucas Berger 2026-06-09 21:04:16 -04:00
  • f07c85d0c9 docs(05-03): complete pushCoalescer TDD plan Lucas Berger 2026-06-09 21:00:22 -04:00
  • c1758de05e feat(05-03): implement pushCoalescer — per-(list,actor) sliding debounce (D-01/D-03) Lucas Berger 2026-06-09 20:58:42 -04:00
  • 7af827a9b9 test(05-03): add actorId assertion in burst test — fix unused var lint warning Lucas Berger 2026-06-09 20:58:01 -04:00
  • fc6f534f0a docs(05-02): complete pushDispatcher TDD plan Lucas Berger 2026-06-09 20:56:13 -04:00
  • e4170b3823 feat(05-02): implement pushDispatcher — VAPID send + 410/404 prune Lucas Berger 2026-06-09 20:54:47 -04:00
  • 4e0b06d3fd docs(05-01): mark NOTIF requirements complete in traceability Lucas Berger 2026-06-09 20:52:35 -04:00
  • 1cc08f1bf1 docs(05-01): complete Wave-0 foundation plan Lucas Berger 2026-06-09 20:52:23 -04:00
  • ef558b65be test(05-01): add Wave-0 RED scaffolds + VAPID fixture + setup truncation Lucas Berger 2026-06-09 20:50:35 -04:00
  • 2cae72e9dd docs: capture todo - Gitea CI regression + Docker build/publish Lucas Berger 2026-06-09 20:49:07 -04:00
  • 73fcdaf075 feat(05-01): add push_subscriptions table + calendar_events.title column; VAPID env wiring Lucas Berger 2026-06-09 20:47:44 -04:00
  • 80bbdc1735 chore(05-01): install web-push and workbox push dependencies Lucas Berger 2026-06-09 20:47:35 -04:00
  • ddc84f1ffc docs(05): finalize plan 05-07 (D-13 boundary) + add patterns doc Lucas Berger 2026-06-09 20:34:15 -04:00
  • 36fb929a40 docs(05): create phase plan Lucas Berger 2026-06-09 18:44:55 -04:00