fix(discord): add console logging and deferred responses #101

Closed
Toutsu wants to merge 0 commits from fix/discord-console-logging-deferred into main
Owner

Summary

Добавлено консольное логирование и deferred-ответы для Discord slash-команд, чтобы диагностировать и исправить ошибку /newsession.

Changes

  • src/GmRelay.DiscordBot/Program.cs — добавлен builder.Logging.AddConsole() для вывода логов в stdout (видно в docker logs).
  • src/GmRelay.DiscordBot/Features/Sessions/DiscordNewSessionCommand.cs — добавлены LogInformation/LogError на каждом шаге; используется DeferredMessage() + ModifyResponseAsync вместо прямого SendResponseAsync, чтобы избежать 3-секундного таймаута Discord interaction.
  • src/GmRelay.DiscordBot/Features/Sessions/DiscordRescheduleCommand.cs — аналогичные изменения.
  • Синхронизированы версии → 3.0.8

Test plan

  • dotnet build src/GmRelay.DiscordBot/GmRelay.DiscordBot.csproj --no-restore проходит
  • DiscordProjectStructureTests все 8 тестов проходят
  • Проверить /newsession на живом сервере Discord после деплоя и посмотреть docker logs

Workflow

  • CI passes
  • Code review approved
  • Deployed
  • Release published
## Summary Добавлено консольное логирование и deferred-ответы для Discord slash-команд, чтобы диагностировать и исправить ошибку `/newsession`. ## Changes - `src/GmRelay.DiscordBot/Program.cs` — добавлен `builder.Logging.AddConsole()` для вывода логов в stdout (видно в `docker logs`). - `src/GmRelay.DiscordBot/Features/Sessions/DiscordNewSessionCommand.cs` — добавлены `LogInformation`/`LogError` на каждом шаге; используется `DeferredMessage()` + `ModifyResponseAsync` вместо прямого `SendResponseAsync`, чтобы избежать 3-секундного таймаута Discord interaction. - `src/GmRelay.DiscordBot/Features/Sessions/DiscordRescheduleCommand.cs` — аналогичные изменения. - Синхронизированы версии → 3.0.8 ## Test plan - [x] `dotnet build src/GmRelay.DiscordBot/GmRelay.DiscordBot.csproj --no-restore` проходит - [x] `DiscordProjectStructureTests` все 8 тестов проходят - [ ] Проверить `/newsession` на живом сервере Discord после деплоя и посмотреть `docker logs` ## Workflow - [x] CI passes - [ ] Code review approved - [ ] Deployed - [ ] Release published
Toutsu added 1 commit 2026-05-26 11:19:15 +03:00
fix(discord): add console logging and deferred responses
PR Checks / test-and-build (pull_request) Failing after 12m3s
a5624897e9
- Add builder.Logging.AddConsole() to DiscordBot Program.cs so logs
  are visible in docker logs.
- Add granular LogInformation/LogError calls to DiscordNewSessionCommand
  and DiscordRescheduleCommand to diagnose failures.
- Use InteractionCallback.DeferredMessage() + ModifyResponseAsync pattern
  for /newsession and /reschedule to avoid Discord 3-second interaction
  timeout.
- Bump version → 3.0.8

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Toutsu added 1 commit 2026-05-26 11:33:57 +03:00
fix(tests): update DiscordNewSessionHandlerTests for deferred response pattern
PR Checks / test-and-build (pull_request) Successful in 11m55s
47d106e288
The Command_ShouldRenderEmbedOnSuccess test asserted the presence of
WithEmbeds in DiscordNewSessionCommand.cs. After switching to deferred
responses (InteractionCallback.DeferredMessage + ModifyResponseAsync),
embeds are now set via message.Embeds = embeds instead.

Bump version → 3.0.8

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Toutsu closed this pull request 2026-05-26 16:06:29 +03:00
Some checks are pending
PR Checks / test-and-build (pull_request) Successful in 11m55s

Pull request closed

Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Toutsu/GmRelayBot#101