- Convert datetime-local values to UTC ISO strings before sending to API
(new Date(r).toISOString()) in both create and update flows
- Parse UTC ISO strings directly in API instead of manual Date.UTC() parsing
that treated local components as UTC, causing timezone offset bugs
- Convert UTC API response times to local on load using new Date(str + 'Z')
and date-fns format() to avoid double-timezone shift when editing
- Add reminders to Prisma schema (Reminder model, TaskReminder relation)
- Add /api/reminders endpoint and cron send-reminders.ts script
- Add reminder fields to NewTaskModal and EditTaskModal components
- Fix reminder datetime serialization: use toISOString().slice(0,16) for
UTC-safe YYYY-MM-DDTHH:mm format compatible with datetime-local inputs
- Update Dockerfile to install tsx for cron container
- Add AGENTS.md with project conventions
- Update docker-compose.yml with cron service and build context
- Add prisma/schema.prisma with Project/Task models, enums, and relations
- Create src/lib/db.ts singleton Prisma client
- Refactor all 5 API routes to use Prisma queries
- Replace migrate.ts with seed.ts for initial data
- Update Dockerfile for Prisma lifecycle (copy generated client)
- Update tsconfig.json with @/generated/* path alias
- Remove pg and @types/pg dependencies
- Add prisma.config.ts for Prisma 6 config
- Update .gitignore for generated Prisma client
- Migrate due_date/next_occurrence columns from TIMESTAMPTZ to DATE
- Update serializeRow() to distinguish DATE vs TIMESTAMPTZ serialization
- Simplify frontend date parsing (no more timezone workarounds)
- Add Vitest + Testing Library test infrastructure
- Add initial date parsing/formatting unit tests
- Update package.json with dev dependencies (vitest, testing-library, jsdom)