• v1.1.5 675ac1226e

    Release 1.1.5: переносимый Docker Compose запуск
    Deploy Telegram Bot / build-and-push (push) Successful in 40s
    Deploy Telegram Bot / deploy (push) Successful in 17s
    Stable

    Toutsu released this 2026-04-24 10:48:08 +03:00 | 375 commits to main since this release

    🧰 Dev/Runtime контур

    Этот релиз закрывает задачу этапа «Этап 2 — Dev/Runtime контур»: Docker Compose теперь запускает PostgreSQL, bot и Web через обычную bridge-сеть без host networking и без заранее созданного external volume. Локальный старт стал переносимым для Windows, macOS и Linux.

    Закрытые issues

    • #6 — chore: сделать compose-конфигурацию переносимой для локального запуска: убран network_mode: host, сервисы переведены на обращение к PostgreSQL по db:5432, volume БД создаётся compose-файлом, README обновлён под docker compose up -d.

    🧩 Что вошло в релиз

    • bot и web подключены к обычной Docker bridge-сети gmrelay и используют service name db в connection string;
    • Web публикует порт через GMRELAY_WEB_PORT со значением 8080 по умолчанию;
    • PostgreSQL и Data Protection volumes стали обычными named volumes, создаваемыми при первом запуске compose;
    • обязательные переменные окружения теперь валидируются compose-файлом до старта контейнеров;
    • README и .env.example обновлены под новый переносимый сценарий локального запуска.

    🛡 Что это даёт

    • docker compose up -d больше не требует ручного создания game_pgdata;
    • локальный запуск не зависит от Linux-only network_mode: host;
    • bot/web используют одинаковый Docker service discovery на Linux, Windows и macOS;
    • существующий volume game_pgdata сохраняет совместимость, но больше не обязан быть external.

    📦 Версия и деплой

    • версия проекта обновлена до 1.1.5 в Directory.Build.props, compose.yaml и Gitea Actions workflow;
    • Docker-образы и deploy-конфигурация теперь используют тег 1.1.5;
    • Gitea Actions run #32 успешно собрал, опубликовал и задеплоил образы.
    Downloads
  • v1.1.4 b80002aa36

    Release 1.1.4: единая модель статусов сессий
    Deploy Telegram Bot / build-and-push (push) Successful in 4m47s
    Deploy Telegram Bot / deploy (push) Successful in 19s
    Stable

    Toutsu released this 2026-04-24 10:27:24 +03:00 | 376 commits to main since this release

    🧪 Стабилизация платформы

    Этот релиз закрывает ещё один пункт этапа «Стабилизация платформы»: статусы игровых сессий приведены к единой модели без устаревших значений. Теперь bot, Shared-рендеринг, Web UI и SQL-код опираются на один согласованный набор Planned / ConfirmationSent / Confirmed / Cancelled.

    Закрытые issues

    • #5 — refactor: привести статусы сессий к единой модели без устаревших значений: удалены legacy-ветки Recruiting / RecruitmentClosed, добавлен общий источник истины для допустимых session-status значений, а использование статусов в bot/web/shared приведено к SessionStatus.

    🧩 Что вошло в релиз

    • SessionStatus расширен до общего источника истины: добавлен canonical-набор All и helper для проверки отменённых сессий;
    • SessionBatchRenderer больше не содержит отдельную ветку RecruitmentClosed и использует SessionStatus.Cancelled для закрытия кнопок отменённых сессий;
    • Web-страница группы убрана от legacy-переводов Recruiting / RecruitmentClosed, а Planned получил явное отображение и стиль;
    • session-status SQL в bot-коде переведён с строковых литералов на параметры из SessionStatus для создания, отмены, списков, календаря и reschedule-потоков;
    • добавлены регрессионные тесты, которые фиксируют canonical-набор статусов и запрещают возврат legacy-значений в production-исходники.

    🛡 Что это даёт

    • UI и Telegram-рендеринг больше не расходятся в понимании жизненного цикла сессии;
    • новые изменения сложнее случайно привязать к старым статусам, потому что тесты ловят такие регрессии;
    • SQL-запросы, бизнес-логика и Web теперь используют одну доменную модель статусов.

    📦 Версия и деплой

    • версия проекта обновлена до 1.1.4 в Directory.Build.props, compose.yaml и Gitea Actions workflow;
    • Docker-образы и deploy-конфигурация теперь используют тег 1.1.4.
    Downloads
  • v1.1.3 bb8cbb7a40

    Release 1.1.3: Стабилизация платформы и тестовое покрытие
    Deploy Telegram Bot / build-and-push (push) Successful in 4m18s
    Deploy Telegram Bot / deploy (push) Successful in 20s
    Stable

    Toutsu released this 2026-04-23 21:09:19 +03:00 | 377 commits to main since this release

    🧪 Стабилизация платформы

    Этот релиз продолжает этап «Стабилизация платформы» и закрывает задачу по тестовому покрытию ключевых сценариев бота и Web. Тестовый проект перестал быть заглушкой и теперь проверяет критичную бизнес-логику, на которой держатся расписания, RSVP и доступ в веб-интерфейсе.

    Закрытые issues

    • #4 — Test Coverage: пустой smoke test заменён на осмысленный набор unit-тестов для парсинга /newsession, TelegramAuthService.Verify, SessionBatchRenderer, RSVP flow (confirm/decline), переноса сессии и голосования, а также кейсов доступа к чужим группам и сессиям в Web.

    🧩 Что вошло в релиз

    • добавлен тестируемый парсер NewSessionCommandParser для разбора /newsession и валидации дат;
    • вынесены правила RsvpFlowRules и RescheduleVoteRules, чтобы покрыть переходы состояний RSVP и голосования без хрупкой привязки к инфраструктуре;
    • добавлены тесты для TelegramAuthService, SessionBatchRenderer, reschedule voting message и AuthorizedSessionService;
    • пакет тестов теперь покрывает ключевые bot/web-сценарии вместо одного пустого smoke test.

    🛡 Что это даёт

    • регрессии в расписаниях, подтверждениях участия и переносах будут ловиться до деплоя;
    • изменения в Telegram auth и web-доступе теперь защищены автоматическими проверками;
    • доработка бизнес-логики бота стала дешевле и безопаснее, потому что основные переходы состояний зафиксированы тестами.

    📦 Версия и деплой

    • версия проекта обновлена до 1.1.3 в Directory.Build.props, compose.yaml и Gitea Actions workflow;
    • Docker-образы и deploy-конфигурация теперь используют тег 1.1.3.
    Downloads
  • v1.1.2 93e7c1ac66

    Release 1.1.2: Стабилизация платформы и критические исправления
    Deploy Telegram Bot / build-and-push (push) Successful in 42s
    Deploy Telegram Bot / deploy (push) Successful in 12s
    Stable

    Toutsu released this 2026-04-23 20:49:49 +03:00 | 378 commits to main since this release

    🛡 Стабилизация платформы

    Этот релиз завершает первую тройку критических багфиксов из этапа «Стабилизация платформы». Исправлены проблемы безопасности доступа в Web, утечки секретов в логах и повторной обработки устаревших Telegram-апдейтов после рестарта бота.

    Закрытые issues

    • #1 — Web Authorization: закрыта возможность читать или изменять чужие группы и сессии по прямому GUID. Доступ к данным теперь проверяется относительно текущего авторизованного GM.
    • #2 — Secret Redaction: убран вывод connection string, токена бота и других чувствительных значений из стартовых логов GmRelay.Bot.
    • #3 — Pending Updates / Long Polling: бот теперь корректно вычисляет стартовый offset по последнему pending update и не переигрывает старые команды и callback-апдейты после перезапуска.

    🧪 Что это даёт

    • авторизованный пользователь больше не может открыть или изменить чужие данные в Web даже при знании идентификатора;
    • секреты не утекают в консоль и агрегаторы логов;
    • рестарт бота не приводит к повторной обработке старых Telegram-событий.

    📦 Версия и деплой

    • версия проекта обновлена до 1.1.2 в Directory.Build.props, compose.yaml и Gitea Actions workflow;
    • Docker-образы и deploy-конфигурация теперь используют тег 1.1.2.
    Downloads
  • v1.1.1 ecc2236937

    Relise 1.1.1: Исправление виджета Telegram
    Deploy Telegram Bot / build-and-push (push) Successful in 25s
    Deploy Telegram Bot / deploy (push) Successful in 8s
    Stable

    Toutsu released this 2026-04-21 15:49:24 +03:00 | 382 commits to main since this release

    🛠 Исправления (Bug Fixes)

    • Telegram Login Widget: Исправлена проблема, из-за которой кнопка входа через Telegram не загружалась при навигации внутри приложения (Blazor SPA). Теперь виджет инициализируется через JS Interop, что гарантирует его появление на странице входа в любой ситуации.
    Downloads
  • v1.1.0 176f1105ab

    Release 1.1.0: Масштабный редизайн и аудит безопасности
    Deploy Telegram Bot / build-and-push (push) Successful in 5m19s
    Deploy Telegram Bot / deploy (push) Successful in 10s
    Stable

    Toutsu released this 2026-04-21 15:21:18 +03:00 | 384 commits to main since this release

    🎨 Новый интерфейс (Frontend Redesign)

    Полностью обновлен внешний вид приложения в современном стиле Dark Mode с использованием элементов Glassmorphism:

    • Дизайн-система: Внедрена гибкая система CSS-переменных, обновлена типографика (шрифт Inter) и цветовая палитра.
    • Главная страница: Добавлены анимированные карточки групп, скелетная загрузка (skeleton loading) и улучшенная навигация.
    • Адаптивность: Полная поддержка мобильных устройств. На узких экранах таблицы автоматически заменяются на удобные карточки.
    • Эффекты: Добавлены плавные анимации появления элементов (fadeIn, slideUp) и эффекты размытия фона.
    • Страницы ошибок: Стилизованы страницы 404 и 500 под общий дизайн.

    🔒 Безопасность (Security Hardening)

    Проведен аудит и усиление защиты приложения:

    • Telegram Auth: Исправлена уязвимость к timing-атакам при проверке HMAC. Теперь используется CryptographicOperations.FixedTimeEquals.
    • Cookie Security: Куки авторизации теперь используют флаги HttpOnly, Secure и SameSite=Strict.
    • Security Headers: Добавлены заголовки X-Frame-Options: DENY, X-Content-Type-Options: nosniff и политика Referrer-Policy.
    • Логирование: Улучшена обработка исключений при рассылке уведомлений в Telegram.

    📦 Инфраструктура

    • Версия приложения обновлена до 1.1.0 во всех конфигурациях (Directory.Build.props, compose.yaml, CI/CD пайплайн).
    • Оптимизирована сборка Docker-образов.
    Downloads
  • v1.0.1 b6af5f047c

    Release 1.0.1: Исправление ошибки сохранения сессий
    Deploy Telegram Bot / build-and-push (push) Successful in 30s
    Deploy Telegram Bot / deploy (push) Successful in 8s
    Stable

    Toutsu released this 2026-04-20 17:02:05 +03:00 | 385 commits to main since this release

    Исправлена критическая ошибка в веб-интерфейсе при редактировании сессии.

    Список изменений:

    • Web Module: Исправлен баг в логике работы с часовыми поясами. Метод MoscowTime.ToMoscow(DateTime) теперь корректно сбрасывает флаг DateTimeKind.Utc после добавления смещения МСК (+3ч). Это предотвращает ошибку валидации .NET.
    • Версии: Версия проекта обновлена до 1.0.1 во всех основных файлах.
    Downloads
  • v1.0.0 5de3891966

    Release version 1.0.0
    Deploy Telegram Bot / build-and-push (push) Successful in 25s
    Deploy Telegram Bot / deploy (push) Successful in 9s
    Stable

    Toutsu released this 2026-04-17 17:03:25 +03:00 | 387 commits to main since this release

    🚀 Релиз v1.0.0: Базовый функционал и стабилизация

    Это первый стабильный релиз системы GM-Relay, включающий в себя полнофункционального Telegram-бота и веб-интерфейс для управления игровыми сессиями.

    Новые возможности

    • 🤖 Telegram Бот (Native AOT): Бот полностью оптимизирован для работы с минимальным потреблением памяти, что делает его идеальным для запуска на
      слабых серверах или Raspberry Pi.
    • 📅 Пакетное создание сессий: Возможность планировать сразу несколько игр одним сообщением через команду /newsession.
    • 🌐 Web Dashboard: Полноценная панель управления на Blazor Server с авторизацией через Telegram (HMAC валидация).
    • 🇷🇺 Полная локализация: Весь интерфейс (бот и веб-панель) полностью переведен на русский язык.
    • 🗓 Экспорт в календарь: Генерация .ics файлов для синхронизации расписания с Google/Apple/Yandex календарями.
    • 📁 Поддержка Форумов (Topics): Автоматическое создание и управление темами в супергруппах Telegram.

    🛠 Технические улучшения

    • 📦 Централизованное версионирование: Внедрена система Directory.Build.props для управления версиями всех модулей из одной точки.
    • 🚀 CI/CD & Docker: Настроена автоматическая сборка и деплой через Gitea Actions с поддержкой версионных тегов (:1.0.0) и :latest.
    • 🐘 База данных: Внедрены автоматические миграции через DbUp.
    • 🏗 Aspire Orchestration: Проект готов к локальной разработке и мониторингу через .NET Aspire.

    🔧 Как обновиться
    Если вы используете Docker Compose, обновите ваш compose.yaml (или подтяните изменения из git) и выполните:
    1 docker compose pull
    2 docker compose up -d


    Полный список изменений: [сравнение с предыдущими коммитами]

    Downloads