- Remove dead frontend/src/features/index.ts (empty export, unused)
- RaceRow: created_at/updated_at typed as Date to match pg TIMESTAMPTZ runtime
- rowToDto: explicit toISOString() conversion instead of relying on JSON.stringify
- Mock DB: return Date objects for timestamp fields to match real pg behavior
Made-with: Cursor
- Add missing --space-1 CSS token used by filter and detail components
- Fix active nav link losing styles on hover (CSS specificity)
- Correct Russian day pluralization (21 день, 22 дня, 25 дней)
- Show filter error banner even when stale race data is present
- Add cross-env for Windows-compatible npm test
- Add global JSON error handler in Express for malformed request bodies
- Replace stateless mock DB with in-memory store for correct DELETE/UPDATE behavior
Made-with: Cursor
Express + TypeScript backend with PostgreSQL: CRUD endpoints for /races (GET list with year/month filters, GET by id, POST, PATCH, DELETE), health/readiness probes, SQL migration runner, seed script with upsert from CSV, camelCase/snake_case mapper, CORS, env validation, docker-compose, and API docs for frontend.
Made-with: Cursor