- Update compose.yaml image tags to 3.11.4 so deploy pulls the freshly
built images instead of the stale 3.11.3 ones.
- Update NavMenu version label to 3.11.4.
- Refresh README description of the dashboard edit test.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Wrap the group notification in UpdateSessionAsync with try/catch so a
missing/unreachable chat does not roll back a Web dashboard edit.
- Update E2E dashboard test to use production schema (public.*), 1920x1080
viewport, direct edit navigation, and mobile-card delete locator.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Issue #150 follow-up: clicking the session title only expands participants, so click the explicit 'Изменить' edit link. Cleanup now only deletes the player row when the test was the sole owner, avoiding accidental removal of the real Toutsu account from production.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Add DeleteSessionAsync to ISessionStore/SessionService (unpublish portfolio card,
remove bot-created empty forum topic, update batch message).
- Add DeleteSessionForCurrentUserAsync to AuthorizedSessionService with audit log.
- Add delete button + confirmation dialog to GroupDetails.razor.
- Extend dashboard Playwright tests with edit persistence and delete verification.
- Update AuthorizedSessionServiceTests with delete authorization coverage.
- Mark issue #150 as done in tests/e2e/README.md.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Add NewSessionScenario that walks the Telegram wizard:
single game, title, skip description/cover, D&D 5e, 4h, datetime,
capacity, online format, join link, public visibility, publish, confirm
- Add ClickInlineButtonAsync / ClickInlineButtonByTextAsync to TelegramUserClient
- Add local WizardCallback/Step constants mirroring GmRelay.Shared wizard wire format
- Program.cs now runs full flow: group setup + /newsession + cleanup
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Add GroupSetupScenario: create supergroup, invite GmRelay bot, send /start,
wait for reply, then delete the group
- Extend TelegramUserClient with DeleteGroupAsync and channel cache
- Update Program.cs to run the scenario with cleanup in finally
- Update README status table and runner documentation
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Add standalone C# console runner tests/e2e/runner/ using WTelegramClient
- Provide TelegramUserClient wrapper: login, create supergroup, invite bot,
send messages/commands, read recent messages, wait for bot reply
- Add .env.example and runner .gitignore to keep secrets/session files out of git
- Update E2E README with runner instructions and status table
- Runner project intentionally excluded from GM-Relay.slnx to avoid CI/AOT impact
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Add Playwright-based E2E tests in tests/e2e/dashboard/
- Authenticate via /auth/telegram-webapp using helpers/telegram_init_data.py
- Cover dashboard load and session edit flow
- Add requirements.txt and package dashboard folder
- Update README with setup and test descriptions
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Add TelegramAuthPayloadBuilder in GmRelay.Shared for C# tests.
- Refactor TelegramAuthServiceTests to use the shared builder.
- Add Python equivalent (telegram_init_data.py) for E2E runner.
- Add self-contained Python tests and E2E README.
Closes#144
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>