-
194f6a82a8
fix(02): show owner name / Family in event popover footer
Lucas Berger
2026-06-05 15:14:43 -04:00
-
fc758e8ea6
fix(02): fix week/day time-grid clip and hour-label contrast
Lucas Berger
2026-06-05 15:14:33 -04:00
-
d240657059
fix(02): remove custom ViewToolbar; use Schedule-X built-in header
Lucas Berger
2026-06-05 14:54:40 -04:00
-
1f0b9546a8
fix(02): include all-day recurring masters in events route pre-filter
Lucas Berger
2026-06-05 14:50:27 -04:00
-
f70496871a
fix(02): populate hasRrule on every sync upsert so recurring masters are flagged
Lucas Berger
2026-06-05 14:50:18 -04:00
-
5d82f859fd
fix(02): wire calendar-controls plugin and Zustand selectors
Lucas Berger
2026-06-05 14:45:27 -04:00
-
1a24b00de9
fix(02): day-view 400, invalid date display, duplicate popover (BUG 2-4)
Lucas Berger
2026-06-05 14:34:36 -04:00
-
ee2281fe81
fix(02): correct DURATION-only event end in expand.ts (BUG 1)
Lucas Berger
2026-06-05 14:33:00 -04:00
-
bef4a83fe0
fix(02): CSS-safe occurrence ids + error boundary to surface render errors
Lucas Berger
2026-06-05 14:30:32 -04:00
-
93c368402c
fix(02): update expand tests to assert IANA-annotated format + add cross-contract test
Lucas Berger
2026-06-05 14:04:00 -04:00
-
35f725d450
fix(02): emit IANA-annotated timed strings from serializeTime
Lucas Berger
2026-06-05 14:02:36 -04:00
-
df5d36308a
fix(02): add regression tests for /api/me under dev-auth bypass
Lucas Berger
2026-06-05 13:48:05 -04:00
-
4b34b16f02
fix(02): dev-auth bypass no longer blocked by oidcAuthMiddleware
Lucas Berger
2026-06-05 13:48:00 -04:00
-
11595e7924
docs(02-05): complete plan 05 autonomous tasks — SUMMARY.md
Lucas Berger
2026-06-05 10:59:31 -04:00
-
216ddcedf4
feat(02-05): ColorLegend, AppNav, ViewToolbar, SkeletonCalendar, EmptyState; retire EventProof
Lucas Berger
2026-06-05 10:58:06 -04:00
-
3eebfbff42
feat(02-05): EventDetailPopover read-only popover, XSS-safe, wired into CalendarShell
Lucas Berger
2026-06-05 10:51:57 -04:00
-
433fb9f900
test(02-05): add failing tests for EventDetailPopover (TDD RED)
Lucas Berger
2026-06-05 10:47:41 -04:00
-
00a4e66a8d
docs(phase-02): update tracking after wave 3
Lucas Berger
2026-06-05 10:44:57 -04:00
-
7b32bc1456
docs(02-04): complete CalendarShell plan — SUMMARY.md
Lucas Berger
2026-06-05 10:44:04 -04:00
-
f0af43c4e6
test(02-04): CalendarShell CAL-03 render smoke — Temporal hydration + Pitfall 6 guard
Lucas Berger
2026-06-05 10:42:30 -04:00
-
b79f649ac5
feat(02-04): mount Schedule-X CalendarShell wired to TanStack Query + Zustand + hydrateEvents
Lucas Berger
2026-06-05 10:40:07 -04:00
-
dabe2ccd57
docs(phase-02): record D-16 (shared calendar on primary FM account) + defer is_shared marking
Lucas Berger
2026-06-05 10:34:22 -04:00
-
bfddcb1da2
docs(phase-02): update tracking after wave 2
Lucas Berger
2026-06-05 10:33:53 -04:00
-
010ef78230
docs(02-02): complete windowed events + expansion plan
Lucas Berger
2026-06-05 10:32:30 -04:00
-
9ee26c07a7
feat(02-02): evolve /api/events to windowed endpoint with color/owner join
Lucas Berger
2026-06-05 10:30:36 -04:00
-
6736194a4a
feat(02-02): add expandOccurrences() with VTIMEZONE + allDay split + EXDATE
Lucas Berger
2026-06-05 10:30:22 -04:00
-
5435df6bbe
docs(02-03): complete plan 03 summary — token layer, calendar config, hydration, store
Lucas Berger
2026-06-05 09:49:39 -04:00
-
f377d7c3f8
feat(02-03): hydrateEvents + calendarStore + windowed fetchEvents; RED stubs green
Lucas Berger
2026-06-05 09:47:07 -04:00
-
43554f491b
feat(02-03): colorUtils + calendarConfig; turn RED calendarConfig stubs green
Lucas Berger
2026-06-05 09:44:19 -04:00
-
0911a2330a
feat(02-03): install Schedule-X stack + CSS token layer + main.tsx imports
Lucas Berger
2026-06-05 09:42:34 -04:00
-
6dc5d77f60
docs(phase-02): update tracking after wave 1
Lucas Berger
2026-06-05 09:38:23 -04:00
-
2d75b2b73b
docs(02-01): complete plan 01 — schema columns, test harness, dev-auth bypass summary
Lucas Berger
2026-06-05 09:35:53 -04:00
-
8bd44b33c7
feat(02-01): dev-auth bypass middleware with production hard guard
Lucas Berger
2026-06-05 09:32:00 -04:00
-
75252eb08c
feat(02-01): schema columns, PWA vitest harness, ICS fixtures, RED test stubs
Lucas Berger
2026-06-05 09:29:45 -04:00
-
62ebb1f9d4
docs(phase-02): begin execution — consume handoff, advance state
Lucas Berger
2026-06-05 09:24:49 -04:00
-
81d5c61aa5
wip: calendar-display paused — planned, not executed (0/5 plans)
Lucas Berger
2026-06-04 15:29:39 -04:00
-
-
8bd52c6923
docs: add backlog item 999.1 — treat Fastmail as a calendar provider, support adding more
Lucas Berger
2026-06-04 15:12:20 -04:00
-
fc4cc2ccf8
docs(02): create phase plan
Lucas Berger
2026-06-04 15:09:55 -04:00
-
b842955612
docs(02): create calendar-display phase plan (5 plans, 4 waves)
Lucas Berger
2026-06-04 14:56:57 -04:00
-
5e14413024
docs(02): add pattern map
Lucas Berger
2026-06-04 14:47:28 -04:00
-
a707f8d9ca
docs(02): add research and validation strategy
Lucas Berger
2026-06-04 14:44:14 -04:00
-
e9fcd7a372
docs(02): research calendar display phase
Lucas Berger
2026-06-04 14:43:23 -04:00
-
5b98fc097d
docs(state): record phase 2 UI-SPEC session
Lucas Berger
2026-06-04 14:24:20 -04:00
-
f1604b5057
docs(02): UI design contract
Lucas Berger
2026-06-04 14:24:20 -04:00
-
79a18b9ea2
docs(02): add UI design contract for calendar display phase
Lucas Berger
2026-06-04 14:21:57 -04:00
-
7d65ef0fa9
docs(state): record phase 2 context session
Lucas Berger
2026-06-04 14:14:08 -04:00
-
dbec9b510c
docs(02): capture phase context
Lucas Berger
2026-06-04 14:14:07 -04:00
-
6e74b3fc05
docs: capture D-14/D-15 (Gate 2 deferral + local-Newt test rig) + deployment runbook
Lucas Berger
2026-06-04 11:55:31 -04:00
-
5bed2228b7
test(01): verification (human_needed, 11/13) + persist Gate 2 human-UAT
Lucas Berger
2026-06-04 11:44:52 -04:00
-
fe8d5c8e4b
docs(phase-01): mark 01-04 code complete after wave 3
Lucas Berger
2026-06-04 11:40:00 -04:00
-
0b074cd568
docs(01-04): record CAL-08 GO decision — broker read path proven live
Lucas Berger
2026-06-04 11:39:44 -04:00
-
d6f5e7d7a5
fix: ignore all .env.* secret variants, not just bare .env
Lucas Berger
2026-06-04 11:35:32 -04:00
-
22a0f05170
docs(01-04): complete integration+gate plan summary; add CAL-08 decision template
Lucas Berger
2026-06-04 11:18:04 -04:00
-
48f90ceca9
feat(01-04): wire broker + routes into bootstrap, add SSE endpoint, EventProof
Lucas Berger
2026-06-04 11:16:10 -04:00
-
d2d8333bf8
docs(phase-01): update tracking after wave 2 (01-02 OIDC, 01-03 broker)
Lucas Berger
2026-06-04 11:10:44 -04:00
-
191cea70cc
docs(01-03): complete CalDAV broker slice plan summary
Lucas Berger
2026-06-04 11:10:02 -04:00
-
23b8e5326d
feat(01-03): implement ctag poller with node-cron 5-min schedule
Lucas Berger
2026-06-04 11:08:46 -04:00
-
1b3ea4e99b
test(01-03): add failing tests for broker poller ctag change detection
Lucas Berger
2026-06-04 10:34:12 -04:00
-
dd02207318
feat(01-03): implement broker client, syncCalendar, and events route (CAL-01)
Lucas Berger
2026-06-04 10:33:28 -04:00
-
90b99296e8
test(01-03): refine sync RED tests with richer db mock (select + insert)
Lucas Berger
2026-06-04 10:30:53 -04:00
-
ae21541e97
test(01-03): add failing tests for syncCalendar (D-13 all-day DATE handling)
Lucas Berger
2026-06-04 10:29:29 -04:00
-
d6d91201b1
feat(01-03): implement AES-256-GCM app-password encryption (T-03-01)
Lucas Berger
2026-06-04 10:27:40 -04:00
-
04d7c23e94
test(01-03): add failing tests for AES-256-GCM crypto helpers
Lucas Berger
2026-06-04 10:26:59 -04:00
-
3bfffd60ae
docs(01-02): complete OIDC auth slice plan summary
Lucas Berger
2026-06-04 10:24:18 -04:00
-
668ed9be0d
feat(01-02): wire OIDC middleware, /api/me route, and authenticated PWA shell
Lucas Berger
2026-06-04 10:22:46 -04:00
-
baabfce9e2
feat(01-02): implement upsertUser with stable color assignment (AUTH-03)
Lucas Berger
2026-06-04 10:21:04 -04:00
-
61c258c021
test(01-02): add failing tests for upsertUser color assignment + identity
Lucas Berger
2026-06-04 10:20:27 -04:00
-
ee4c71fa46
docs(01-01): clear Task 3 checkpoint, mark plan complete
Lucas Berger
2026-06-04 10:17:21 -04:00
-
00efbab107
fix(01-01): build Docker image from repo-root pnpm workspace context
Lucas Berger
2026-06-04 10:17:06 -04:00
-
6b500170ab
docs(01-01): complete walking skeleton plan — SUMMARY
Lucas Berger
2026-06-04 09:54:10 -04:00
-
96cda58509
feat(01-01): Drizzle schema + DB client + /health slice (GREEN)
Lucas Berger
2026-06-04 09:52:36 -04:00
-
f31711af27
test(01-01): add failing health test (RED gate)
Lucas Berger
2026-06-04 09:50:43 -04:00
-
3f591566d1
chore(01-01): scaffold monorepo, Docker Compose stack, and Vitest harness
Lucas Berger
2026-06-04 09:50:16 -04:00
-
fb849605b1
docs(01): mark research open questions deferred-to-spike
Lucas Berger
2026-06-04 08:19:12 -04:00
-
3c51e423ff
docs(01-foundation-broker-spike): create phase plan (4 plans, 3 waves) + SKELETON + validation map
Lucas Berger
2026-06-04 08:16:48 -04:00
-
25460c9bd9
docs(01): add research + validation strategy
Lucas Berger
2026-06-04 08:06:51 -04:00
-
ac41270fa1
docs(01): research phase 1 foundation + broker spike

Lucas BergerandClaude Sonnet 4.6
2026-06-04 08:05:44 -04:00
-
d70a159dd0
docs(state): record phase 1 context session
Lucas Berger
2026-06-04 07:55:08 -04:00
-
d6a8e99578
docs(01): capture phase context
Lucas Berger
2026-06-04 07:55:02 -04:00
-
31c78965a7
wip: project setup paused pre-Phase-1 (0/5 phases)
Lucas Berger
2026-06-03 16:35:19 -04:00
-
ac82d32a36
docs: create roadmap (5 phases)
Lucas Berger
2026-06-03 16:15:27 -04:00
-
a20afd472a
docs: define v1 requirements
Lucas Berger
2026-06-03 16:05:16 -04:00
-
0f79277942
docs: complete project research (stack, features, architecture, pitfalls, summary)
Lucas Berger
2026-06-03 15:01:33 -04:00
-
1ce0348914
chore: add project config
Lucas Berger
2026-06-03 14:48:13 -04:00
-
ad2aad83a8
docs: initialize project
Lucas Berger
2026-06-03 14:45:59 -04:00
-
16db88dabf
initial commit
Lucas Berger
2026-06-03 14:34:58 -04:00