-
released this
2026-04-28 10:43:34 +03:00 | 364 commits to main since this release🛠 Patch 1.8.2 — Web Dashboard sidebar fix
Этот patch-релиз исправляет визуальный баг в левом меню Web Dashboard: пункт «Шаблоны» больше не прилипает к «Панель управления», а его иконка не уезжает в строку выше.
✅ Закрытые issues
- Отдельного Gitea issue для фикса не было: релиз закрывает прямую UI-правку sidebar после выноса шаблонов в отдельную вкладку.
🧩 Что вошло в релиз
- исправлен scoped CSS для
NavLink: стили пунктов меню теперь применяются к сгенерированным anchor через::deep .nav-item; nav-sectionсделан вертикальным flex-контейнером с явнымgap, поэтому пункты меню стабильно идут отдельными строками;- пункт «Шаблоны» получил корректную full-width строку, собственную иконку и отступ от «Панель управления»;
- sidebar version badge обновлён до v1.8.2;
- README и wiki обновлены под 1.8.2;
- добавлен regression-тест, который фиксирует CSS isolation для
NavLinkи вертикальную раскладку пунктов меню.
🛡 Что это даёт
- левое меню снова выглядит аккуратно на узком desktop/sidebar viewport;
- future-изменения
NavLinkне сломают раскладку без падения теста; - функциональность вкладки
/templatesи создание batch из шаблонов не менялись.
📦 Версия и деплой
- версия проекта обновлена до 1.8.2 в
Directory.Build.props,compose.yaml, README, Web design system, wiki и Gitea Actions workflow; - Docker-образы и deploy-конфигурация используют тег 1.8.2;
- локально пройдены
dotnet test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --collect:"XPlat Code Coverage"иdotnet build GM-Relay.slnx -c Release; - дополнительно проверен sidebar-фрагмент в браузере на ширине 257px: пункты меню рендерятся отдельными строками;
- Gitea Actions run #47 успешно собрал, опубликовал и задеплоил bot/web образы.
Downloads
-
released this
2026-04-28 10:27:54 +03:00 | 365 commits to main since this release🛠 Patch 1.8.1 — Web Dashboard UX fix
Этот patch-релиз дорабатывает UX шаблонов кампаний из v1.8.0: управление шаблонами вынесено из страницы группы в отдельную вкладку левого меню, а внутри группы оставлено только применение уже сохранённых шаблонов.
✅ Закрытые issues
- Отдельного Gitea issue для фикса не было: релиз закрывает прямую UX-правку по размещению шаблонов кампаний в Web Dashboard.
🧩 Что вошло в релиз
- в левом sidebar добавлена вкладка «Шаблоны» с маршрутом
/templates; - создана отдельная страница управления шаблонами кампаний: выбор доступной группы, создание шаблона, список сохранённых шаблонов и удаление устаревших;
- страница группы больше не содержит форму создания и удаление шаблонов, чтобы не перегружать карточку группы;
- в группе остался компактный блок «Применить шаблон»: GM выбирает первую дату и создаёт новый batch из выбранного шаблона;
- sidebar version badge обновлён до v1.8.1;
- README и wiki обновлены: управление шаблонами описано как отдельная вкладка, применение — как действие на странице группы;
- добавлены regression-тесты, которые фиксируют новое разделение навигации и ответственности страниц.
🛡 Что это даёт
- левое меню стало полезнее и понятнее: шаблоны теперь видны как самостоятельный раздел;
- страница группы стала чище: там остаются co-GM, применение шаблонов, batch-операции и список сессий;
- управление шаблонами не смешивается с запуском конкретного расписания;
- существующая серверная логика шаблонов и создание batch из шаблона не менялись.
📦 Версия и деплой
- версия проекта обновлена до 1.8.1 в
Directory.Build.props,compose.yaml, README, Web design system, wiki и Gitea Actions workflow; - Docker-образы и deploy-конфигурация используют тег 1.8.1;
- локально пройдены
dotnet test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --collect:"XPlat Code Coverage"иdotnet build GM-Relay.slnx -c Release; - Gitea Actions run #46 успешно собрал, опубликовал и задеплоил bot/web образы.
Downloads
-
released this
2026-04-28 10:07:07 +03:00 | 366 commits to main since this release🚀 Версия 1.0 — Telegram Bot + Mini App Dashboard
Этот релиз закрывает следующую задачу этапа «Версия 1.0 — Telegram Bot + Mini App Dashboard»: GM теперь может быстро создавать повторяющиеся расписания и сохранять типовые кампании как шаблоны. Вместо ручного перечисления дат достаточно указать первую игру, количество сессий и шаг расписания, а для частых форматов — выбрать готовый шаблон в Web Dashboard.
✅ Закрытые issues
- #16 — feat: добавить шаблоны кампаний и быстрое создание повторяющихся расписаний:
/newsessionполучил быстрые поля повторения, Web Dashboard получил CRUD для шаблонов кампаний и запуск нового batch-расписания из шаблона с единой проверкой доступа owner/co-GM.
🧩 Что вошло в релиз
- команда
/newsessionтеперь поддерживает строкиИгр:,Сессий:илиПовторов:для количества игр иИнтервал:илиШаг:для шага в днях; - если указан счётчик повторений без интервала, Telegram-сценарий использует недельный шаг по умолчанию;
- парсер проверяет границы повторений 1-52 и интервала 1-365 дней, а
/helpпоказывает новый быстрый формат; - добавлен
BatchSchedulePlanner.BuildRecurringSchedule, который строит повторяющиеся даты из первой сессии, количества игр и интервала; - в Web Dashboard на странице группы появился блок «Шаблоны кампаний»: можно сохранить название, заголовок, ссылку, количество сессий, интервал, режим уведомлений и опциональный лимит мест;
- шаблон можно сразу запустить от выбранной первой даты: создаётся новый
batch_id, набор будущихsessions, Telegram-сообщение расписания и пустой список участников; - доступ к шаблонам проходит через
AuthorizedSessionService: owner и co-GM видят и используют шаблоны своих групп, чужие группы остаются закрыты; - добавлены операции хранения шаблонов в
ISessionStore/SessionService, включая создание, список, удаление и запуск batch из шаблона; - база данных расширена миграцией
V010__add_campaign_templates.sqlс таблицейcampaign_templatesи уникальным именем шаблона в пределах группы; - README и wiki обновлены под 1.8.0, включая Telegram-формат повторов, Web-шаблоны, миграцию V010 и актуальные версии;
- добавлены тесты для парсинга повторяющегося
/newsession, построения расписаний, авторизации шаблонов и запуска batch из шаблона.
🛡 Что это даёт
- GM может заводить типовые кампании один раз и дальше создавать новые расписания за несколько кликов;
- повторяющиеся кампании больше не требуют ручного ввода каждой даты в Telegram;
- Telegram и Web используют одинаковые правила построения расписания, ограничения и модель доступа;
- новый batch из шаблона стартует чистым: с собственным
batch_id, новыми сессиями и без переноса старых участников; - существующие сценарии bulk-создания и клонирования расписаний остаются совместимыми.
📦 Версия и деплой
- версия проекта обновлена до 1.8.0 в
Directory.Build.props,compose.yaml, README, Web design system, wiki и Gitea Actions workflow; - Docker-образы и deploy-конфигурация используют тег 1.8.0;
- локально пройдены
dotnet test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --collect:"XPlat Code Coverage"иdotnet build GM-Relay.slnx -c Release; - Gitea Actions run #45 успешно собрал, опубликовал и задеплоил bot/web образы.
Downloads
- #16 — feat: добавить шаблоны кампаний и быстрое создание повторяющихся расписаний:
-
released this
2026-04-27 15:03:38 +03:00 | 367 commits to main since this release🚀 Этап 4 — Расширение командных сценариев
Этот релиз закрывает следующую задачу этапа «Этап 4 — Расширение командных сценариев»: перенос сессии теперь работает как небольшое голосование по нескольким вариантам времени. GM больше не обязан угадывать единственный удобный слот — группа выбирает лучший вариант до заданного дедлайна.
✅ Закрытые issues
- #11 — feat: улучшить перенос сессии до голосования по нескольким вариантам времени: owner/co-GM предлагает 2-3 новых времени и дедлайн, участники голосуют кнопками в Telegram, сообщение показывает текущие результаты, а по дедлайну бот применяет победивший вариант или отклоняет перенос при ничьей/нуле голосов.
🧩 Что вошло в релиз
- сценарий
⏰ Перенеститеперь просит 2-3 варианта времени и строкуДедлайн: ДД.ММ.ГГГГ ЧЧ:ММ; - добавлен парсер
RescheduleVotingInput, который проверяет количество вариантов, повторы, будущие даты и дедлайн раньше первого предложенного времени; - голосование создаёт отдельную кнопку для каждого варианта и использует callback
reschedule_vote:<optionId>; - Telegram-сообщение голосования показывает дедлайн, варианты, счёт по каждому слоту, проголосовавших игроков и список тех, кто ещё не выбрал время;
- игрок может изменить голос до дедлайна: повторное нажатие обновляет его выбор вместо создания второго голоса;
- добавлен
RescheduleVotingDeadlineService, который раз в минуту финализирует просроченные голосования; - правило выбора зафиксировано явно: побеждает вариант с наибольшим числом голосов, а ничья или отсутствие голосов отклоняют перенос;
- при успешном переносе бот обновляет
scheduled_at, сбрасывает RSVP активных участников вPending, очищает старые confirmation/link сообщения и перерисовывает batch-сообщение; - DM-режим batch теперь отправляет игрокам личные уведомления о старте голосования и об итоговом результате переноса;
- база данных расширена миграцией
V009__add_multi_option_reschedule_votes.sql: добавленыvoting_deadline_at,selected_option_id,reschedule_optionsиreschedule_option_votes; - README и wiki обновлены под 1.7.0 и новый сценарий multi-slot переноса.
🛡 Что это даёт
- перенос стал удобнее для живых групп: GM предлагает несколько реалистичных слотов, а не один компромиссный вариант;
- участники видят текущую картину голосования прямо в Telegram и могут поменять решение до дедлайна;
- дедлайн убирает вечные подвисшие переносы: бот сам применяет победителя или оставляет старое время при спорном результате;
- Web и Telegram сохраняют общий источник правды в БД, а расписание в Telegram остаётся актуальным после финализации;
- существующие одиночные таблицы переноса не ломаются, а новые голосования используют отдельную multi-option модель.
📦 Версия и деплой
- версия проекта обновлена до 1.7.0 в
Directory.Build.props,compose.yaml, README, Web design system, wiki и Gitea Actions workflow; - Docker-образы и deploy-конфигурация используют тег 1.7.0;
- локально пройдены
dotnet test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --collect:"XPlat Code Coverage"иdotnet build GM-Relay.slnx -c Release; - Gitea Actions run #44 успешно собрал, опубликовал и задеплоил bot/web образы.
Downloads
-
released this
2026-04-27 14:34:18 +03:00 | 368 commits to main since this release🚀 Этап 4 — Расширение командных сценариев
Этот релиз закрывает первую задачу этапа «Этап 4 — Расширение командных сценариев»: управлять группой теперь может не только один GM, но и назначенные помощники. Модель доступа разделена на owner/co-GM, а сценарии управления расписанием доступны в Telegram и Web Dashboard.
✅ Закрытые issues
- #9 — feat: поддержать co-GM и делегирование управления группой: добавлена роль
Ownerдля владельца группы иCoGmдля помощников; owner назначает co-GM в Web, а co-GM может управлять сессиями и batch-сценариями.
🧩 Что вошло в релиз
- добавлена доменная модель
GroupManagerRoleс ролямиOwnerиCoGm; - база данных расширена миграцией
V008__add_group_managers.sql: появилась таблицаgroup_managers, а существующиеgm_telegram_idмигрируют в owner-записи; /newsessionтеперь создаёт owner при первой регистрации группы и запрещает создание сессий посторонним пользователям в уже известной группе;- Telegram-кнопки отмены, удаления, переноса и повышения из листа ожидания проверяют доступ через
group_managers, поэтому owner и co-GM получают одинаковые права управления расписанием; /listsessionsпоказывает кнопки удаления для owner/co-GM, а обычные игроки видят только список игр;- Web Dashboard показывает роль пользователя на главной странице и блок управления группой на странице группы;
- owner может добавить co-GM по Telegram ID, имени и username, а также убрать co-GM без удаления игрока из базы;
AuthorizedSessionServiceпереведён с проверки одногоgm_telegram_idна проверку manager-роли группы;- README и wiki обновлены под 1.6.0 и новый сценарий делегирования.
🛡 Что это даёт
- кампанией можно управлять совместно: помощник GM может редактировать сессии, переносить игры, удалять устаревшие даты и работать с листом ожидания;
- owner сохраняет контроль над делегированием и остаётся единственной ролью, которая назначает или снимает co-GM;
- Telegram и Web используют одну модель доступа, поэтому права не расходятся между интерфейсами;
- существующие группы обновляются миграцией без ручного вмешательства.
📦 Версия и деплой
- версия проекта обновлена до 1.6.0 в
Directory.Build.props,compose.yaml, README, Web design system, wiki и Gitea Actions workflow; - Docker-образы и deploy-конфигурация используют тег 1.6.0;
- локально пройдены
dotnet test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --collect:"XPlat Code Coverage"иdotnet build GM-Relay.slnx -c Release; - Gitea Actions run #43 успешно собрал, опубликовал и задеплоил bot/web образы.
Downloads
- #9 — feat: поддержать co-GM и делегирование управления группой: добавлена роль
-
released this
2026-04-27 10:12:17 +03:00 | 369 commits to main since this release🚀 Этап 3 — Базовый продуктовый рост
Этот релиз закрывает ещё одну продуктовую задачу этапа «Этап 3 — Базовый продуктовый рост»: важные сообщения теперь доходят не только через групповой чат, но и лично игрокам. При этом групповые уведомления сохранены как основной публичный источник состояния, а GM может управлять DM-дублированием на уровне batch.
✅ Закрытые issues
- #12 — feat: отправлять персональные уведомления игрокам в личные сообщения: добавлены DM-уведомления для RSVP за 24 часа, напоминания примерно за 1 час, ссылки перед стартом, отмены и переноса сессии; для batch доступен выбор режима
В группе и в личкуилиТолько в группе.
🧩 Что вошло в релиз
- добавлена доменная модель
SessionNotificationModeс режимамиGroupAndDirectиGroupOnly; - база данных расширена миграцией
V007__add_session_notification_mode.sql: у сессий появилсяnotification_mode, а T-1h reminder получил защиту от повторной обработки черезone_hour_reminder_processed_at; SessionSchedulerServiceтеперь обрабатывает отдельный T-1h trigger для персональных напоминаний;- RSVP за 24 часа по-прежнему публикуется в группе, но при
GroupAndDirectигроки получают личный DM с напоминанием подтвердиться в групповом сообщении; - ссылка перед игрой остаётся в группе и дополнительно отправляется подтверждённым игрокам в ЛС;
- отмена и перенос сессии отправляют персональные уведомления активным игрокам, не ломая групповые сообщения и перерисовку batch;
- добавлен graceful fallback: если Telegram не позволяет написать конкретному игроку в ЛС, ошибка логируется, а отправка остальным участникам продолжается;
- Web Dashboard получил dropdown режима уведомлений в batch bulk-блоке;
- clone batch наследует режим уведомлений исходной пачки;
- README и wiki обновлены под 1.5.0 и новый сценарий личных уведомлений.
🛡 Что это даёт
- игроки меньше зависят от видимости группового чата и получают критичные изменения прямо в личку;
- GM сохраняет публичную историю в группе и может отключить DM для конкретной пачки, если они не нужны;
- переносы, отмены и предыгровые напоминания становятся заметнее без ручной рассылки;
- отказ Telegram DM одному игроку не блокирует уведомления всей группе или остальным участникам.
📦 Версия и деплой
- версия проекта обновлена до 1.5.0 в
Directory.Build.props,compose.yaml, README, Web design system, wiki и Gitea Actions workflow; - Docker-образы и deploy-конфигурация используют тег 1.5.0;
- локально пройдены
dotnet test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --collect:"XPlat Code Coverage"иdotnet build GM-Relay.slnx -c Release; - Gitea Actions run #42 успешно собрал, опубликовал и задеплоил bot/web образы.
Downloads
- #12 — feat: отправлять персональные уведомления игрокам в личные сообщения: добавлены DM-уведомления для RSVP за 24 часа, напоминания примерно за 1 час, ссылки перед стартом, отмены и переноса сессии; для batch доступен выбор режима
-
released this
2026-04-27 09:51:05 +03:00 | 370 commits to main since this release🛠 Web UI hotfix
Этот релиз закрывает точечную проблему читаемости в Web Dashboard: native dropdown у bulk-операций batch-сессий больше не открывается белым списком с почти белым текстом. Варианты вроде «Следующая неделя» и «Следующий месяц» теперь используют контрастный фон и текст, согласованные с тёмной темой GM-Relay.
✅ Решённые issues
- Отдельного Gitea issue для этого hotfix не было. Решён пользовательский дефект из Web Dashboard: нечитаемый шрифт в раскрытом списке выбора периода клонирования batch-сессии.
🧩 Что вошло в релиз
- добавлено явное CSS-оформление
select optionчерезvar(--bg-secondary)иvar(--text-primary); - сохранена совместимость с текущим тёмным dashboard theme без изменения разметки и логики bulk-операций;
- добавлен регрессионный тест
WebStylesTests, который проверяет наличие контрастных стилей для native select options; - README, wiki, Docker Compose, Web design system и Gitea Actions workflow обновлены под 1.4.1.
🛡 Что это даёт
- GM может уверенно выбирать клонирование batch на следующую неделю или месяц без визуального сбоя;
- dropdown остаётся читаемым в тёмной теме на системном native popup;
- будущие правки CSS не смогут незаметно убрать этот стиль без падения теста.
📦 Версия и деплой
- версия проекта обновлена до 1.4.1 в
Directory.Build.props,compose.yaml, README, Web UI, wiki и Gitea Actions workflow; - Docker-образы и deploy-конфигурация используют тег 1.4.1;
- локально пройдены
dotnet test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --collect:"XPlat Code Coverage"иdotnet build GM-Relay.slnx -c Release; - Gitea Actions run #41 успешно собрал, опубликовал и задеплоил bot/web образы.
Downloads
-
released this
2026-04-27 09:37:40 +03:00 | 371 commits to main since this release🚀 Этап 3 — Базовый продуктовый рост
Этот релиз закрывает ещё одну продуктовую задачу этапа «Этап 3 — Базовый продуктовый рост»: Web Dashboard теперь умеет работать не только с отдельными сессиями, но и со всей пачкой игр. GM может быстро поддерживать campaign-style расписание без ручного редактирования каждой даты.
✅ Закрытые issues
- #10 — feat: добавить bulk-операции для batch-сессий в Web: добавлены общий
title/linkдля batch, массовый перенос пачки на фиксированный интервал, клонирование на следующую неделю или месяц и понятный UI на странице группы.
🧩 Что вошло в релиз
- на странице группы появился отдельный блок batch-операций для каждой видимой пачки сессий;
- общий
titleиjoin_linkтеперь можно обновить сразу для всех сессий одногоbatch_id; - массовый перенос пересчитывает даты пачки от новой первой даты с фиксированным шагом в днях;
- clone создаёт новый
batch_id, новые строкиsessions, новое Telegram batch-сообщение и пустой состав игроков; - Web после bulk-операций перечитывает список сессий, чтобы таблица и мобильные карточки оставались синхронны;
- исходное Telegram-сообщение расписания перерисовывается после обновления title/link и переноса;
- добавлен
BatchSchedulePlannerс unit-тестами для fixed-interval расписания и календарных clone-смещений; AuthorizedSessionServiceполучил проверки доступа на уровне batch, чтобы GM не мог менять чужие пачки по прямому GUID;- README, wiki, Docker Compose, Web design system и Gitea Actions workflow обновлены под 1.4.0.
🛡 Что это даёт
- GM может переименовать кампанию или заменить ссылку на созвон один раз для всей пачки;
- недельные и месячные кампании можно переносить без однотипного редактирования каждой сессии;
- повторяющееся расписание можно быстро склонировать на следующую неделю или месяц;
- новая пачка после клонирования стартует без старых записей игроков, поэтому состав набирается заново;
- Telegram-сообщение расписания остаётся актуальным источником правды после Web-операций.
📦 Версия и деплой
- версия проекта обновлена до 1.4.0 в
Directory.Build.props,compose.yaml, README, Web UI, wiki и Gitea Actions workflow; - Docker-образы и deploy-конфигурация используют тег 1.4.0;
- локально пройдены
dotnet test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --collect:"XPlat Code Coverage"иdotnet build GM-Relay.slnx -c Release; - Gitea Actions run #40 успешно собрал, опубликовал и задеплоил bot/web образы.
Downloads
- #10 — feat: добавить bulk-операции для batch-сессий в Web: добавлены общий
-
released this
2026-04-27 09:03:35 +03:00 | 372 commits to main since this release🚀 Этап 3 — Базовый продуктовый рост
Этот релиз продолжает этап «Этап 3 — Базовый продуктовый рост»: игроки теперь могут самостоятельно снять запись с сессии прямо из Telegram-сообщения расписания. Бот корректно убирает игрока из основного состава или листа ожидания, обновляет batch-сообщение и автоматически отдаёт освободившееся место первому ожидающему.
✅ Закрытые issues
- #8 — feat: позволить игроку самостоятельно отменять запись на сессию: добавлена кнопка выхода из сессии, удаление записи игрока, обновление состава/очереди и автоматическое повышение из waitlist при освобождении места.
🧩 Что вошло в релиз
- у каждой активной сессии появилась кнопка
🚪 Выйти, доступная игрокам в исходном сообщении расписания; - добавлен
LeaveSessionHandler, который проверяет запись игрока по Telegram ID и удаляет его изsession_participants; - если активный игрок освобождает место и в листе ожидания есть участники, бот автоматически переводит первого ожидающего в основной состав;
- batch-сообщение перерисовывается после выхода, чтобы основной состав, занятые места и очередь оставались актуальными;
- callback-routing получил
leave_session:<sessionId>, а DI-регистрация обновлена для Native AOT-friendly маршрутизации; - добавлены тесты для кнопки выхода в
SessionBatchRendererи правила автоповышения после выхода участника; - README, Web-версия, Docker Compose, deploy workflow и wiki обновлены под 1.3.0;
- Gitea Actions workflow адаптирован под registry после обновления Gitea 1.26: публикация образов выполняется через обычные
docker build/docker pushшаги.
🛡 Что это даёт
- игрок может освободить место без участия GM;
- GM больше не нужно вручную чистить основной состав или очередь при отказах до игры;
- waitlist становится живой очередью: освободившееся место сразу получает первый ожидающий;
- Telegram-сообщение расписания остаётся единым источником актуального состава.
📦 Версия и деплой
- версия проекта обновлена до 1.3.0 в
Directory.Build.props,compose.yaml, README, Web UI, wiki и Gitea Actions workflow; - Docker-образы и deploy-конфигурация используют тег 1.3.0;
- локально пройдены
dotnet test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --collect:"XPlat Code Coverage"иdotnet build GM-Relay.slnx -c Release; - Gitea Actions run #39 успешно собрал, опубликовал и задеплоил bot/web образы.
Downloads
-
released this
2026-04-24 13:37:25 +03:00 | 377 commits to main since this release🚀 Этап 3 — Базовый продуктовый рост
Этот релиз закрывает продуктовую задачу этапа «Этап 3 — Базовый продуктовый рост»: сессии теперь могут иметь лимит мест, а игроки сверх лимита попадают в лист ожидания вместо обычной записи. ГМ видит заполненность, очередь ожидания и может повышать игроков в основной состав из Telegram или Web.
✅ Закрытые issues
- #7 — feat: добавить лимит мест в сессии и лист ожидания: добавлены лимит мест, лист ожидания, продвижение игроков ГМом и отображение мест/очереди в Telegram и Web.
🧩 Что вошло в релиз
/newsessionполучил опциональное полеМест:/Лимит:/Максимум:для задания вместимости сессии;- база данных расширена миграцией
V006__add_session_capacity_waitlist.sql: у сессий появилсяmax_players, у участников — статус регистрации и порядок попадания в очередь; - запись через Telegram теперь добавляет игрока в основной состав при наличии мест или в лист ожидания при полном составе;
- карточки сессий показывают заполненность, основной состав и лист ожидания отдельными блоками;
- ГМ может повысить первого ожидающего игрока кнопкой в Telegram или через Web-интерфейс группы;
- RSVP-ответы, переносы и напоминания работают только с активными участниками, не трогая лист ожидания до повышения;
- Web теперь показывает занятые места, очередь ожидания, позволяет менять лимит мест и повышать игроков из ожидания;
- README и wiki обновлены под версию 1.2.0 и новый сценарий работы с лимитом мест;
- зависимости OpenTelemetry обновлены до безопасных patch-версий, чтобы сборка с warnings-as-errors не падала на NU1902.
🛡 Что это даёт
- ГМ может заранее ограничить размер партии без ручной модерации записей;
- игроки не теряются при переполненной сессии и сохраняют понятную очередь ожидания;
- основной состав, свободные места и ожидание видны в одном сообщении;
- игроки из листа ожидания не получают RSVP и ссылки на созвон до фактического повышения;
- Web и Telegram теперь отражают одинаковую модель регистрации.
📦 Версия и деплой
- версия проекта обновлена до 1.2.0 в
Directory.Build.props,compose.yaml, README, wiki и Gitea Actions workflow; - Docker-образы и deploy-конфигурация теперь используют тег 1.2.0;
- локально пройдены
dotnet test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --collect:"XPlat Code Coverage"иdotnet build GM-Relay.slnx -c Release; - Gitea Actions run #34 успешно собрал, опубликовал и задеплоил образы после повторного запуска workflow.
Downloads