Commit Graph

  • 57424e6770 feat(18-04): add fetchAdminTimezone + setAdminTimezone to PWA API client Lucas Berger 2026-06-14 22:35:19 -04:00
  • 9798d795a7 docs(18-03): complete broker rewire plan Lucas Berger 2026-06-14 22:33:39 -04:00
  • c80845cdba feat(18-03): route all-day reminder TZ through stored household_timezone Lucas Berger 2026-06-14 22:31:37 -04:00
  • 94daca3c7a test(18-03): add failing stored-TZ all-day tests for scheduler + outbox Lucas Berger 2026-06-14 22:24:25 -04:00
  • 08c39165bf docs(18-02): complete admin timezone endpoints plan Lucas Berger 2026-06-14 22:13:53 -04:00
  • 3bd6a5d97e feat(18-02): admin timezone GET/PUT/seed endpoints Lucas Berger 2026-06-14 22:12:35 -04:00
  • f109b3cf38 test(18-02): add failing integration tests for admin timezone endpoints Lucas Berger 2026-06-14 22:11:05 -04:00
  • ac60161726 docs(18-01): complete household timezone accessor + IANA validator plan Lucas Berger 2026-06-14 22:08:37 -04:00
  • eaceff0295 feat(18-01): implement household timezone accessor + IANA validator Lucas Berger 2026-06-14 22:07:16 -04:00
  • db0077c3c3 test(18-01): add failing tests for household timezone accessor + IANA validator Lucas Berger 2026-06-14 22:05:58 -04:00
  • 6cdc1ed22e docs(18): create phase plan Lucas Berger 2026-06-14 21:53:38 -04:00
  • 68a315e164 docs(18): create phase plan (4 plans, 3 waves) Lucas Berger 2026-06-14 21:51:13 -04:00
  • efae7159a4 docs(18): add validation strategy Lucas Berger 2026-06-14 21:41:06 -04:00
  • 12fb5d2adb docs(18): research phase domain Lucas Berger 2026-06-14 21:39:56 -04:00
  • 79111232b6 docs(state): record phase 18 context session Lucas Berger 2026-06-14 21:25:46 -04:00
  • 5d961b7c37 docs(18): capture phase context Lucas Berger 2026-06-14 21:25:40 -04:00
  • 8be2b533d2 docs(phase-12): UI design contract for Initial Setup Wizard Lucas BergerandClaude Sonnet 4.6 2026-06-14 21:16:23 -04:00
  • 6d50f7f41c Merge pull request 'chore(dev): make the dev stack reachable through the Pangolin tunnel' (#20) from chore/dev-stack-config into main luckberg 2026-06-14 21:09:26 -04:00
  • cc875de0eb chore(dev): allow tunnel host + all interfaces in Vite dev server Lucas BergerandClaude Opus 4.8 2026-06-14 19:03:38 -04:00
  • a2ad5bdbd3 chore(dev): enable DEV_AUTH_BYPASS in the dev compose stack Lucas BergerandClaude Opus 4.8 2026-06-14 19:03:38 -04:00
  • e907b69145 Merge pull request 'Phase 11: Per-Event Reminders (CAL-13/14, NOTIF-04/05/06)' (#19) from gsd/phase-11-per-event-reminders into main luckberg 2026-06-14 14:06:43 -04:00
  • eff9b13c66 fix(11): make CI green — pin TZ in all-day scheduler tests, drop redundant casts Lucas BergerandClaude Opus 4.8 2026-06-14 11:22:04 -04:00
  • 156bdf057b docs(phase-11): evolve PROJECT.md — per-event reminders validated Lucas BergerandClaude Opus 4.8 2026-06-14 08:32:23 -04:00
  • ff06a8479b docs(phase-11): complete phase execution (5/5 plans, CAL-13/14 + NOTIF-04/05/06) Lucas BergerandClaude Opus 4.8 2026-06-14 08:31:31 -04:00
  • c86020ac21 docs(phase-11): mark gap-closure plan 11-05 complete; post-merge gate green (typecheck, API 347, PWA 206) Lucas BergerandClaude Opus 4.8 2026-06-14 08:30:51 -04:00
  • 9bc6c7274c docs(11-05): complete gap-closure plan — SUMMARY Lucas Berger 2026-06-14 08:28:24 -04:00
  • a3aec2d21d style(11-05): prettier format EventForm.test.tsx WR-03 additions Lucas Berger 2026-06-14 08:26:00 -04:00
  • a04c76b823 fix(11-05): WR-03 gate helper text on active preset set only Lucas Berger 2026-06-14 08:24:24 -04:00
  • 401591374a test(11-05): RED — WR-03 helper text suppressed for timed off-list 10080 Lucas Berger 2026-06-14 08:24:01 -04:00
  • 7d94afb2d8 fix(11-05): WR-02 add .max(10080) to reminderLeadMinutes in both Zod schemas Lucas Berger 2026-06-14 08:22:13 -04:00
  • 30b8c9643a test(11-05): RED — WR-02 reminderLeadMinutes max(10080) in both Zod schemas Lucas Berger 2026-06-14 08:21:44 -04:00
  • bc605e6a42 fix(11-05): WR-01 positive-duration TRIGGER classifies as custom (no Math.abs) Lucas Berger 2026-06-14 08:15:31 -04:00
  • d18aba7816 test(11-05): RED — WR-01 positive-duration TRIGGER classifies as custom Lucas Berger 2026-06-14 08:15:06 -04:00
  • 16ac235476 fix(11-05): CR-02 all-day-aware push body (no "Starts in 0 min") Lucas Berger 2026-06-14 08:14:08 -04:00
  • 1caa2e36d2 test(11-05): RED — CR-02 all-day-aware humanizeLeadMinutes Lucas Berger 2026-06-14 08:12:56 -04:00
  • f6b47ebf1e fix(11-05): CR-01 surface reminderIsCustom to preserve custom VALARMs on edit Lucas Berger 2026-06-14 08:11:46 -04:00
  • 5d6cb47191 test(11-05): RED — CR-01 custom alarm round-trip Lucas Berger 2026-06-14 08:08:24 -04:00
  • 6cdf9d22f9 docs(11): gap-closure plan 11-05 — fix CR-01/CR-02 blockers + WR-01/02/03 from code review Lucas BergerandClaude Opus 4.8 2026-06-14 08:03:44 -04:00
  • 89132be3be docs(11): code review (2 blockers, 3 warnings) + goal verification (5/5, 1 live-check deferred) Lucas BergerandClaude Opus 4.8 2026-06-14 08:02:08 -04:00
  • 213f2547cf docs: backlog 999.19 — dev user full app functionality without real-calendar sync Lucas BergerandClaude Opus 4.8 2026-06-14 06:59:35 -04:00
  • 8cd4c0e2c2 docs(11-04): complete reminder picker plan — SUMMARY, STATE, ROADMAP, REQUIREMENTS Lucas Berger 2026-06-14 06:58:18 -04:00
  • b9b3191b5b style(11-04): apply prettier to phase-11 modified files Lucas Berger 2026-06-14 06:54:11 -04:00
  • fe549ef2b0 feat(11-04): add reminder picker to EventForm (allDay swap, edit pre-population, payload mapping) Lucas Berger 2026-06-13 22:36:31 -04:00
  • 2c30afe8ff feat(11-04): add reminderLeadMinutes to CreateEventPayload + CalendarOccurrence Lucas Berger 2026-06-13 22:33:06 -04:00
  • ca76b6118e docs(phase-11): update tracking after wave 2 Lucas BergerandClaude Opus 4.8 2026-06-13 22:29:09 -04:00
  • adf5d13e28 merge(phase-11): wave 2 plan 11-03 backend plumbing Lucas Berger 2026-06-13 22:27:54 -04:00
  • 23a773edc3 docs(11-02): complete variable-lead scheduler plan — 28/28 tests, 314/314 suite Lucas Berger 2026-06-13 22:27:12 -04:00
  • 0dc227a863 feat(11-02): Task 3 — all-day 9 AM-local fire branch + dedup prune fix (NOTIF-06) Lucas Berger 2026-06-13 22:25:54 -04:00
  • 72773a35eb docs(11-03): complete Plan 03 — reminderLeadMinutes end-to-end plumbing Lucas Berger 2026-06-13 22:24:01 -04:00
  • 57f9d67685 feat(11-02): Task 2 — humanizeLeadMinutes tests + body dispatch assertion (D-09) Lucas Berger 2026-06-13 22:22:03 -04:00
  • e1714316be feat(11-03): surface reminderLeadMinutes on CalendarOccurrence + GET select (D-10) Lucas Berger 2026-06-13 22:21:42 -04:00
  • 62d3f58684 feat(11-02): GREEN Task 1 — variable-lead window, uid:dtstartMs dedup, drop isShared restriction Lucas Berger 2026-06-13 22:20:51 -04:00
  • 7df11d2780 test(11-03): add failing tests for reminderLeadMinutes on CalendarOccurrence (D-06/D-10) Lucas Berger 2026-06-13 22:19:33 -04:00
  • 1cc0d7278a feat(11-03): sync.ts derives reminderLeadMinutes from VALARM classification (D-07/NOTIF-05) Lucas Berger 2026-06-13 22:18:46 -04:00
  • cdca93094a test(11-03): add failing tests for sync.ts reminderLeadMinutes upsert from VALARM Lucas Berger 2026-06-13 22:17:51 -04:00
  • 4f42b7535b feat(11-03): reminderLeadMinutes schema + VALARM wiring in outbox worker (CAL-13/CAL-14) Lucas Berger 2026-06-13 22:16:42 -04:00
  • 9635aa9e8e test(11-02): RED — variable-lead, uid:dtstartMs dedup, NULL-vs-0, personal calendar tests Lucas Berger 2026-06-13 22:15:55 -04:00
  • 79f6871167 test(11-03): add failing tests for reminderLeadMinutes VALARM wiring (CAL-13/CAL-14) Lucas Berger 2026-06-13 22:14:42 -04:00
  • f3b74cc87e docs(phase-11): update tracking after wave 1 Lucas BergerandClaude Opus 4.8 2026-06-13 22:10:22 -04:00
  • d80a9589ac docs(11-01): complete VALARM serialization + classification plan summary Lucas Berger 2026-06-13 22:06:11 -04:00
  • d9eb5c1875 feat(11-01): implement VALARM builders, classifier, extractor, computeAlertInstantUtc Lucas Berger 2026-06-13 22:04:18 -04:00
  • 860c7419ac test(11-01): RED — VALARM builders, classifier, extractor, computeAlertInstantUtc Lucas Berger 2026-06-13 21:59:45 -04:00
  • 7d070a6b69 docs: add Phase 18 (timezone) to roadmap; refresh knowledge graph Lucas BergerandClaude Opus 4.8 2026-06-13 21:54:54 -04:00
  • e169b138f9 docs(11): sequence plan 11-02 behind 11-01, cite D-09; record planning completion Lucas Berger 2026-06-13 21:26:16 -04:00
  • 6109d4ca49 docs(11): add pattern map for per-event reminders Lucas Berger 2026-06-13 21:20:55 -04:00
  • cfeb8d8660 docs(11): create per-event-reminders phase plan (4 plans, 3 waves) Lucas Berger 2026-06-13 21:20:09 -04:00
  • a3c4aea9b1 docs(11): add Nyquist validation strategy for per-event reminders Lucas Berger 2026-06-13 21:07:14 -04:00
  • feec030509 docs(11): research phase — VALARM, NULL-vs-0 schema, off-list classifier, variable-lead scheduler Lucas Berger 2026-06-13 21:04:32 -04:00
  • 4e09ebdb75 docs(11): record UI-SPEC approval in state Lucas Berger 2026-06-13 20:53:56 -04:00
  • ecdd94a907 docs(11): UI design contract for per-event reminders Lucas Berger 2026-06-13 20:52:33 -04:00
  • 771608d3d4 docs(11): capture phase context for per-event reminders Lucas Berger 2026-06-13 20:49:25 -04:00
  • 770e7baa32 Merge pull request 'Isolate local API tests to a dedicated familysync_test DB (quick 260613-ndv)' (#18) from quick/260613-ndv-test-db-isolation into main luckberg 2026-06-13 20:32:44 -04:00
  • 4517432dca style(quick-260613-ndv): prettier-format global-setup.ts Lucas Berger 2026-06-13 17:12:52 -04:00
  • e687cb96e7 docs(quick-260613-ndv): plan + summary + state for test-DB isolation Lucas Berger 2026-06-13 17:09:55 -04:00
  • 24cb7569bf fix(quick-260613-ndv): reset familysync_test each run (truncate-all) Lucas Berger 2026-06-13 17:08:46 -04:00
  • f39bd308b2 chore(quick-260613-ndv-02): clean-slate comment in setup.ts + README local-test docs Lucas Berger 2026-06-13 17:02:50 -04:00
  • 1eda6678bc chore(quick-260613-ndv-01): add globalSetup for familysync_test isolation Lucas Berger 2026-06-13 16:56:55 -04:00
  • 6f566f23a2 Merge pull request 'Phase 10 — Admin Role & Settings (ADMIN-01/02/03)' (#17) from gsd/phase-10-admin-role-settings into main luckberg 2026-06-13 17:10:45 -04:00
  • f2e228360a Merge branch 'main' into gsd/phase-10-admin-role-settings luckberg 2026-06-13 16:50:06 -04:00
  • 6dff7aa012 docs(roadmap): add Phase 17 (UI Optimization & Polish) + document phone bottom-bar overlap Lucas Berger 2026-06-13 16:43:00 -04:00
  • 2067b8c91c docs(phase-10): evolve PROJECT.md after phase completion Lucas Berger 2026-06-13 15:47:15 -04:00
  • 94c62e213e docs(phase-10): complete phase execution Lucas Berger 2026-06-13 15:46:09 -04:00
  • 2f347cbd98 fix(10): guard shared-calendar designation against non-existent target (CR-01) Lucas Berger 2026-06-13 15:38:35 -04:00
  • ebde3e1d08 docs(10): add code review report Lucas Berger 2026-06-13 15:35:03 -04:00
  • 3693da6d0b docs(10-04): complete PWA admin surfaces plan Lucas Berger 2026-06-13 15:28:03 -04:00
  • 79fe3e0e04 fix(10-04): prettier format + remove unnecessary type assertions Lucas Berger 2026-06-13 15:22:50 -04:00
  • 7808426a2f feat(10-04): AdminPage + /admin route + conditional nav entries + e2e spec Lucas Berger 2026-06-13 15:16:11 -04:00
  • 2c2c71e7cc feat(10-04): add CredentialSheet and SetupBanner components Lucas Berger 2026-06-13 15:03:57 -04:00
  • bfe1eff5a3 feat(10-04): extend client.ts — MeUser.isAdmin+needsProviderSetup + admin/self-service fetchers Lucas Berger 2026-06-13 15:02:06 -04:00
  • 0f41993a95 docs(10-03): complete admin-api-surface plan summary and state update Lucas Berger 2026-06-13 14:57:30 -04:00
  • d2f6d5d77b feat(10-03): implement credentialSync helper, adminRouter, and self-service /api/me/credential Lucas Berger 2026-06-13 14:54:23 -04:00
  • 037a7ed4c1 test(10-03): add RED tests for adminRouter guard, credential no-echo, shared-calendar, self-service Lucas Berger 2026-06-13 14:49:35 -04:00
  • ac36e106ef feat(10-03): export loadClientForUser and triggerTargetedResync from outboxWorker Lucas Berger 2026-06-13 14:46:54 -04:00
  • a5d88f75aa docs(10-02): complete admin-role-primitives plan summary and state update Lucas Berger 2026-06-13 14:39:49 -04:00
  • 1adff61cec feat(10-02): extend /api/me with isAdmin + needsProviderSetup (D-03) Lucas Berger 2026-06-13 14:37:38 -04:00
  • e5889df03e test(10-02): add failing /api/me isAdmin+needsProviderSetup tests (RED) Lucas Berger 2026-06-13 14:36:45 -04:00
  • 72e0140f01 feat(10-02): add first-login-wins is_admin bootstrap in upsertUser (D-01) Lucas Berger 2026-06-13 14:35:11 -04:00
  • 9e1507f7a8 test(10-02): add failing upsertUser is_admin bootstrap tests (RED) Lucas Berger 2026-06-13 14:33:53 -04:00
  • f9c70ab6a8 feat(10-02): implement requireAdmin DB-backed MiddlewareHandler Lucas Berger 2026-06-13 14:32:04 -04:00
  • 92179302a2 test(10-02): add failing requireAdmin middleware tests (RED) Lucas Berger 2026-06-13 14:30:28 -04:00