- Hide org schedule fields when editing a past race; isRaceDateInPast helper
- StartTimeSelects (HH:mm:ss) and optional ?date= prefill on new race
- Full-card link to edit for races needing result entry; shadow token
- List/calendar toggle (sessionStorage); year grid and month focus views
- Date hover popover and /races/day/:ymd page with Add button
- Docs plan-korrektirovok-starty.md and startTime API note; client 0.4.0
Made-with: Cursor
- CORS_ORIGIN: несколько origin через запятую; комментарии в .env.example
- Версия бэкенда: APP_VERSION, безопасное чтение package.json, футер при пустой версии
- Сообщения API: unknown_error и ответы 401/403/404 без JSON; отладочный лог при !ok
- Статус «внесите результат» для прошедшей даты + блок на карточке старта и стили
- API: дата старта всегда YYYY-MM-DD; фронт: parseRaceDate без двойного T00:00:00
- GET /health с version из package.json; Vite define __FRONTEND_VERSION__
- Футер с версиями клиента/сервера (BEM), сетка app-shell на три ряда
- AbortController для карточки старта; ретраи GET при 502–504 и понятные ошибки шлюза
- Русские подписи навигации/страниц, lang=ru, без английских фраз в интерфейсе
- 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
- RaceDetailsPage: show all non-null fields (officialUrl, startTime, clusterSchedule, bibPickup)
- RaceDetailsPage: add edit link and delete button with confirmation banner
- RaceFormPage: universal create/edit form with validation, auto-generated id for new races
- Router: add /races/new and /races/:raceId/edit routes
- AppLayout: add navigation link to create new race
- CSS: buttons (primary/secondary/danger), form fields, confirm banner, responsive layout
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
- Remove PLAN/agent instruction files; single root .env.example for DB + API
- Stack compose uses env_file .env; delete stack env example duplicate
- Refresh README, backend docs, API doc; trim gitignore/dockerignore
Made-with: Cursor