• v2.5.0 9ff5cc4a67

    Release v2.5.0 — Discord join/leave с лимитами и waitlist
    Deploy Telegram Bot / build-and-push (push) Successful in 4m54s
    Deploy Telegram Bot / scan-images (push) Successful in 1m22s
    Deploy Telegram Bot / deploy (push) Successful in 15s
    Stable

    Toutsu released this 2026-05-20 10:34:47 +03:00 | 221 commits to main since this release

    🛠 Minor 2.5.0 — Discord join/leave с лимитами и waitlist

    Релиз закрывает issue #29: Discord schedule messages теперь обрабатывают кнопки Join/Leave через общую platform-neutral бизнес-логику, включая лимит мест, waitlist, повторные клики и обновление расписания после изменения состава.

    Решённые issues

    • #29 — feat: подключить Discord join/leave с лимитами и waitlist

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

    • src/GmRelay.DiscordBot/Features/Sessions/DiscordSessionInteractionModule.cs — обработка Discord component interactions join_session / leave_session с deferred ephemeral ответами.
    • src/GmRelay.DiscordBot/Features/Sessions/DiscordSessionInteractionMapper.cs — маппинг Discord interaction payload в platform-neutral команды.
    • src/GmRelay.Shared/Features/Sessions/CreateSession/JoinSessionHandler.cs и LeaveSessionHandler.cs — общие handlers для Telegram и Discord, с сохранением лимитов, waitlist и stale-session поведения.
    • src/GmRelay.Shared/Features/Sessions/CreateSession/ScheduleMessageUpdateLock.cs — сериализация обновлений одного schedule message при конкурентных кликах.
    • src/GmRelay.Shared/DapperAotModule.cs и GmRelay.Shared.csproj — Dapper.AOT включён в shared assembly, где теперь находятся Dapper call-sites для join/leave.
    • README.md и docs/c4-system-context.md — документация обновлена под Discord join/leave flow.
    • Тесты — добавлены проверки Discord interaction mapping/module, lock behavior, stale cancelled join guard и Dapper.AOT конфигурации Shared.
    • Синхронизированы версии: Directory.Build.props, NavMenu.razor, compose.yaml, deploy.yml, README.md2.5.0.

    🛡 Что это даёт

    • Игроки могут записываться и выходить из Discord-сессий кнопками прямо в расписании.
    • При заполненном лимите Discord-пользователь попадает в waitlist, а при освобождении места первый ожидающий продвигается.
    • Telegram и Discord используют одну бизнес-логику join/leave, что снижает риск расхождения поведения.
    • Конкурентные клики по одной сессии не должны приводить к stale schedule edits.

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

    • версия обновлена до 2.5.0
    • Docker-образы используют тег 2.5.0
    • PR #86 — merged via fallback local merge commit 9ff5cc4a6763bae0e0aa6705f0ca8f5b288ac51f
    • Gitea Actions run #200 (PR checks) — success
    • Gitea Actions run #201 (deploy) — success
    Downloads