forked from admin/runners-calendar
191 lines
7.9 KiB
Markdown
191 lines
7.9 KiB
Markdown
# Changelog
|
||
|
||
Все заметки о выпусках Calendar Run. Backend и frontend имеют независимые версии.
|
||
|
||
Дата означает дату попадания изменения в `main`; она не заменяет дату production-деплоя.
|
||
Планируемые версии не вносятся сюда до выпуска — они находятся в [docs/product-backlog.md](docs/product-backlog.md).
|
||
|
||
## В работе
|
||
|
||
### Backend 1.6.0
|
||
|
||
#### Added
|
||
|
||
- Управление паролем и сессиями: проверка текущего пароля, список активных сессий, отзыв выбранной или всех остальных сессий.
|
||
- Фильтрация стартов по статусу, периоду и дистанции; backfill и обновление автоматически получаемых обложек.
|
||
|
||
### Frontend 0.9.0
|
||
|
||
#### Added
|
||
|
||
- Экран «Аккаунт»: подтверждённый email, смена пароля и управление другими активными сессиями.
|
||
- На дашборде появились фильтруемые «Последние старты» с пагинацией и переходом в старт, ссылки из карточек рекордов и интерактивный график прогресса.
|
||
- Поиск, фильтры, сортировка и экспорт истории; график прогресса переведён на AG Charts.
|
||
|
||
## Backend
|
||
|
||
### [1.4.2] — 2026-07-12
|
||
|
||
#### Changed
|
||
|
||
- CI и тесты используют настоящий PostgreSQL с миграциями; самодельный SQL mock удалён.
|
||
- Контракт API стартов актуализирован: UUID `id`, пользовательский `slug`, авторизация, CSRF и строгая валидация запросов.
|
||
- Получение обложки по сайту организатора ограничено безопасными публичными HTTP(S)-адресами, редиректами, размером и временем ответа.
|
||
|
||
### [1.4.1] — 2026-05-24
|
||
|
||
#### Changed
|
||
|
||
- Усилена безопасность аутентификации, сессий и production security profile.
|
||
- Добавлены проверки, предотвращающие использование dev-bypass Turnstile в production.
|
||
|
||
### [1.4.0] — 2026-05-24
|
||
|
||
#### Added
|
||
|
||
- Регистрация, вход/выход, подтверждение email, повторная отправка письма и сброс пароля.
|
||
- Cookie-сессии, CSRF-защита, rate limit и Turnstile.
|
||
- Владение стартами: пользователь видит и изменяет только свои записи.
|
||
- SMTP-уведомления и очистка истёкших auth-сущностей.
|
||
|
||
### [1.3.0] — 2026-04-27
|
||
|
||
#### Added
|
||
|
||
- Необязательное автоматическое извлечение обложки старта по сайту организатора.
|
||
- Поле `coverImageUrl` в модели, миграции и API.
|
||
|
||
### [1.2.2] — 2026-04-12
|
||
|
||
#### Changed
|
||
|
||
- Patch-релиз: удалено временное диагностическое логирование запросов.
|
||
|
||
### [1.2.1] — 2026-04-10
|
||
|
||
#### Added
|
||
|
||
- Временная диагностика `Host`/`Origin` и статуса ответа для расследования проблем подключения.
|
||
|
||
### [1.2.0] — 2026-04-08
|
||
|
||
#### Changed
|
||
|
||
- Унифицирован контракт API на префиксе `/api` для Express, Vite и nginx.
|
||
|
||
### [1.1.0] — 2026-04-08
|
||
|
||
#### Added
|
||
|
||
- `GET /api/meta` для отображения серверной версии в интерфейсе.
|
||
|
||
### [1.0.1] — 2026-04-08
|
||
|
||
#### Fixed
|
||
|
||
- Совместимость маршрутов API с прокси и клиентским префиксом `/api`.
|
||
|
||
### [1.0.0] — 2026-04-01
|
||
|
||
#### Added
|
||
|
||
- Базовый Express API для стартов, PostgreSQL-миграции, seed из CSV и health/readiness endpoints.
|
||
|
||
## Frontend
|
||
|
||
### [0.7.1] — 2026-07-12
|
||
|
||
#### Changed
|
||
|
||
- Формы используют нативные поля даты и времени старта; результаты вводятся отдельными полями времени и места.
|
||
- Подтверждение email завершается явным экраном успеха, auth-формы показывают состояние отправки и ошибки.
|
||
- Карточка личного рекорда отображается только при реальном улучшении результата.
|
||
- Удалены сгенерированные Vite/TypeScript-файлы, неиспользуемый API-клиент и статический каталог обложек.
|
||
|
||
### [0.7.0] — 2026-05-24
|
||
|
||
#### Added
|
||
|
||
- Экраны регистрации, входа, подтверждения email и сброса пароля.
|
||
- Защищённые маршруты, состояние сессии и выход из аккаунта.
|
||
|
||
### [0.6.2] — 2026-05-24
|
||
|
||
#### Added
|
||
|
||
- Табы «Будущие» и «Прошедшие» для компактного мобильного списка стартов.
|
||
|
||
### [0.6.1] — 2026-04-27
|
||
|
||
#### Changed
|
||
|
||
- Обложка ближайшего старта используется фоном hero-блока дашборда.
|
||
|
||
### [0.6.0] — 2026-04-27
|
||
|
||
#### Added
|
||
|
||
- Поддержка пользовательской и автоматически полученной обложки старта в списках и карточке.
|
||
|
||
### [0.5.2] — 2026-04-27
|
||
|
||
#### Added
|
||
|
||
- Favicon сервиса.
|
||
|
||
### [0.5.1] — 2026-04-27
|
||
|
||
#### Fixed
|
||
|
||
- Корректное определение версии frontend из `package.json`.
|
||
|
||
### [0.5.0] — 2026-04-22
|
||
|
||
#### Changed
|
||
|
||
- Редизайн дашборда и визуального представления стартов.
|
||
|
||
### [0.4.0] — 2026-04-13
|
||
|
||
#### Added
|
||
|
||
- Форма старта с селектами времени, просмотр календаря годом и месяцем, страница конкретного дня.
|
||
- Предзаполнение даты при добавлении из календаря.
|
||
|
||
### [0.3.1] — 2026-04-12
|
||
|
||
#### Fixed
|
||
|
||
- Исправления UX списка и календаря, автоматическая установка статуса «Пробежал» при валидном времени финиша.
|
||
|
||
### [0.3.0] — 2026-04-08
|
||
|
||
#### Changed
|
||
|
||
- Единый клиентский путь `/api` и устойчивый разбор ответов сервера.
|
||
|
||
### [0.2.0] — 2026-04-08
|
||
|
||
#### Added
|
||
|
||
- Русский UI и футер с версиями frontend и backend.
|
||
|
||
### [0.1.1] — 2026-04-08
|
||
|
||
#### Fixed
|
||
|
||
- Получение версии приложения из `package.json` вместо Vite define.
|
||
|
||
### [0.1.0] — 2026-04-06
|
||
|
||
#### Added
|
||
|
||
- React/Vite приложение, типизированный API-клиент, список и карточка стартов, формы CRUD, дашборд и базовая аналитика результатов.
|
||
|
||
## Как добавлять запись при выпуске
|
||
|
||
1. Изменить версию соответствующего пакета по SemVer и обновить lockfile.
|
||
2. Добавить только фактически выпущенные изменения в раздел `Backend` или `Frontend`.
|
||
3. Если изменился API — обновить [docs/backend-api-for-frontend.md](docs/backend-api-for-frontend.md) в том же PR.
|
||
4. Перед выпуском проверить, что футер показывает новую версию frontend и фактическую версию backend.
|