feat(discord): /newsession wizard parity with Telegram (Format, Location, publish) #143

Open
Toutsu wants to merge 0 commits from feature-discord-wizard-telegram-parity into main
Owner

Summary

Closes #142.

Discord /newsession now runs the same wizard as Telegram, including Format (Online/Offline) and Location (link or address). Legacy /newsession command and handler are removed. Pool creation also gained a shared Capacity step before Format/Location to keep the two platforms identical.

Changes

  • Removed DiscordNewSessionCommand, DiscordNewSessionHandler and their tests.
  • Renamed /newsession-wizard/newsession.
  • Updated shared GameCreationWizard so pool flow is PoolSystemDuration → Capacity → Format → Location → Visibility → PoolAddSlots.
  • Added WizardPayload.Pool.MaxPlayers for the shared pool capacity.
  • Added RenderFormat/RenderLocation in DiscordWizardStep; Location uses a modal text input.
  • Added Location to StepsThatOpenModal.
  • Updated DiscordWizardSubmitter.BuildCommand to propagate Link, Format, LocationAddress exactly like Telegram.
  • IsComplete now validates Format/Location and allows MaxPlayers = null.
  • Session publication reuses the existing CreateSessionHandler + IPlatformMessenger.SendScheduleAsync path.
  • Added/updated regression tests for pool capacity, Format/Location rendering, and field mapping.
  • Bumped version to 3.11.1 and synced across Directory.Build.props, compose.yaml, .gitea/workflows/deploy.yml, NavMenu.razor, README.md.

Test plan

  • dotnet build — OK.
  • dotnet test tests/GmRelay.Bot.Tests — 618 passed, 1 skipped.
  • dotnet format --verify-no-changes — OK.
  • dotnet list package --vulnerable --include-transitive — no vulnerable packages.

Workflow

  • CI passes
  • Code review approved
  • Deployed
  • Release published
## Summary Closes #142. Discord `/newsession` now runs the same wizard as Telegram, including `Format` (Online/Offline) and `Location` (link or address). Legacy `/newsession` command and handler are removed. Pool creation also gained a shared `Capacity` step before Format/Location to keep the two platforms identical. ## Changes - Removed `DiscordNewSessionCommand`, `DiscordNewSessionHandler` and their tests. - Renamed `/newsession-wizard` → `/newsession`. - Updated shared `GameCreationWizard` so pool flow is `PoolSystemDuration → Capacity → Format → Location → Visibility → PoolAddSlots`. - Added `WizardPayload.Pool.MaxPlayers` for the shared pool capacity. - Added `RenderFormat`/`RenderLocation` in `DiscordWizardStep`; `Location` uses a modal text input. - Added `Location` to `StepsThatOpenModal`. - Updated `DiscordWizardSubmitter.BuildCommand` to propagate `Link`, `Format`, `LocationAddress` exactly like Telegram. - `IsComplete` now validates Format/Location and allows `MaxPlayers = null`. - Session publication reuses the existing `CreateSessionHandler` + `IPlatformMessenger.SendScheduleAsync` path. - Added/updated regression tests for pool capacity, Format/Location rendering, and field mapping. - Bumped version to `3.11.1` and synced across `Directory.Build.props`, `compose.yaml`, `.gitea/workflows/deploy.yml`, `NavMenu.razor`, `README.md`. ## Test plan - `dotnet build` — OK. - `dotnet test tests/GmRelay.Bot.Tests` — 618 passed, 1 skipped. - `dotnet format --verify-no-changes` — OK. - `dotnet list package --vulnerable --include-transitive` — no vulnerable packages. ## Workflow - [ ] CI passes - [ ] Code review approved - [ ] Deployed - [ ] Release published
Toutsu added 1 commit 2026-06-15 17:56:12 +03:00
feat(discord): make /newsession identical to Telegram wizard
PR Checks / test-and-build (pull_request) Successful in 30m45s
9709d09b15
- Remove legacy DiscordNewSessionCommand/Handler and their tests.
- Rename /newsession-wizard to /newsession.
- Add shared pool capacity step before Format/Location.
- Render Format and Location in Discord wizard; Location uses a modal.
- Propagate Format, JoinLink and LocationAddress in BuildCommand.
- Publish created sessions through existing IPlatformMessenger pipeline.
- Update README, version bump to 3.11.1, sync compose/deploy/NavMenu.
Toutsu added 1 commit 2026-06-15 18:39:28 +03:00
review fixes: complete success path, pool capacity navigation, time parser tests
PR Checks / test-and-build (pull_request) Successful in 24m27s
e0602052ea
- DiscordWizardSubmitter.SubmitAsync: confirm success, delete draft, clear context.
- GameCreationWizard: pool free-text duration now advances to Capacity.
- PreviousStep(Capacity) returns PoolSystemDuration for pools.
- Remove unused optional IPlatformMessenger/NpgsqlDataSource from submitter.
- Add DiscordTimeParserTests preserving ParseTimeInput coverage.
Some checks are pending
PR Checks / test-and-build (pull_request) Successful in 24m27s
This branch is already included in the target branch. There is nothing to merge.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feature-discord-wizard-telegram-parity:feature-discord-wizard-telegram-parity
git checkout feature-discord-wizard-telegram-parity
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Toutsu/GmRelayBot#143