292 lines
12 KiB
Markdown
292 lines
12 KiB
Markdown
# Changelog
|
||
|
||
Все заметки о выпусках Calendar Run. Backend и frontend имеют независимые версии.
|
||
|
||
Дата означает дату попадания изменения в `main`; она не заменяет дату production-деплоя.
|
||
Планируемые версии не вносятся сюда до выпуска — они находятся в [docs/product-backlog.md](docs/product-backlog.md).
|
||
|
||
## Backend
|
||
|
||
### [1.6.0] — 2026-07-13
|
||
|
||
#### Added
|
||
|
||
- Фильтрация стартов по статусу, периоду и дистанции; backfill и обновление автоматически получаемых обложек.
|
||
|
||
### [1.5.3] — 2026-07-12
|
||
|
||
#### Fixed
|
||
|
||
- Миграции базы данных автоматически выполняются перед запуском backend-контейнера.
|
||
|
||
### [1.5.2] — 2026-07-12
|
||
|
||
#### Added
|
||
|
||
- Настраиваемое имя публичного профиля и раздельная видимость будущих и завершённых стартов.
|
||
- Публичные результаты финиша с учётом настроек видимости владельца.
|
||
|
||
### [1.5.1] — 2026-07-12
|
||
|
||
#### Added
|
||
|
||
- Публичные страницы пользователей и API опубликованного календаря стартов.
|
||
|
||
### [1.5.0] — 2026-07-12
|
||
|
||
#### Added
|
||
|
||
- Проверка и смена текущего пароля.
|
||
- Список активных сессий, отзыв выбранной сессии или всех остальных сессий.
|
||
|
||
### [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.10.2] — 2026-08-14
|
||
|
||
#### Fixed
|
||
|
||
- По умолчанию завершённые старты отображаются от самых свежих к более старым; явно выбранная сортировка применяется без переопределения.
|
||
|
||
### [0.10.1] — 2026-08-13
|
||
|
||
#### Changed
|
||
|
||
- На странице `/races` завершённые старты сортируются от ранних к поздним; рядом с разделами отображается количество стартов.
|
||
- График прогресса на дашборде показывает темп в мин/км: шкала идёт от медленного темпа внизу к нулю сверху.
|
||
- Подписи графика обновлены с времени на темп.
|
||
|
||
### [0.10.0] — 2026-08-13
|
||
|
||
#### Changed
|
||
|
||
- Основные фильтры календаря оставлены в hero-блоке, а расширенные фильтры перенесены в компактную раскрываемую панель со счётчиком активных условий.
|
||
|
||
#### Fixed
|
||
|
||
- В конфигурацию TypeScript для Vite добавлены DOM-типы.
|
||
|
||
### [0.9.3] — 2026-07-13
|
||
|
||
#### Changed
|
||
|
||
- Фильтры календаря сворачиваются и показывают число активных условий; hero-блок дашборда стал компактнее.
|
||
|
||
### [0.9.1] — 2026-07-13
|
||
|
||
#### Fixed
|
||
|
||
- Зарегистрированы необходимые модули AG Charts для корректного отображения графика.
|
||
|
||
### [0.9.0] — 2026-07-13
|
||
|
||
#### Added
|
||
|
||
- Поиск, фильтры и сортировка истории стартов с синхронизацией параметров в URL.
|
||
- Экспорт выбранных стартов в CSV и iCalendar.
|
||
- Интерактивный график прогресса на AG Charts.
|
||
- Фильтрация стартов по статусу, диапазону дат и дистанции.
|
||
|
||
### [0.8.2] — 2026-07-12
|
||
|
||
#### Added
|
||
|
||
- Имена публичных профилей и отдельные настройки видимости будущих и завершённых стартов.
|
||
- Отображение опубликованных результатов на публичной странице.
|
||
|
||
### [0.8.1] — 2026-07-12
|
||
|
||
#### Added
|
||
|
||
- Публичная страница пользователя с опубликованным календарём стартов.
|
||
- Управление видимостью публичного профиля в аккаунте.
|
||
|
||
### [0.8.0] — 2026-07-12
|
||
|
||
#### Added
|
||
|
||
- Экран «Аккаунт»: подтверждённый email, смена пароля и управление активными сессиями.
|
||
- Фильтруемые «Последние старты» с пагинацией и переходом в старт на дашборде.
|
||
- Ссылки из карточек рекордов и интерактивный график прогресса.
|
||
|
||
### [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.3] — 2026-04-13
|
||
|
||
#### Fixed
|
||
|
||
- В календаре скрыты всплывающие карточки для дней без стартов.
|
||
|
||
### [0.4.2] — 2026-04-13
|
||
|
||
#### Fixed
|
||
|
||
- Анимация наведения применяется ко всей строке старта, а не только к внутренней ссылке.
|
||
|
||
### [0.4.1] — 2026-04-13
|
||
|
||
#### Fixed
|
||
|
||
- Старт автоматически получает статус «Пробежал» при вводе корректного времени финиша.
|
||
- Исправлены переходы с дашборда и поведение списка и календаря стартов.
|
||
|
||
### [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.
|