-
released this
2026-06-10 14:51:09 +03:00 | 0 commits to main since this release🎯 Minor 3.10.0 — Online/offline format in /newsession wizard (issue #136)
Telegram-мастер теперь явно выбирает формат проведения игры (Online/Offline) и указывает либо ссылку для подключения, либо адрес места проведения. Offline-адреса сохраняются в новой колонке
sessions.location_address, а расписание в Telegram сразу показывает🔗 Ссылка на игруили📍 Адрес:. Бонус-фикс: оффлайн-сессии больше не попадают в 5-минутный join-link поток и не светят пустую строку ссылки в личке.🧩 Что вошло в релиз
src/GmRelay.Shared/Features/Sessions/CreateSession/Wizard/GameCreationWizard.cs— новые шагиFormat(Online/Offline) иLocation(URL-валидация для онлайна, текст для оффлайна) + навигация Back для single/pool-флоу.src/GmRelay.Shared/Features/Sessions/CreateSession/Wizard/WizardStepNames.cs,WizardStepLimits.cs,WizardPayload.cs,WizardStepViewBuilder.cs— новые step-константы, лимит длины адреса, payload-поляFormat/JoinLink/LocationAddress, рендер превью и summary.src/GmRelay.Shared/Features/Sessions/CreateSession/CreateSessionCommand.cs— полеLocationAddress(default null, не ломает существующих вызовов).src/GmRelay.Shared/Features/Sessions/CreateSession/CreateSessionHandler.cs— INSERTsessionsтеперь сохраняетlocation_addressиformat/join_linkв одной транзакции.src/GmRelay.Bot/Migrations/V033__add_session_location_address.sql—ALTER TABLE sessions ADD COLUMN location_address TEXT.src/GmRelay.Shared/Rendering/SessionBatchDto.cs,SessionBatchViewBuilder.cs,SessionBatchViewModel.cs—FormatиLocationAddressпротянуты в view-model.src/GmRelay.Bot/Infrastructure/Telegram/TelegramSessionBatchRenderer.csиsrc/GmRelay.Web/Services/TelegramSessionBatchRenderer.cs— оффлайн-адреса показываются📍 Адрес: …, онлайн-ссылка теперь🔗 Ссылка на игру: <url>.src/GmRelay.Bot/Features/Sessions/CreateSession/CancelSessionHandler.cs,PromoteWaitlistedPlayerHandler.cs,src/GmRelay.Bot/Features/Sessions/RescheduleSession/RescheduleVotingDeadlineService.cs,src/GmRelay.DiscordBot/Features/Sessions/DiscordRescheduleVotingDeadlineService.cs,src/GmRelay.Shared/Features/Sessions/CreateSession/JoinSessionHandler.cs,LeaveSessionHandler.cs,RescheduleSession/HandleRescheduleTimeInputHandler.cs,src/GmRelay.Web/Services/SessionService.cs— все re-render-выборки теперь возвращаютformat AS Format, location_address AS LocationAddress, чтобы перерисованные сообщения не теряли адрес.src/GmRelay.Shared/Infrastructure/Scheduling/ISessionTriggerStore.cs+src/GmRelay.Shared/Features/Reminders/SendJoinLink/SendJoinLinkHandler.cs— guardbtrim(s.join_link) <> ''в триггере и хендлере, оффлайн-сессии не уходят в 5-минутный join-link поток.src/GmRelay.Bot/Infrastructure/Telegram/TelegramPlatformMessenger.cs—BuildOneHourReminderDirectText/BuildJoinLinkDirectTextиспользуютAppendJoinLinkLineи не печатают пустую🔗строку без ссылки.- Синхронизированы версии:
Directory.Build.props,NavMenu.razor,compose.yaml,.gitea/workflows/deploy.yml→ 3.10.0. README.md,RELEASE_NOTES.md— обновлены под новый UX.
🗡 Что это даёт
- Мастер прямо в
/newsessionуказывает ссылку или адрес — игроки сразу видят, куда подключаться, без уточнений в чате. - Поле
join_linkдля оффлайна остаётся пустым, поэтому напоминания и сигнал «через 5 минут» не уходят оффлайн-сессиям.
📦 Версия и деплой
- версия обновлена до 3.10.0
- Docker-образы используют тег 3.10.0
- Gitea Actions run #318 (PR checks) — flake на testcontainers teardown (временный сбой инфраструктуры CI, не наш код), merge выполнен по ветке через local fallback.
- Gitea Actions run #319 (deploy) — success
- prod:
gmrelaybot-bot-1,gmrelaybot-discord-1,gmrelaybot-web-1подняты на3.10.0(Up 20 minutes (healthy)). - Закрывает issue #136.
- PR: #138
Downloads