# 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.