| 04-shared-lists-live-sync |
01 |
pwa-routing, db-schema, test-harness |
| react-router |
| bottom-tab-bar |
| lists-surface |
| drizzle-migration |
| wave-0-red-stubs |
|
| requires |
provides |
affects |
|
|
| BrowserRouter shell with /calendar, /lists, /lists/:listId routes |
| BottomTabBar + AppNav desktop Lists link |
| ListsIndex empty surface |
| lists/list_items/list_shares Drizzle tables (migrated) |
| API Vitest test harness (setup.ts + vitest.config setupFiles) |
| Wave-0 RED stub test files (4 files, 12+44 todo items) |
|
| apps/pwa/src/App.tsx (router wrapping) |
| apps/pwa/src/components/AppNav.tsx (desktop nav links) |
| apps/pwa/src/components/CalendarShell.test.tsx (MemoryRouter fix) |
| apps/api/src/db/schema.ts (new tables) |
|
|
| added |
patterns |
| react-router@7.17.0 (declarative BrowserRouter mode) |
| @dnd-kit/core (installed, used in later plans) |
| @dnd-kit/sortable (installed, used in later plans) |
| fractional-indexing (PWA + API) |
|
| NavLink with isActive style callback (BottomTabBar + AppNav desktop) |
| TanStack Query for list data fetching (ListsIndex) |
| Zustand UI-only store (listsStore |
| no server data) |
|
| drizzle-kit generate+migrate (NOT push) for DDL |
| it.todo() Wave-0 stub pattern (RED stubs safe to import) |
|
|
| created |
modified |
| apps/pwa/src/App.tsx (rewritten — BrowserRouter shell) |
| apps/pwa/src/components/BottomTabBar.tsx |
| apps/pwa/src/routes/ListsIndex.tsx |
| apps/pwa/src/routes/ListDetail.tsx (placeholder stub) |
| apps/pwa/src/store/listsStore.ts |
| apps/pwa/src/api/listsClient.ts (fetchLists + List/ListItem types) |
| apps/api/test/setup.ts |
| apps/api/tests/routes/lists.test.ts |
| apps/api/tests/lib/listEmitter.test.ts |
| apps/pwa/src/hooks/useListSSE.test.ts |
| apps/pwa/src/routes/ListDetail.test.tsx |
| apps/api/src/db/migrations/0002_lists_schema.sql |
|
| apps/pwa/src/components/AppNav.tsx (added NavLink imports + desktop Lists nav link) |
| apps/pwa/src/components/CalendarShell.test.tsx (MemoryRouter wrapper) |
| apps/api/src/db/schema.ts (lists, listShares, listItems tables appended) |
| apps/api/vitest.config.ts (setupFiles → apps/api/test/setup.ts) |
| apps/pwa/package.json (react-router, @dnd-kit/core, @dnd-kit/sortable, fractional-indexing) |
| apps/api/package.json (fractional-indexing) |
|
|
| D-17 satisfied: react-router@7 declarative BrowserRouter (no data router/loaders) |
| D-16 satisfied: BottomTabBar with Calendar + Lists NavLinks at /calendar and /lists |
| generate+migrate enforced: 0002_lists_schema.sql is additive (CREATE TABLE only, no DROP) |
| ioredis NOT added (fan-out is in-memory EventEmitter per D-04, Plan 02) |
| Wave-0 RED stubs use it.todo() to be safe-to-import without implementations |
| CalendarShell.test.tsx wrapped in MemoryRouter after AppNav gained NavLink (Rule 1 fix) |
|
| duration |
completed |
task_count |
file_count |
| ~65 minutes (continuation agent, prior executor completed Tasks 1-2) |
2026-06-09 |
4 |
17 |
|