diff --git a/.club-kulaki-anonymous.png b/.club-kulaki-anonymous.png new file mode 100644 index 0000000..47555ce Binary files /dev/null and b/.club-kulaki-anonymous.png differ diff --git a/.club-kulaki-as-member.png b/.club-kulaki-as-member.png new file mode 100644 index 0000000..177c2a3 Binary files /dev/null and b/.club-kulaki-as-member.png differ diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index feadfb2..7ee8f49 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -6,7 +6,7 @@ on: - main env: - VERSION: 3.9.1 + VERSION: 3.9.2 jobs: # ЧАСТЬ 1: Собираем образы и кладем в Gitea (чтобы делиться с ребятами) diff --git a/.mavis/plans/decision.json b/.mavis/plans/decision.json new file mode 100644 index 0000000..ad9366c --- /dev/null +++ b/.mavis/plans/decision.json @@ -0,0 +1,22 @@ +{ + "last_cycle": [ + { + "task_id": "discord-wizard-impl", + "verdict": "manual_retry", + "reason": "Verifier FAIL — критически отсутствует `DiscordWizardInteractionModule`. Без него wizard может отрисовать только первый экран, кнопки/select/modal не обрабатываются, submitter зарегистрирован в DI но не вызывается. Стейт-машина Shared + IWizardMessenger + Discord-рендерер всё на месте, но без interaction module весь wizard декоративный. Также: deliverable.md в корне репо описывает Task 1, не Discord-адаптер; нет smoke-тестов на новый код. Новая попытка: добавить ТОЛЬКО interaction module, подключить submitter, обновить deliverable.md." + } + ], + "next_cycle": [ + { + "task_id": "discord-wizard-impl", + "title": "Discord-адаптер: добавить interaction module (handlers) + подключить submitter", + "prompt": "**Единственная цель** этой попытки: добавить недостающий `DiscordWizardInteractionModule` с обработчиками кнопок, StringSelectMenu и модалов. Без него wizard декоративен — verifier уже сделал FAIL.\n\n## Контекст: что УЖЕ есть (не трогай, не переписывай)\n\nПроверь, что у тебя на диске в `src/GmRelay.DiscordBot/Features/Sessions/Wizard/` (commit b81d865 на `feat/issue-112-wizard-refactor`):\n- `DiscordWizardContextStore.cs` — кэш контекста (guildId/channelId/messageId)\n- `DiscordWizardMessenger.cs` — реализация `IWizardMessenger` (edit/send/answer/getClubs)\n- `DiscordWizardStep.cs` — рендер кнопок/select/modal customId\n- `DiscordWizardSubmitter.cs` — финализация (BuildCommand → Shared.CreateSessionHandler → edit «✅ Создано»)\n- `DiscordWizardCommand.cs` — slash `/newsession-wizard`\n- `DiscordPermissionLookup.cs` — helper для owner/co-GM проверки\n\n## Что нужно добавить\n\n### 1. `src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordWizardInteractionModule.cs`\n\nСоздай `DiscordWizardInteractionModule : ComponentInteractionModule<...>` (или split на 2 модуля, если NetCord требует). Реализуй handlers для:\n\n**Кнопки** (`[ComponentInteraction(\"wizard:btn:...\")]`):\n- `wizard:btn:choice::` — choice-кнопки (Type, System, Duration, Capacity waitlist, Visibility, PickClub, Publish, PoolAddSlots, PoolSlotCapacity)\n- `wizard:btn:cancel` — отмена (delete draft + edit msg на «❌ Мастер отменён» + remove context)\n- `wizard:btn:back` — назад (draft.Step = previous, persist, re-render)\n- `wizard:btn:create` — финализация (вызвать `DiscordWizardSubmitter.SubmitAsync`)\n- `wizard:btn:resume:continue` — ре-рендер текущего шага draft'а\n- `wizard:btn:resume:restart` — удалить draft и запустить новый\n\n**StringSelectMenu** (`[ComponentInteraction(\"wizard:select:...\")]`):\n- `wizard:select:` — Visibility / PickClub / PoolSystemDuration\n\n**Modal** (`[ModalInteraction(\"wizard:modal:...\")]`):\n- `wizard:modal:` — Title / Description / Cover / System free-text / Duration free-text / DateTime / Capacity / PoolSlotDateTime / PoolSlotCapacity / PoolSystemDuration free-text\n\nКаждый handler:\n1. Достаёт `draft_id` из customId (формат: `wizard:btn:choice:step:value:` — посмотри `DiscordWizardStep.ButtonCustomId` для фактического формата и подгони).\n2. Загружает draft из `IWizardDraftRepository.GetByIdAsync(draftId, ct)` — если нет, ответь ephemeral «Мастер не найден».\n3. Проверяет `OwnerId == Context.User.Id.ToString()` (иначе чужая кнопка → ignore + ephemeral).\n4. Формирует `WizardInteraction` (OwnerId, Text/CallbackPayload, InteractionId).\n5. Вызывает `GameCreationWizard.HandleInteractionAsync(draft, interaction, ct)`.\n6. Если рендер вернул `openModal != null` — ответь `InteractionCallback.Modal(modalProperties)` где `modalProperties = DiscordWizardStep.BuildModal(openModal, draft)`.\n7. Иначе — пере-рендери edit и ответь `InteractionCallback.DeferredModifyMessage` (или сразу edit через messenger).\n\n**Modal handler** отличается: после `HandleInteractionAsync` нужно отредактировать сообщение на новый шаг (через `DiscordWizardMessenger.EditDraftMessageAsync`).\n\n### 2. Подключи `DiscordWizardSubmitter`\n\nВ `DiscordWizardInteractionModule`:\n- Инжектируй `DiscordWizardSubmitter` через конструктор.\n- На нажатие `wizard:btn:create`: получи draft, вызови `_submitter.SubmitAsync(draft, ct)`, обработай результат (edit msg на «✅ Создано: N сессий» или retry/cancel buttons).\n- Удали из контекст-стора после успеха.\n\n### 3. Smoke-тест (минимально, 2-3 кейса)\n\n`tests/GmRelay.Bot.Tests/Discord/DiscordWizardInteractionModuleSourceTests.cs`:\n- Проверь, что класс существует и наследует `ComponentInteractionModule`.\n- Проверь, что есть методы с атрибутами `[ComponentInteraction(\"wizard:btn:choice:...\")]` и `[ModalInteraction(\"wizard:modal:...\")]` через reflection.\n- Проверь, что customId форматы совпадают с теми, что генерит `DiscordWizardStep`.\n\nЭто не настоящие runtime-тесты, а source-level проверки. Достаточно чтобы `dotnet test` показал зелёный smoke test на эту категорию.\n\n### 4. Обнови `deliverable.md` в корне репо\n\nЗамени содержимое на summary по Discord-адаптеру:\n- Список файлов (6 старых + новый `DiscordWizardInteractionModule.cs`)\n- Какие customId форматы, какие handlers\n- «Открытые вопросы»: deferred features (например, если не успел pool-flow или не все шаги)\n- Ссылка на коммит\n\n### 5. Build + test + commit + push\n\n```\ndotnet build GM-Relay.slnx\ndotnet test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --no-build\ndotnet format --verify-no-changes\ngit add -A\ngit commit -m \"feat(discord): wire interaction handlers for wizard (issue #112)\"\ngit push origin feat/issue-112-wizard-refactor\n```\n\n## Acceptance (минимум)\n- `DiscordWizardInteractionModule.cs` существует, реализует handlers для buttons + select + modal\n- `DiscordWizardSubmitter` вызывается из `wizard:btn:create` handler'а\n- Build зелёный, все wizard-тесты + 2-3 новых smoke-теста зелёные\n- `dotnet format` без замечаний\n- deliverable.md обновлён\n- Коммит запушен\n\n## Не делай\n- Не переписывай существующие 6 файлов (если нет compile error).\n- Не пиши unit-тесты handlers с моками NetCord (используй source-level reflection как указано выше).\n- Не открывай PR (это owner work).\n- Не добавляй новые пакеты.\n- Не улучшай UX — только рабочий handler chain.\n\n## Если не хватает времени\nПриоритет (по убыванию, 30 мин cap):\n1. Только `DiscordWizardInteractionModule.cs` с handlers (≥ buttons + create + cancel) — это MUST.\n2. Wire submitter.\n3. Smoke test.\n4. Update deliverable.\n\nЕсли не успеваешь 1+2+3 — коммить то, что есть, и помечай в deliverable «открытые вопросы». Build green лучше, чем идеально завершённый код.\n\nЧитай `D:\\Projects\\Game\\CLAUDE.md` для команд.", + "assigned_to": "coder", + "verified_by": "verifier", + "verify_prompt": "Adversarial verification Discord-визарда (issue #112), retry attempt.\nНЕ перечитывай описание исполнителя — перезапускай команды и атакуй поведение.\n\n## Шаги\n\n1. `dotnet build D:\\Projects\\Game\\GM-Relay.slnx` — успех.\n2. `dotnet test D:\\Projects\\Game\\tests\\GmRelay.Bot.Tests\\GmRelay.Bot.Tests.csproj --verbosity normal` — все wizard-тесты + новые smoke-тесты на interaction module зелёные.\n3. `dotnet format --verify-no-changes --verbosity diagnostic` — без замечаний.\n4. `dotnet list package --vulnerable --include-transitive` в src/GmRelay.Bot и src/GmRelay.DiscordBot — нет HIGH/CRITICAL.\n5. `git grep \"Telegram.Bot\" D:\\Projects\\Game\\src\\GmRelay.DiscordBot/` — пусто.\n6. `git grep \"NetCord\" D:\\Projects\\Game\\src\\GmRelay.Shared/` — пусто (только doc-комменты допустимы).\n7. `git grep \"Reflection\" D:\\Projects\\Game\\src\\GmRelay.DiscordBot\\Features\\Sessions\\Wizard\\` — пусто.\n8. `DiscordWizardInteractionModule` существует в `src/GmRelay.DiscordBot/Features/Sessions/Wizard/`. Содержит handlers для `wizard:btn:*`, `wizard:select:*`, `wizard:modal:*` (через `[ComponentInteraction]` / `[ModalInteraction]`).\n9. `DiscordWizardSubmitter` вызывается из `DiscordWizardInteractionModule` (не dead code — есть явный `_submitter.SubmitAsync(...)` вызов в create-button handler).\n10. `deliverable.md` в корне репо обновлён — описывает Discord-адаптер, не Task 1.\n11. `DiscordWizardCommand` (slash `/newsession-wizard`) и `DiscordNewSessionCommand` (text `/newsession`) оба компилируются.\n12. `dotnet grep` — `GameCreationWizard` существует только в Shared.\n\n## Adversarial\n- Прочти `DiscordWizardInteractionModule.cs` целиком. Ищи: NRE на `Context.User as GuildInteractionUser`, отсутствие null-проверок, customId overflow, потеря draft_id при парсинге customId.\n- Проверь, что `wizard:btn:create` handler действительно вызывает `DiscordWizardSubmitter` (а не просто `AnswerCallback`).\n- Проверь, что `wizard:btn:cancel` handler удаляет draft И чистит `DiscordWizardContextStore`.\n- Проверь, что modal handler корректно парсит `ModalInteractionData.Components` и достаёт `TextInput` value.\n\n## Критерии FAIL\n- `DiscordWizardInteractionModule` всё ещё отсутствует или содержит только stub/empty handlers.\n- `DiscordWizardSubmitter` остаётся dead code (не вызывается нигде).\n- Любой тест красный.\n- `dotnet build` падает.\n- `dotnet format` ругается.\n- Есть vulnerable HIGH/CRITICAL.\n- Telegram.Bot в DiscordBot или NetCord в Shared (кроме doc).\n- Reflection в AOT-коде.\n- `GameCreationWizard` дублируется.\n- `/newsession` text-only сломан.\n- deliverable.md в репо не обновлён (по-прежнему описывает Task 1).\n- Коммит не запушен.\n- Серьёзные баги: NRE без null-проверки, modal handler теряет значение TextInput, create button не вызывает submitter.\n\nНа FAIL укажи конкретный файл/строку/команду и обоснование.", + "timeout_ms": 1800000 + } + ], + "plan_complete": false, + "message_to_user": "Возвращаю Discord-адаптер на доработку: главная проблема — нет interaction module (handlers кнопок/select/modal), без них wizard декоративный. Подключить submitter, добавить smoke-тесты, обновить deliverable." +} diff --git a/.mavis/plans/plan.yaml b/.mavis/plans/plan.yaml new file mode 100644 index 0000000..a636601 --- /dev/null +++ b/.mavis/plans/plan.yaml @@ -0,0 +1,517 @@ +version: 1 +plan: + name: 'Discord-визард создания игры/пула (issue #112)' + max_concurrency: 1 + max_consecutive_failures: 2 + max_cycles: 6 + verifier_config: + default_verifiers: [verifier] + audit_sample_rate: 0.0 +tasks: + - id: wizard-platform-refactor + title: 'Рефакторинг визарда под платформо-нейтральный IWizardMessenger' + prompt: | + Задача: подготовить визард создания игр (issue #112) к переиспользованию + из Discord-бота. Текущая стейт-машина Telegram-визарда завязана на + `ITelegramWizardMessenger` и `Telegram.Bot.Types`. Нужно вынести ядро в + `GmRelay.Shared`, оставив существующее Telegram-поведение работоспособным. + + ## Контекст репозитория (D:\Projects\Game) + + Ключевые файлы (прочитай их перед началом работы): + - `src/GmRelay.Bot/Features/Sessions/CreateSession/Wizard/GameCreationWizard.cs` + (504 строки) — стейт-машина визарда, сейчас принимает `Update` от + `Telegram.Bot`. + - `src/GmRelay.Bot/Features/Sessions/CreateSession/Wizard/ITelegramWizardMessenger.cs` + — 4 метода с `long chatId`/`int? messageThreadId`/`long ownerTelegramId`. + - `src/GmRelay.Bot/Features/Sessions/CreateSession/Wizard/TelegramWizardMessenger.cs` + — реализация. + - `src/GmRelay.Bot/Features/Sessions/CreateSession/Wizard/WizardStep.cs` — + рендер шагов в `InlineKeyboardMarkup` (Telegram-only). + - `src/GmRelay.Bot/Features/Sessions/CreateSession/Wizard/WizardStepNames.cs` + — имена шагов. + - `src/GmRelay.Bot/Features/Sessions/CreateSession/Wizard/WizardCallbackData.cs` + — сериализация callback data. + - `src/GmRelay.Shared/Features/Sessions/CreateSession/Wizard/WizardDraft.cs` — + `ChatId long`, `MessageThreadId int?`, `OwnerTelegramId long`, + `DraftMessageId long?`, `Step string`, `PayloadJson string`. + - `src/GmRelay.Shared/Features/Sessions/CreateSession/Wizard/IWizardDraftRepository.cs` + — платформо-нейтральный (уже в Shared). + - `src/GmRelay.Bot/Migrations/V031__add_wizard_drafts.sql` — таблица создана. + - `tests/GmRelay.Bot.Tests/Features/Sessions/CreateSession/Wizard/` — + 7 тестов: WizardStepRender, GameCreationWizardStepTransitions, + GameCreationWizardValidation, GameCreationWizardPoolSlot, + UpdateRouterDelegation, UpdateRouterResetsDraftOnStaleCommand, + WizardTestFakes (хелпер). ВСЕ должны продолжать проходить. + - `src/GmRelay.Bot/Program.cs` — DI-регистрация `IWizardDraftRepository`, + `ITelegramWizardMessenger`, `GameCreationWizard`. + + ## Что сделать + + ### 1. Платформо-нейтральный интерфейс в Shared + + Создай `src/GmRelay.Shared/Features/Sessions/CreateSession/Wizard/IWizardMessenger.cs` + с контрактом, достаточным для обеих платформ. Минимум: + ```csharp + public interface IWizardMessenger + { + // Возвращает обновлённый draft message id (string, чтобы покрыть + // и Telegram long, и Discord ulong). + Task EditDraftMessageAsync(WizardDraft draft, string text, WizardKeyboard keyboard, CancellationToken ct); + Task SendDraftMessageAsync(WizardDraft draft, string text, WizardKeyboard keyboard, CancellationToken ct); + Task AnswerInteractionAsync(string interactionId, string? text, CancellationToken ct); + Task> GetOwnerClubsAsync(string ownerId, CancellationToken ct); + } + ``` + `WizardKeyboard` — record/класс, описывающий набор рядов и кнопок + (линейный список `WizardAction` сгодится, ряды формирует адаптер при + рендере шага — на твой выбор, лишь бы был согласованно). + `WizardAction` — `(string Label, string Payload, WizardActionStyle Style)` + со стилем `Primary|Secondary|Success|Danger` (если решишь делать ряды — + добавь `Width` или подобное). + + `WizardClubOption` перенеси из `GmRelay.Bot` в `GmRelay.Shared` (record с + `Guid ClubId`, `string Name`). + + ### 2. Перенос ядра в Shared + + Перенеси в `src/GmRelay.Shared/Features/Sessions/CreateSession/Wizard/`: + - `GameCreationWizard.cs` — перепиши с `IWizardMessenger` вместо + `ITelegramWizardMessenger`. `Update`/`Message`/`CallbackQuery` замени + на платформо-нейтральный `WizardInteraction` (record с полями + `OwnerId string`, `Text string?`, `CallbackPayload string?`, + `PhotoFileId string?`, `PhotoUrl string?`, `InteractionId string`). + - `WizardStepNames.cs`, `WizardCallbackData.cs`, `WizardStorageException.cs`. + - Константы длин и лимитов (MaxTitleLength, MaxDescriptionLength и т.п.) + — перенеси в `WizardStepLimits` (статический класс) в Shared. + + Удали старые файлы из `GmRelay.Bot/Features/Sessions/CreateSession/Wizard/`, + перенеси их `using`-и. Если в Shared нужны дополнительные зависимости + (например, `Microsoft.Extensions.Logging.Abstractions`) — добавь в + `GmRelay.Shared.csproj`, проверь, что Shared по-прежнему НЕ зависит от + Telegram.Bot. + + `WizardStep.cs` (рендер в `InlineKeyboardMarkup`) ОСТАВЬ в `GmRelay.Bot` + — он Telegram-only. Аналогично создашь `DiscordWizardStep` в + `GmRelay.DiscordBot` в следующей задаче. + + ### 3. Поле platform в wizard_drafts + + Добавь миграцию `src/GmRelay.Bot/Migrations/V032__add_wizard_drafts_platform.sql`: + ```sql + ALTER TABLE wizard_drafts ADD COLUMN platform TEXT NOT NULL DEFAULT 'Telegram'; + ``` + `WizardDraft` POCO: добавь `string Platform { get; set; } = "Telegram";`. + Обнови `WizardDraftRepository` (Dapper.AOT insert/select) — должны + включать `platform`. Обнови `FakeWizardDraftRepository` в тестах. + + ### 4. Telegram-адаптер под новый контракт + + `TelegramWizardMessenger` в Bot пусть реализует `IWizardMessenger`, + конвертируя `(WizardDraft, text, keyboard)` в Telegram-вызовы и обратно. + Рендер рядов в `InlineKeyboardMarkup` — внутри адаптера или отдельным + хелпером в Bot. Сохрани существующее поведение (BackCancel, SkipBackCancel, + AppendBackCancel и т.п.). + + `CreateSessionHandler` в Bot — обнови `StartWizardAsync`, `SubmitDraftAsync` + под новый messenger-контракт. `BuildCommand` должен ставить + `Platform = "Telegram"`. + + `WizardDraftCleanupService` — без изменений, только подключи + обновлённый `IWizardDraftRepository`. + + ### 5. DI + + В `src/GmRelay.Bot/Program.cs`: + - Убери регистрацию `ITelegramWizardMessenger`, оставь + `IWizardMessenger` → `TelegramWizardMessenger`. + - Убери регистрацию `GameCreationWizard` из Bot, если он теперь в Shared + (Shared не имеет Program.cs — зарегистрируй его в Bot, конструктор + принимает `IWizardMessenger` и `IWizardDraftRepository`). + + ### 6. Тесты + + Обнови `tests/GmRelay.Bot.Tests/Features/Sessions/CreateSession/Wizard/WizardTestFakes.cs`: + - `FakeWizardMessenger` теперь реализует `IWizardMessenger`. Сигнатуры + `EditDraftMessageAsync`/`SendDraftMessageAsync` принимают `WizardKeyboard` + (или `IReadOnlyList` — что выберешь). + - `NewDraft` ставит `Platform = "Telegram"`. + - `CallbackUpdate`/`TextUpdate` — оберни в `WizardInteraction` (helper-метод). + + Цель: ВСЕ 7 существующих wizard-тестов продолжают проходить без + изменения бизнес-смысла. Если тесты завязаны на конкретные тексты + кнопок или callback-data — обнови assertions под новые форматы (но + callback-data формат `wizard:cancel`, `wizard:back`, `wizard:choice:step:value` + должен сохраниться для обратной совместимости с Telegram-флоу). + + Добавь `WizardInteractionMapperTests` (минимум 3 кейса): конвертация + `Update` → `WizardInteraction` для callback/text/photo. + + ## Acceptance + + - `dotnet build` всего решения успешен. + - `dotnet test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --verbosity normal` + — все тесты зелёные. + - `dotnet format --verify-no-changes` — без замечаний. + - `git grep "Telegram.Bot" src/GmRelay.Shared/` — пусто. + - `git grep "NetCord" src/GmRelay.Bot/` — пусто. + - `GameCreationWizard` существует ровно в одном месте — в Shared. + - `IWizardMessenger` живёт в Shared, `ITelegramWizardMessenger` удалён + (или стал internal алиасом, если проще мигрировать). + + ## Не делай + + - Не реализуй Discord-адаптер в этой задаче — это Task 2. + - Не дублируй логику стейт-машины в Bot и Shared. + - Не используй reflection. + - Не ломай callback-data формат без migration-плана. + + ## Куда коммитить + + Создай ветку `feat/issue-112-wizard-refactor`. Запиши в + `deliverable.md` (корень репо) сводку: какие файлы созданы/изменены, + какие тесты прошли, ссылка на ветку/PR. + + Читай `D:\Projects\Game\CLAUDE.md` для команд сборки и тестов. + assigned_to: coder + verified_by: verifier + verify_prompt: | + Adversarial verification рефакторинга визарда под платформо-нейтральный + контракт. НЕ перечитывай описание исполнителя — перезапускай команды + и атакуй поведение. + + ## Шаги + + 1. `dotnet build D:\Projects\Game\GM-Relay.slnx` — должно собраться. + 2. `dotnet test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --verbosity normal` + — ВСЕ тесты зелёные, особенно 7 wizard-тестов: + `GameCreationWizardStepTransitions`, + `GameCreationWizardValidation`, + `GameCreationWizardPoolSlot`, + `UpdateRouterDelegation`, + `UpdateRouterResetsDraftOnStaleCommand`, + `WizardStepRender`. + 3. `dotnet format --verify-no-changes --verbosity diagnostic` в + `D:\Projects\Game` — без замечаний. + 4. `dotnet list package --vulnerable --include-transitive` в + `D:\Projects\Game\src\GmRelay.Bot` и + `D:\Projects\Game\src\GmRelay.DiscordBot` — нет HIGH/CRITICAL. + 5. `git grep -n "Telegram.Bot" D:\Projects\Game\src\GmRelay.Shared/` + — должно быть пусто. + 6. `git grep -n "NetCord" D:\Projects\Game\src\GmRelay.Bot/` + — должно быть пусто. + 7. `git grep -n "GameCreationWizard" D:\Projects\Game\src\` + — `GameCreationWizard.cs` должен существовать РОВНО в одном месте + (в `GmRelay.Shared`). + 8. `git grep -n "IWizardMessenger" D:\Projects\Game\src\` + — интерфейс должен быть в `GmRelay.Shared`, а НЕ в Bot. + 9. `git grep -n "ITelegramWizardMessenger" D:\Projects\Game\src\` + — должен быть удалён или заменён на алиас; НЕ должен быть + активным контрактом, на который завязан `GameCreationWizard`. + 10. Проверь наличие миграции + `D:\Projects\Game\src\GmRelay.Bot\Migrations\V032__add_wizard_drafts_platform.sql`. + 11. `git grep -n "Reflection" D:\Projects\Game\src\GmRelay.Shared/` + — не должно быть reflection-based логики. + 12. Прочти `deliverable.md` в корне репо — сводка должна быть. + + ## Критерии FAIL + + - Любой тест красный. + - `dotnet build` падает. + - `dotnet format` ругается. + - Есть vulnerable HIGH/CRITICAL пакеты. + - Shared зависит от Telegram.Bot. + - Bot зависит от NetCord. + - `GameCreationWizard` дублируется в Bot и Shared. + - `IWizardMessenger` не в Shared. + - Существующая text-only `/newsession` Telegram-команда сломана + (запусти бот хотя бы на синтаксис — собери, посмотри, что + `CreateSessionHandler.StartWizardAsync`/`SubmitDraftAsync` + компилируются). + - Reflection в AOT-критичном коде. + - deliverable.md отсутствует. + - Ветка/PR не созданы. + + На FAIL укажи конкретный файл/строку/команду. НЕ просто «кажется, + сломалось» — точные доказательства. + timeout_ms: 1800000 + + - id: discord-wizard-impl + title: 'Discord-адаптер визарда: slash-команда, кнопки, модалы, select-меню' + prompt: | + Задача: реализовать Discord-визард создания игры/пула игр (issue #112) + в проекте `src/GmRelay.DiscordBot/`. Переиспользовать общую стейт-машину + `GameCreationWizard` и `IWizardMessenger` из Shared (Task 1 уже подготовил + контракт). Discord-бот использует NetCord; AOT-friendly код (без + reflection, без динамической загрузки). + + ## Контекст + + Что уже готово (Task 1): + - `GmRelay.Shared/Features/Sessions/CreateSession/Wizard/IWizardMessenger.cs` + - `GmRelay.Shared/Features/Sessions/CreateSession/Wizard/GameCreationWizard.cs` + - `GmRelay.Shared/Features/Sessions/CreateSession/Wizard/WizardStepNames.cs` + - `GmRelay.Shared/Features/Sessions/CreateSession/Wizard/WizardKeyboard.cs` / + `WizardAction.cs` — как ты их назвал в Task 1. + - Миграция V032 с колонкой `platform`. + - Существующие wizard-тесты зелёные. + + Discord-проект (`src/GmRelay.DiscordBot/`): + - Использует NetCord, в Program.cs: + `AddApplicationCommands()` + и `AddComponentInteractions()`. + - Содержит `DiscordNewSessionCommand` (text-only `/newsession`), + `DiscordNewSessionHandler`, `DiscordSessionInteractionModule` + с кнопками `[ComponentInteraction("join_session:...")]`. + - Содержит `DiscordPermissionChecker` (owner/co-GM) и + `DiscordPlatformMessenger` (для IPlatformMessenger). + - Использует `NpgsqlDataSource` (БД общая с Bot). + + ## Что сделать + + ### 1. DiscordWizardMessenger (реализация IWizardMessenger) + + `src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordWizardMessenger.cs`: + - `EditDraftMessageAsync` — редактирует embed, в котором `draft_id` + зашит в footer или в customId кнопок. Если 15-минутный interaction + token истёк — пересоздаёт сообщение в исходном канале, возвращает + новый `messageId`. + - `SendDraftMessageAsync` — отправляет embed с кнопками. + - `AnswerInteractionAsync` — отвечает на interaction (ephemeral при + необходимости). Для длительных операций — defer+followup. + - `GetOwnerClubsAsync` — SQL-запрос через Dapper.AOT: + ```sql + SELECT cm.club_id, c.name + FROM club_memberships cm + JOIN clubs c ON c.id = cm.club_id + JOIN players p ON p.id = cm.player_id + WHERE p.platform = 'Discord' + AND p.external_user_id = @OwnerId + AND cm.role IN ('Owner', 'CoGm') + ``` + Поля классы — в существующей схеме (посмотри V030 миграцию). + Owner/co-GM права — в `club_memberships.role`. + + Контекст для отправки/редактирования нужно где-то хранить между + вызовами. Сделай in-memory кэш `DiscordWizardContextStore`: + - Ключ — `draft.Id` (Guid). + - Значение — `DiscordWizardContext(guildId, channelId, messageId, + threadId?, lastInteractionToken)`. + - При `SendDraftMessageAsync` / `EditDraftMessageAsync` обновляется. + - На cancel / confirm — удаляется. + + ### 2. DiscordWizardStep (рендер шагов) + + `src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordWizardStep.cs`: + - Метод `Render(WizardDraft draft, WizardPayload payload, IReadOnlyList clubs) → (string text, WizardKeyboard keyboard, string? openModal)`. + - Поле `openModal` — имя шага, для которого нужно открыть модал + (`Title`, `Description`, `SystemFreeText`, `DurationFreeText`, + `DateTime`, `Capacity`, `PoolSlotDateTime`, `PoolSlotCapacity`, + `PoolSystemDurationFreeText`). Если null — просто рендерим embed + + кнопки. + - Каждый шаг использует emoji-метки из Telegram-версии (🎲 📅 ⏱ и т.п.), + но текст короче (Discord embed description 4096 символов). + - CustomId формат: `wizard:btn::` (кнопки), + `wizard:select:` (select menu, value в values[]), + `wizard:modal:` (модалы). Длина customId <= 100 символов. + + Конкретные шаги: + - `Type` — 2 кнопки single/pool + Cancel. + - `Title` / `Description` / `Cover` — modal (Text Input, Short/Paragraph). + `Cover` дополнительно принимает URL (Text Input, Short). + - `System` — buttons (Dnd5e/Pathfinder2e/CallOfCthulhu7e/GURPS/Fate) + + "Другое…" (modal) + "Пропустить" (button). + - `Duration` — buttons (3ч/4ч/5ч/6ч) + "Другое…" (modal) + "Пропустить". + - `DateTime` — modal с placeholder "ДД.ММ.ГГГГ ЧЧ:ММ". + - `Capacity` — modal "Max players" + 2 кнопки waitlist on/off. + - `Visibility` — StringSelectMenu (Public/Club/Members) + Back/Cancel. + - `PickClub` — StringSelectMenu со списком клубов (max 25 опций). + - `Publish` — 2 кнопки yes/no. + - `Confirm` — preview-embed + 3 кнопки Create/Back/Cancel. + - `PoolSystemDuration` — StringSelectMenu (Dnd5e:240, Pathfinder2e:240, + CallOfCthulhu7e:180, GURPS:240) + "Custom" (modal) + Back/Cancel. + - `PoolAddSlots` — 2 кнопки add/done + счётчик слотов в embed. + - `PoolSlotDateTime` — modal. + - `PoolSlotCapacity` — modal "Max players" + 2 кнопки waitlist. + - `PoolConfirm` — preview-embed пула + 3 кнопки. + + ### 3. Slash-команда + + `src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordWizardCommand.cs`: + - `[SlashCommand("newsession-wizard", "Пошаговое создание игры или пула")]` + - Опциональный параметр `mode` (`single` / `pool`) для пропуска первого шага. + - Проверка owner/co-GM прав через `DiscordPermissionChecker`. + - Проверка существующего активного draft'а + (`IWizardDraftRepository.GetActiveAsync`); если есть — показать + ephemeral с кнопками Continue/Start over/Cancel. + - Если нет — создать draft (`Platform = "Discord"`, `Step = "Type"`), + отправить первое сообщение через `DiscordWizardMessenger`, + сохранить `DraftMessageId` (строкой). + + ### 4. Interaction handlers + + `src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordWizardInteractionModule.cs`: + - `[ComponentInteraction("wizard:btn:choice:*:*")]` + — кнопки-выборы (Type, System, Duration, Capacity waitlist, + Visibility, PickClub, Publish, PoolAddSlots, PoolSlotCapacity, + Confirm, Back, Cancel). Парсит `step` и `value` из customId. + - `[ComponentInteraction("wizard:btn:cancel")]`, + `[ComponentInteraction("wizard:btn:back")]`, + `[ComponentInteraction("wizard:btn:create")]` — отдельные (если + customId не разбит на части, или разбит по другому). + - `[ComponentInteraction("wizard:select:*:*")]` + — StringSelectMenu (Visibility, PickClub, PoolSystemDuration). + Парсит `step` и `value` из values[]. + - `[ModalInteraction("wizard:modal:*")]` + — модалы. Парсит `step` из customId, поля из ModalInteractionData. + Преобразует в `WizardInteraction` (Text = value) и вызывает + `GameCreationWizard.HandleUpdateAsync`. + + Каждый обработчик: + 1. Достаёт `draft_id` из customId (или из data store). + 2. Загружает draft из `IWizardDraftRepository`. + 3. Формирует `WizardInteraction` (OwnerId, Text/CallbackPayload, + InteractionId). + 4. Вызывает `GameCreationWizard.HandleUpdateAsync(draft, interaction, ct)`. + 5. На ошибке валидации — перерендерить шаг с ⚠️ префиксом. + 6. На cancel — отредактировать сообщение на "❌ Мастер отменён", + удалить draft из кэша. + 7. На confirm (create) — вызвать финализацию (см. п. 5). + + ### 5. Финализация (Submit) + + Сделай `DiscordWizardSubmitter` (или метод в `DiscordWizardInteractionModule`): + - Загружает `WizardPayload` из `draft.PayloadJson`. + - Валидирует полноту (заголовок, система, длительность, видимость; + для single — дата/лимит; для pool — >=1 слот). + - Строит `CreateSessionCommand` (платформо-нейтральный) и вызывает + `GmRelay.Shared.Features.Sessions.CreateSession.CreateSessionHandler.HandleAsync`. + - На успехе — отредактировать wizard-сообщение на "✅ Создано: N сессий", + удалить draft. + - На ошибке — показать retry/cancel кнопки (retry = повтор Submit). + + ### 6. DI + + В `src/GmRelay.DiscordBot/Program.cs`: + - Зарегистрируй `IWizardDraftRepository` (общий; если реализация в + Bot — продублируй в DiscordBot, чтобы не таскать сборку Bot). + Dapper.AOT-атрибуты уже работают в обоих проектах. + - Зарегистрируй `IWizardMessenger` → `DiscordWizardMessenger` + (Singleton, конструктор принимает Discord client и кэш). + - Зарегистрируй `GameCreationWizard` (Singleton, берёт + `IWizardDraftRepository` + `IWizardMessenger`). + - Зарегистрируй `DiscordWizardContextStore`, `DiscordWizardSubmitter`. + - Не сломай существующие регистрации (DiscordNewSessionCommand, + DiscordSessionInteractionModule, DiscordPlatformMessenger и т.д.). + + ### 7. Тесты + + Добавь в `tests/GmRelay.Bot.Tests/Discord/`: + - `DiscordWizardMessengerTests` — fake `INetCordClient` / context; + проверка edit/send/answer. Используй ручные fakes (без Moq) — + проект convention. + - `DiscordWizardStepTests` — для каждого шага: правильный набор + actions (label/payload/style), правильный customId, корректный + `openModal` флаг. + - `DiscordWizardSubmitterTests` — happy path (single + pool), + missing fields, DB error → retry flow. + + Если не получается замокать NetCord (он registration-based) — + вынеси `DiscordWizardContextStore` в отдельный класс с + интерфейсом `IWizardContextStore`, тестируй через fake store, + а сам submitter / messenger — через интеграционный тест с реальным + контекстом (минимум: проверка формата customId, генерации embed). + + ## Acceptance + + - `dotnet build` решения успешен. + - `dotnet test` — все wizard-тесты + Discord-тесты зелёные. + - `dotnet format --verify-no-changes` — без замечаний. + - `git grep "Telegram.Bot" src/GmRelay.DiscordBot/` — пусто. + - `git grep "NetCord" src/GmRelay.Shared/` — пусто. + - Существующая команда `/newsession` (text-only) работает. + - Новая команда `/newsession-wizard` доступна в Discord. + - Стейт-машина одна — в Shared. + + ## Не делай + + - Не дублируй логику `GameCreationWizard`. + - Не используй reflection. + - Не ломай callback-data формат, если он уже согласован с Telegram. + - Не пиши большие markdown в embed (лимит 4096, плюс нужен запас). + + ## Куда коммитить + + Допиши в ту же ветку `feat/issue-112-wizard-refactor` (или создай + `feat/issue-112-discord-wizard` поверх, если refactor ещё не в main). + Запиши в `deliverable.md` сводку: какие файлы, какие тесты добавлены, + PR-ссылка. Пометь отдельно «открытые вопросы» (если есть). + + Читай `D:\Projects\Game\CLAUDE.md` для команд. + assigned_to: coder + depends_on: [wizard-platform-refactor] + verified_by: verifier + verify_prompt: | + Adversarial verification Discord-визарда (issue #112). НЕ перечитывай + описание исполнителя — перезапускай команды и атакуй поведение. + + ## Шаги + + 1. `dotnet build D:\Projects\Game\GM-Relay.slnx` — успех. + 2. `dotnet test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --verbosity normal` + — все wizard-тесты + новые Discord-тесты зелёные. + 3. `dotnet format --verify-no-changes --verbosity diagnostic` — + без замечаний. + 4. `dotnet list package --vulnerable --include-transitive` в + `src/GmRelay.Bot` и `src/GmRelay.DiscordBot` — нет HIGH/CRITICAL. + 5. `git grep "Telegram.Bot" D:\Projects\Game\src\GmRelay.DiscordBot/` + — пусто. + 6. `git grep "NetCord" D:\Projects\Game\src\GmRelay.Shared/` + — пусто. + 7. `git grep "Reflection" D:\Projects\Game\src\GmRelay.DiscordBot/Features/Sessions/Wizard/` + — пусто (AOT-safe). + 8. `git grep "GameCreationWizard" D:\Projects\Game\src\` — + существует ровно в `GmRelay.Shared/Features/Sessions/CreateSession/Wizard/`, + адаптеры ссылаются через `using`. + 9. `git grep "DiscordWizardMessenger"` — реализует `IWizardMessenger`. + 10. CustomId формат: `git grep "wizard:btn:" D:\Projects\Game\src\GmRelay.DiscordBot/` + и `git grep "wizard:select:"`, `wizard:modal:` — должны быть + использованы последовательно; длина customId не превышает + 100 символов нигде. + 11. `DiscordWizardCommand` — slash-команда `/newsession-wizard` + (или эквивалент) с проверкой owner/co-GM. + 12. `DiscordWizardInteractionModule` — обработчики кнопок, + select-меню, модалов. + 13. `DiscordNewSessionCommand` (text-only `/newsession`) — компилируется + и зарегистрирована (не сломана). + 14. `deliverable.md` в корне репо — сводка + ссылка на PR/ветку. + + ## Adversarial прогоны (опционально, но желательно) + + - Запусти `dotnet build src/GmRelay.DiscordBot/GmRelay.DiscordBot.csproj --no-restore` + и проверь warning list. + - Прочти 1-2 самых больших новых файла (DiscordWizardMessenger, + DiscordWizardInteractionModule) и найди потенциальные баги: + * Возможен NRE при `Context.User as GuildInteractionUser is null`? + * CustomId overflow (>100)? + * Modal interaction с истёкшим token — корректно ли? + * `GetOwnerClubsAsync` фильтрует по роли Owner/CoGm? + * Кэш контекста чистится на cancel? + + ## Критерии FAIL + + - Любой тест красный. + - `dotnet build` падает. + - `dotnet format` ругается. + - Есть vulnerable HIGH/CRITICAL. + - Telegram.Bot в DiscordBot или NetCord в Shared. + - Reflection в AOT-критичном коде. + - `GameCreationWizard` дублируется. + - CustomId > 100 символов где-либо. + - `/newsession` text-only сломан. + - deliverable.md отсутствует или PR не открыт. + - В одном из файлов найдены серьёзные архитектурные косяки + (например, `Context.User as GuildInteractionUser` без null-проверки). + + На FAIL укажи конкретный файл/строку/команду и обоснование. + timeout_ms: 1800000 diff --git a/.opencode/tmp/.99fe57bfcf379f98-00000000.dll b/.opencode/tmp/.99fe57bfcf379f98-00000000.dll new file mode 100644 index 0000000..50c0ac9 Binary files /dev/null and b/.opencode/tmp/.99fe57bfcf379f98-00000000.dll differ diff --git a/.opencode/tmp/.99fe738fcf77bf58-00000000.dll b/.opencode/tmp/.99fe738fcf77bf58-00000000.dll new file mode 100644 index 0000000..50c0ac9 Binary files /dev/null and b/.opencode/tmp/.99fe738fcf77bf58-00000000.dll differ diff --git a/.opencode/tmp/.99fe73af9ff68ff8-00000000.dll b/.opencode/tmp/.99fe73af9ff68ff8-00000000.dll new file mode 100644 index 0000000..50c0ac9 Binary files /dev/null and b/.opencode/tmp/.99fe73af9ff68ff8-00000000.dll differ diff --git a/.opencode/tmp/.99fe73ffef77cf90-00000000.dll b/.opencode/tmp/.99fe73ffef77cf90-00000000.dll new file mode 100644 index 0000000..50c0ac9 Binary files /dev/null and b/.opencode/tmp/.99fe73ffef77cf90-00000000.dll differ diff --git a/.opencode/tmp/.99fe779fd7fd8f7c-00000000.dll b/.opencode/tmp/.99fe779fd7fd8f7c-00000000.dll new file mode 100644 index 0000000..50c0ac9 Binary files /dev/null and b/.opencode/tmp/.99fe779fd7fd8f7c-00000000.dll differ diff --git a/.opencode/tmp/.99fe77bf97fdef34-00000000.dll b/.opencode/tmp/.99fe77bf97fdef34-00000000.dll new file mode 100644 index 0000000..50c0ac9 Binary files /dev/null and b/.opencode/tmp/.99fe77bf97fdef34-00000000.dll differ diff --git a/.opencode/tmp/.99fe7bb7b5b6cfcc-00000000.dll b/.opencode/tmp/.99fe7bb7b5b6cfcc-00000000.dll new file mode 100644 index 0000000..50c0ac9 Binary files /dev/null and b/.opencode/tmp/.99fe7bb7b5b6cfcc-00000000.dll differ diff --git a/.opencode/tmp/.99fe7bd7affc9fe4-00000000.dll b/.opencode/tmp/.99fe7bd7affc9fe4-00000000.dll new file mode 100644 index 0000000..50c0ac9 Binary files /dev/null and b/.opencode/tmp/.99fe7bd7affc9fe4-00000000.dll differ diff --git a/.opencode/tmp/.99fe7bd7cffeffd8-00000000.dll b/.opencode/tmp/.99fe7bd7cffeffd8-00000000.dll new file mode 100644 index 0000000..50c0ac9 Binary files /dev/null and b/.opencode/tmp/.99fe7bd7cffeffd8-00000000.dll differ diff --git a/.opencode/tmp/.99fe7bef8777bf34-00000000.dll b/.opencode/tmp/.99fe7bef8777bf34-00000000.dll new file mode 100644 index 0000000..50c0ac9 Binary files /dev/null and b/.opencode/tmp/.99fe7bef8777bf34-00000000.dll differ diff --git a/.opencode/tmp/.feb7bfcf5f07ffea-00000001.node b/.opencode/tmp/.feb7bfcf5f07ffea-00000001.node new file mode 100644 index 0000000..3264889 Binary files /dev/null and b/.opencode/tmp/.feb7bfcf5f07ffea-00000001.node differ diff --git a/.opencode/tmp/.feb7bfd31b2ff7fa-00000001.node b/.opencode/tmp/.feb7bfd31b2ff7fa-00000001.node new file mode 100644 index 0000000..3264889 Binary files /dev/null and b/.opencode/tmp/.feb7bfd31b2ff7fa-00000001.node differ diff --git a/.opencode/tmp/.feb7bfd37f2fe7fe-00000001.node b/.opencode/tmp/.feb7bfd37f2fe7fe-00000001.node new file mode 100644 index 0000000..3264889 Binary files /dev/null and b/.opencode/tmp/.feb7bfd37f2fe7fe-00000001.node differ diff --git a/.opencode/tmp/.feb7bfdb9bb7e7ea-00000001.node b/.opencode/tmp/.feb7bfdb9bb7e7ea-00000001.node new file mode 100644 index 0000000..3264889 Binary files /dev/null and b/.opencode/tmp/.feb7bfdb9bb7e7ea-00000001.node differ diff --git a/.opencode/tmp/.feb7bfef5b0fefea-00000001.node b/.opencode/tmp/.feb7bfef5b0fefea-00000001.node new file mode 100644 index 0000000..3264889 Binary files /dev/null and b/.opencode/tmp/.feb7bfef5b0fefea-00000001.node differ diff --git a/.opencode/tmp/.feb7bfef5f37efea-00000001.node b/.opencode/tmp/.feb7bfef5f37efea-00000001.node new file mode 100644 index 0000000..3264889 Binary files /dev/null and b/.opencode/tmp/.feb7bfef5f37efea-00000001.node differ diff --git a/.opencode/tmp/.feb7bff7fb9ffffa-00000001.node b/.opencode/tmp/.feb7bff7fb9ffffa-00000001.node new file mode 100644 index 0000000..3264889 Binary files /dev/null and b/.opencode/tmp/.feb7bff7fb9ffffa-00000001.node differ diff --git a/.opencode/tmp/.feb7bffb3fa7ffea-00000001.node b/.opencode/tmp/.feb7bffb3fa7ffea-00000001.node new file mode 100644 index 0000000..3264889 Binary files /dev/null and b/.opencode/tmp/.feb7bffb3fa7ffea-00000001.node differ diff --git a/.opencode/tmp/.feb7bffb5b9ff7fa-00000001.node b/.opencode/tmp/.feb7bffb5b9ff7fa-00000001.node new file mode 100644 index 0000000..3264889 Binary files /dev/null and b/.opencode/tmp/.feb7bffb5b9ff7fa-00000001.node differ diff --git a/.opencode/tmp/.feb7effb1fb7ffea-00000001.node b/.opencode/tmp/.feb7effb1fb7ffea-00000001.node new file mode 100644 index 0000000..3264889 Binary files /dev/null and b/.opencode/tmp/.feb7effb1fb7ffea-00000001.node differ diff --git a/.opencode/tmp/Microsoft.NET.Workload_10164_20260605_175521_292.log b/.opencode/tmp/Microsoft.NET.Workload_10164_20260605_175521_292.log new file mode 100644 index 0000000..56f67cb --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_10164_20260605_175521_292.log @@ -0,0 +1,14 @@ +[2026-06-05 17:55:21.294] [000027B4] === Logging started === +[2026-06-05 17:55:21.299] [000027B4] Executing: "C:\Program Files\dotnet\dotnet.exe" build D:\Projects\Game\GM-Relay.slnx, PID: 10164, PPID: 19000 +[2026-06-05 17:55:21.301] [000027B4] IsElevated: False +[2026-06-05 17:55:21.301] [000027B4] Is64BitProcess: True +[2026-06-05 17:55:21.301] [000027B4] RebootPending: True +[2026-06-05 17:55:21.301] [000027B4] ProcessorArchitecture: amd64 +[2026-06-05 17:55:21.301] [000027B4] HostArchitecture: x64 +[2026-06-05 17:55:21.301] [000027B4] SdkDirectory: 10.0.201 +[2026-06-05 17:55:21.301] [000027B4] VerifySignatures: False +[2026-06-05 17:55:21.301] [000027B4] SDK feature band: 10.0.200 +[2026-06-05 17:55:32.158] [000027B4] Shutting down +[2026-06-05 17:55:32.158] [000027B4] Shutdown completed. +[2026-06-05 17:55:32.158] [000027B4] Restart required: False +[2026-06-05 17:55:32.159] [000027B4] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_10168_20260605_165953_709.log b/.opencode/tmp/Microsoft.NET.Workload_10168_20260605_165953_709.log new file mode 100644 index 0000000..bfa5b76 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_10168_20260605_165953_709.log @@ -0,0 +1,14 @@ +[2026-06-05 16:59:53.712] [000027B8] === Logging started === +[2026-06-05 16:59:53.720] [000027B8] Executing: "C:\Program Files\dotnet\dotnet.exe" run --project C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj -- C:\Users\hegin\.nuget\packages\netcord\1.0.0-alpha.489\lib\net10.0\NetCord.dll, PID: 10168, PPID: 41652 +[2026-06-05 16:59:53.721] [000027B8] IsElevated: False +[2026-06-05 16:59:53.721] [000027B8] Is64BitProcess: True +[2026-06-05 16:59:53.721] [000027B8] RebootPending: True +[2026-06-05 16:59:53.721] [000027B8] ProcessorArchitecture: amd64 +[2026-06-05 16:59:53.721] [000027B8] HostArchitecture: x64 +[2026-06-05 16:59:53.721] [000027B8] SdkDirectory: 10.0.201 +[2026-06-05 16:59:53.721] [000027B8] VerifySignatures: False +[2026-06-05 16:59:53.721] [000027B8] SDK feature band: 10.0.200 +[2026-06-05 16:59:55.991] [000027B8] Shutting down +[2026-06-05 16:59:55.992] [000027B8] Shutdown completed. +[2026-06-05 16:59:55.992] [000027B8] Restart required: False +[2026-06-05 16:59:55.993] [000027B8] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_11000_20260605_170700_609.log b/.opencode/tmp/Microsoft.NET.Workload_11000_20260605_170700_609.log new file mode 100644 index 0000000..81845d7 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_11000_20260605_170700_609.log @@ -0,0 +1,14 @@ +[2026-06-05 17:07:00.610] [00002AF8] === Logging started === +[2026-06-05 17:07:00.616] [00002AF8] Executing: "C:\Program Files\dotnet\dotnet.exe" run --project C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 11000, PPID: 23124 +[2026-06-05 17:07:00.617] [00002AF8] IsElevated: False +[2026-06-05 17:07:00.617] [00002AF8] Is64BitProcess: True +[2026-06-05 17:07:00.617] [00002AF8] RebootPending: True +[2026-06-05 17:07:00.617] [00002AF8] ProcessorArchitecture: amd64 +[2026-06-05 17:07:00.617] [00002AF8] HostArchitecture: x64 +[2026-06-05 17:07:00.617] [00002AF8] SdkDirectory: 10.0.201 +[2026-06-05 17:07:00.617] [00002AF8] VerifySignatures: False +[2026-06-05 17:07:00.617] [00002AF8] SDK feature band: 10.0.200 +[2026-06-05 17:07:02.193] [00002AF8] Shutting down +[2026-06-05 17:07:02.193] [00002AF8] Shutdown completed. +[2026-06-05 17:07:02.193] [00002AF8] Restart required: False +[2026-06-05 17:07:02.193] [00002AF8] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_11372_20260605_170856_851.log b/.opencode/tmp/Microsoft.NET.Workload_11372_20260605_170856_851.log new file mode 100644 index 0000000..28ee556 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_11372_20260605_170856_851.log @@ -0,0 +1,14 @@ +[2026-06-05 17:08:56.853] [00002C6C] === Logging started === +[2026-06-05 17:08:56.858] [00002C6C] Executing: "C:\Program Files\dotnet\dotnet.exe" build C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 11372, PPID: 1704 +[2026-06-05 17:08:56.860] [00002C6C] IsElevated: False +[2026-06-05 17:08:56.860] [00002C6C] Is64BitProcess: True +[2026-06-05 17:08:56.860] [00002C6C] RebootPending: True +[2026-06-05 17:08:56.860] [00002C6C] ProcessorArchitecture: amd64 +[2026-06-05 17:08:56.860] [00002C6C] HostArchitecture: x64 +[2026-06-05 17:08:56.860] [00002C6C] SdkDirectory: 10.0.201 +[2026-06-05 17:08:56.860] [00002C6C] VerifySignatures: False +[2026-06-05 17:08:56.860] [00002C6C] SDK feature band: 10.0.200 +[2026-06-05 17:08:57.911] [00002C6C] Shutting down +[2026-06-05 17:08:57.911] [00002C6C] Shutdown completed. +[2026-06-05 17:08:57.911] [00002C6C] Restart required: False +[2026-06-05 17:08:57.911] [00002C6C] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_11484_20260605_161200_773.log b/.opencode/tmp/Microsoft.NET.Workload_11484_20260605_161200_773.log new file mode 100644 index 0000000..3bd9304 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_11484_20260605_161200_773.log @@ -0,0 +1,14 @@ +[2026-06-05 16:12:00.775] [00002CDC] === Logging started === +[2026-06-05 16:12:00.780] [00002CDC] Executing: "C:\Program Files\dotnet\dotnet.exe" build src/GmRelay.Bot/GmRelay.Bot.csproj --no-restore, PID: 11484, PPID: 40540 +[2026-06-05 16:12:00.782] [00002CDC] IsElevated: False +[2026-06-05 16:12:00.782] [00002CDC] Is64BitProcess: True +[2026-06-05 16:12:00.782] [00002CDC] RebootPending: False +[2026-06-05 16:12:00.782] [00002CDC] ProcessorArchitecture: amd64 +[2026-06-05 16:12:00.782] [00002CDC] HostArchitecture: x64 +[2026-06-05 16:12:00.782] [00002CDC] SdkDirectory: 10.0.201 +[2026-06-05 16:12:00.782] [00002CDC] VerifySignatures: False +[2026-06-05 16:12:00.782] [00002CDC] SDK feature band: 10.0.200 +[2026-06-05 16:12:08.702] [00002CDC] Shutting down +[2026-06-05 16:12:08.703] [00002CDC] Shutdown completed. +[2026-06-05 16:12:08.703] [00002CDC] Restart required: False +[2026-06-05 16:12:08.703] [00002CDC] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_1172_20260605_183449_423.log b/.opencode/tmp/Microsoft.NET.Workload_1172_20260605_183449_423.log new file mode 100644 index 0000000..bcc28e2 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_1172_20260605_183449_423.log @@ -0,0 +1,14 @@ +[2026-06-05 18:34:49.425] [00000494] === Logging started === +[2026-06-05 18:34:49.431] [00000494] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --verbosity normal, PID: 1172, PPID: 13264 +[2026-06-05 18:34:49.433] [00000494] IsElevated: False +[2026-06-05 18:34:49.433] [00000494] Is64BitProcess: True +[2026-06-05 18:34:49.433] [00000494] RebootPending: True +[2026-06-05 18:34:49.433] [00000494] ProcessorArchitecture: amd64 +[2026-06-05 18:34:49.433] [00000494] HostArchitecture: x64 +[2026-06-05 18:34:49.433] [00000494] SdkDirectory: 10.0.201 +[2026-06-05 18:34:49.433] [00000494] VerifySignatures: False +[2026-06-05 18:34:49.433] [00000494] SDK feature band: 10.0.200 +[2026-06-05 18:35:11.204] [00000494] Shutting down +[2026-06-05 18:35:11.204] [00000494] Shutdown completed. +[2026-06-05 18:35:11.204] [00000494] Restart required: False +[2026-06-05 18:35:11.204] [00000494] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_11824_20260605_162608_228.log b/.opencode/tmp/Microsoft.NET.Workload_11824_20260605_162608_228.log new file mode 100644 index 0000000..d505b6c --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_11824_20260605_162608_228.log @@ -0,0 +1,14 @@ +[2026-06-05 16:26:08.231] [00002E30] === Logging started === +[2026-06-05 16:26:08.236] [00002E30] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --verbosity normal, PID: 11824, PPID: 33224 +[2026-06-05 16:26:08.238] [00002E30] IsElevated: False +[2026-06-05 16:26:08.238] [00002E30] Is64BitProcess: True +[2026-06-05 16:26:08.238] [00002E30] RebootPending: False +[2026-06-05 16:26:08.238] [00002E30] ProcessorArchitecture: amd64 +[2026-06-05 16:26:08.238] [00002E30] HostArchitecture: x64 +[2026-06-05 16:26:08.238] [00002E30] SdkDirectory: 10.0.201 +[2026-06-05 16:26:08.238] [00002E30] VerifySignatures: False +[2026-06-05 16:26:08.238] [00002E30] SDK feature band: 10.0.200 +[2026-06-05 16:26:32.400] [00002E30] Shutting down +[2026-06-05 16:26:32.400] [00002E30] Shutdown completed. +[2026-06-05 16:26:32.400] [00002E30] Restart required: False +[2026-06-05 16:26:32.401] [00002E30] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_12020_20260605_162709_148.log b/.opencode/tmp/Microsoft.NET.Workload_12020_20260605_162709_148.log new file mode 100644 index 0000000..639d36f --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_12020_20260605_162709_148.log @@ -0,0 +1,14 @@ +[2026-06-05 16:27:09.150] [00002EF4] === Logging started === +[2026-06-05 16:27:09.155] [00002EF4] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --verbosity normal, PID: 12020, PPID: 21092 +[2026-06-05 16:27:09.157] [00002EF4] IsElevated: False +[2026-06-05 16:27:09.157] [00002EF4] Is64BitProcess: True +[2026-06-05 16:27:09.157] [00002EF4] RebootPending: False +[2026-06-05 16:27:09.157] [00002EF4] ProcessorArchitecture: amd64 +[2026-06-05 16:27:09.157] [00002EF4] HostArchitecture: x64 +[2026-06-05 16:27:09.157] [00002EF4] SdkDirectory: 10.0.201 +[2026-06-05 16:27:09.157] [00002EF4] VerifySignatures: False +[2026-06-05 16:27:09.157] [00002EF4] SDK feature band: 10.0.200 +[2026-06-05 16:27:31.125] [00002EF4] Shutting down +[2026-06-05 16:27:31.126] [00002EF4] Shutdown completed. +[2026-06-05 16:27:31.126] [00002EF4] Restart required: False +[2026-06-05 16:27:31.126] [00002EF4] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_12208_20260605_170516_662.log b/.opencode/tmp/Microsoft.NET.Workload_12208_20260605_170516_662.log new file mode 100644 index 0000000..75a5b0a --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_12208_20260605_170516_662.log @@ -0,0 +1,14 @@ +[2026-06-05 17:05:16.664] [00002FB0] === Logging started === +[2026-06-05 17:05:16.669] [00002FB0] Executing: "C:\Program Files\dotnet\dotnet.exe" run --project C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj -- C:\Users\hegin\.nuget\packages\netcord.hosting\1.0.0-alpha.489\lib\net10.0\NetCord.Hosting.dll, PID: 12208, PPID: 51792 +[2026-06-05 17:05:16.670] [00002FB0] IsElevated: False +[2026-06-05 17:05:16.670] [00002FB0] Is64BitProcess: True +[2026-06-05 17:05:16.670] [00002FB0] RebootPending: True +[2026-06-05 17:05:16.670] [00002FB0] ProcessorArchitecture: amd64 +[2026-06-05 17:05:16.670] [00002FB0] HostArchitecture: x64 +[2026-06-05 17:05:16.670] [00002FB0] SdkDirectory: 10.0.201 +[2026-06-05 17:05:16.670] [00002FB0] VerifySignatures: False +[2026-06-05 17:05:16.670] [00002FB0] SDK feature band: 10.0.200 +[2026-06-05 17:05:18.325] [00002FB0] Shutting down +[2026-06-05 17:05:18.325] [00002FB0] Shutdown completed. +[2026-06-05 17:05:18.325] [00002FB0] Restart required: False +[2026-06-05 17:05:18.325] [00002FB0] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_12620_20260605_161941_371.log b/.opencode/tmp/Microsoft.NET.Workload_12620_20260605_161941_371.log new file mode 100644 index 0000000..4ab76d7 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_12620_20260605_161941_371.log @@ -0,0 +1,14 @@ +[2026-06-05 16:19:41.373] [0000314C] === Logging started === +[2026-06-05 16:19:41.380] [0000314C] Executing: "C:\Program Files\dotnet\dotnet.exe" build --no-restore, PID: 12620, PPID: 45480 +[2026-06-05 16:19:41.381] [0000314C] IsElevated: False +[2026-06-05 16:19:41.381] [0000314C] Is64BitProcess: True +[2026-06-05 16:19:41.381] [0000314C] RebootPending: False +[2026-06-05 16:19:41.381] [0000314C] ProcessorArchitecture: amd64 +[2026-06-05 16:19:41.381] [0000314C] HostArchitecture: x64 +[2026-06-05 16:19:41.381] [0000314C] SdkDirectory: 10.0.201 +[2026-06-05 16:19:41.381] [0000314C] VerifySignatures: False +[2026-06-05 16:19:41.381] [0000314C] SDK feature band: 10.0.200 +[2026-06-05 16:19:47.111] [0000314C] Shutting down +[2026-06-05 16:19:47.111] [0000314C] Shutdown completed. +[2026-06-05 16:19:47.111] [0000314C] Restart required: False +[2026-06-05 16:19:47.111] [0000314C] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_13264_20260605_175538_056.log b/.opencode/tmp/Microsoft.NET.Workload_13264_20260605_175538_056.log new file mode 100644 index 0000000..a72b1f1 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_13264_20260605_175538_056.log @@ -0,0 +1,14 @@ +[2026-06-05 17:55:38.058] [000033D0] === Logging started === +[2026-06-05 17:55:38.064] [000033D0] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --verbosity normal, PID: 13264, PPID: 46572 +[2026-06-05 17:55:38.066] [000033D0] IsElevated: False +[2026-06-05 17:55:38.066] [000033D0] Is64BitProcess: True +[2026-06-05 17:55:38.066] [000033D0] RebootPending: True +[2026-06-05 17:55:38.066] [000033D0] ProcessorArchitecture: amd64 +[2026-06-05 17:55:38.066] [000033D0] HostArchitecture: x64 +[2026-06-05 17:55:38.066] [000033D0] SdkDirectory: 10.0.201 +[2026-06-05 17:55:38.066] [000033D0] VerifySignatures: False +[2026-06-05 17:55:38.066] [000033D0] SDK feature band: 10.0.200 +[2026-06-05 17:56:01.432] [000033D0] Shutting down +[2026-06-05 17:56:01.432] [000033D0] Shutdown completed. +[2026-06-05 17:56:01.432] [000033D0] Restart required: False +[2026-06-05 17:56:01.432] [000033D0] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_13516_20260605_170334_204.log b/.opencode/tmp/Microsoft.NET.Workload_13516_20260605_170334_204.log new file mode 100644 index 0000000..1967c13 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_13516_20260605_170334_204.log @@ -0,0 +1,14 @@ +[2026-06-05 17:03:34.206] [000034CC] === Logging started === +[2026-06-05 17:03:34.211] [000034CC] Executing: "C:\Program Files\dotnet\dotnet.exe" run --project C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj -- C:\Users\hegin\.nuget\packages\netcord.hosting\1.0.0-alpha.489\lib\net10.0\NetCord.Hosting.dll, PID: 13516, PPID: 39940 +[2026-06-05 17:03:34.212] [000034CC] IsElevated: False +[2026-06-05 17:03:34.212] [000034CC] Is64BitProcess: True +[2026-06-05 17:03:34.212] [000034CC] RebootPending: True +[2026-06-05 17:03:34.212] [000034CC] ProcessorArchitecture: amd64 +[2026-06-05 17:03:34.212] [000034CC] HostArchitecture: x64 +[2026-06-05 17:03:34.212] [000034CC] SdkDirectory: 10.0.201 +[2026-06-05 17:03:34.212] [000034CC] VerifySignatures: False +[2026-06-05 17:03:34.212] [000034CC] SDK feature band: 10.0.200 +[2026-06-05 17:03:39.324] [000034CC] Shutting down +[2026-06-05 17:03:39.324] [000034CC] Shutdown completed. +[2026-06-05 17:03:39.324] [000034CC] Restart required: False +[2026-06-05 17:03:39.325] [000034CC] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_13580_20260605_183622_046.log b/.opencode/tmp/Microsoft.NET.Workload_13580_20260605_183622_046.log new file mode 100644 index 0000000..62d901e --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_13580_20260605_183622_046.log @@ -0,0 +1,14 @@ +[2026-06-05 18:36:22.048] [0000350C] === Logging started === +[2026-06-05 18:36:22.054] [0000350C] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --filter FullyQualifiedName~DiscordWizardInteractionModuleSourceTests --verbosity normal, PID: 13580, PPID: 39160 +[2026-06-05 18:36:22.056] [0000350C] IsElevated: False +[2026-06-05 18:36:22.056] [0000350C] Is64BitProcess: True +[2026-06-05 18:36:22.056] [0000350C] RebootPending: True +[2026-06-05 18:36:22.056] [0000350C] ProcessorArchitecture: amd64 +[2026-06-05 18:36:22.056] [0000350C] HostArchitecture: x64 +[2026-06-05 18:36:22.056] [0000350C] SdkDirectory: 10.0.201 +[2026-06-05 18:36:22.056] [0000350C] VerifySignatures: False +[2026-06-05 18:36:22.056] [0000350C] SDK feature band: 10.0.200 +[2026-06-05 18:36:26.430] [0000350C] Shutting down +[2026-06-05 18:36:26.430] [0000350C] Shutdown completed. +[2026-06-05 18:36:26.430] [0000350C] Restart required: False +[2026-06-05 18:36:26.431] [0000350C] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_15456_20260605_180405_509.log b/.opencode/tmp/Microsoft.NET.Workload_15456_20260605_180405_509.log new file mode 100644 index 0000000..ab4008d --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_15456_20260605_180405_509.log @@ -0,0 +1,14 @@ +[2026-06-05 18:04:05.511] [00003C60] === Logging started === +[2026-06-05 18:04:05.517] [00003C60] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --filter FullyQualifiedName~DiscordStartupTests.DiscordSessionSlashCommands_ShouldBeDiscoverableByNetCordService --verbosity normal, PID: 15456, PPID: 22200 +[2026-06-05 18:04:05.518] [00003C60] IsElevated: False +[2026-06-05 18:04:05.518] [00003C60] Is64BitProcess: True +[2026-06-05 18:04:05.518] [00003C60] RebootPending: True +[2026-06-05 18:04:05.518] [00003C60] ProcessorArchitecture: amd64 +[2026-06-05 18:04:05.518] [00003C60] HostArchitecture: x64 +[2026-06-05 18:04:05.518] [00003C60] SdkDirectory: 10.0.201 +[2026-06-05 18:04:05.518] [00003C60] VerifySignatures: False +[2026-06-05 18:04:05.518] [00003C60] SDK feature band: 10.0.200 +[2026-06-05 18:04:09.909] [00003C60] Shutting down +[2026-06-05 18:04:09.909] [00003C60] Shutdown completed. +[2026-06-05 18:04:09.909] [00003C60] Restart required: False +[2026-06-05 18:04:09.909] [00003C60] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_15984_20260605_181034_257.log b/.opencode/tmp/Microsoft.NET.Workload_15984_20260605_181034_257.log new file mode 100644 index 0000000..3b4084b --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_15984_20260605_181034_257.log @@ -0,0 +1,14 @@ +[2026-06-05 18:10:34.259] [00003E70] === Logging started === +[2026-06-05 18:10:34.264] [00003E70] Executing: "C:\Program Files\dotnet\dotnet.exe" build C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 15984, PPID: 36992 +[2026-06-05 18:10:34.266] [00003E70] IsElevated: False +[2026-06-05 18:10:34.266] [00003E70] Is64BitProcess: True +[2026-06-05 18:10:34.266] [00003E70] RebootPending: True +[2026-06-05 18:10:34.266] [00003E70] ProcessorArchitecture: amd64 +[2026-06-05 18:10:34.266] [00003E70] HostArchitecture: x64 +[2026-06-05 18:10:34.266] [00003E70] SdkDirectory: 10.0.201 +[2026-06-05 18:10:34.266] [00003E70] VerifySignatures: False +[2026-06-05 18:10:34.266] [00003E70] SDK feature band: 10.0.200 +[2026-06-05 18:10:38.156] [00003E70] Shutting down +[2026-06-05 18:10:38.156] [00003E70] Shutdown completed. +[2026-06-05 18:10:38.156] [00003E70] Restart required: False +[2026-06-05 18:10:38.156] [00003E70] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_16528_20260605_172954_363.log b/.opencode/tmp/Microsoft.NET.Workload_16528_20260605_172954_363.log new file mode 100644 index 0000000..5e62499 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_16528_20260605_172954_363.log @@ -0,0 +1,14 @@ +[2026-06-05 17:29:54.365] [00004090] === Logging started === +[2026-06-05 17:29:54.371] [00004090] Executing: "C:\Program Files\dotnet\dotnet.exe" build src/GmRelay.DiscordBot/GmRelay.DiscordBot.csproj --no-restore, PID: 16528, PPID: 22264 +[2026-06-05 17:29:54.373] [00004090] IsElevated: False +[2026-06-05 17:29:54.373] [00004090] Is64BitProcess: True +[2026-06-05 17:29:54.373] [00004090] RebootPending: True +[2026-06-05 17:29:54.373] [00004090] ProcessorArchitecture: amd64 +[2026-06-05 17:29:54.373] [00004090] HostArchitecture: x64 +[2026-06-05 17:29:54.373] [00004090] SdkDirectory: 10.0.201 +[2026-06-05 17:29:54.373] [00004090] VerifySignatures: False +[2026-06-05 17:29:54.373] [00004090] SDK feature band: 10.0.200 +[2026-06-05 17:30:02.368] [00004090] Shutting down +[2026-06-05 17:30:02.368] [00004090] Shutdown completed. +[2026-06-05 17:30:02.368] [00004090] Restart required: False +[2026-06-05 17:30:02.369] [00004090] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_17132_20260605_182249_074.log b/.opencode/tmp/Microsoft.NET.Workload_17132_20260605_182249_074.log new file mode 100644 index 0000000..be53f66 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_17132_20260605_182249_074.log @@ -0,0 +1,14 @@ +[2026-06-05 18:22:49.077] [000042EC] === Logging started === +[2026-06-05 18:22:49.084] [000042EC] Executing: "C:\Program Files\dotnet\dotnet.exe" build --no-restore, PID: 17132, PPID: 23212 +[2026-06-05 18:22:49.086] [000042EC] IsElevated: False +[2026-06-05 18:22:49.086] [000042EC] Is64BitProcess: True +[2026-06-05 18:22:49.086] [000042EC] RebootPending: True +[2026-06-05 18:22:49.086] [000042EC] ProcessorArchitecture: amd64 +[2026-06-05 18:22:49.086] [000042EC] HostArchitecture: x64 +[2026-06-05 18:22:49.086] [000042EC] SdkDirectory: 10.0.201 +[2026-06-05 18:22:49.086] [000042EC] VerifySignatures: False +[2026-06-05 18:22:49.086] [000042EC] SDK feature band: 10.0.200 +[2026-06-05 18:22:54.568] [000042EC] Shutting down +[2026-06-05 18:22:54.568] [000042EC] Shutdown completed. +[2026-06-05 18:22:54.568] [000042EC] Restart required: False +[2026-06-05 18:22:54.568] [000042EC] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_17520_20260605_173227_741.log b/.opencode/tmp/Microsoft.NET.Workload_17520_20260605_173227_741.log new file mode 100644 index 0000000..d979804 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_17520_20260605_173227_741.log @@ -0,0 +1,14 @@ +[2026-06-05 17:32:27.743] [00004470] === Logging started === +[2026-06-05 17:32:27.750] [00004470] Executing: "C:\Program Files\dotnet\dotnet.exe" build C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 17520, PPID: 47336 +[2026-06-05 17:32:27.752] [00004470] IsElevated: False +[2026-06-05 17:32:27.752] [00004470] Is64BitProcess: True +[2026-06-05 17:32:27.752] [00004470] RebootPending: True +[2026-06-05 17:32:27.752] [00004470] ProcessorArchitecture: amd64 +[2026-06-05 17:32:27.752] [00004470] HostArchitecture: x64 +[2026-06-05 17:32:27.752] [00004470] SdkDirectory: 10.0.201 +[2026-06-05 17:32:27.752] [00004470] VerifySignatures: False +[2026-06-05 17:32:27.752] [00004470] SDK feature band: 10.0.200 +[2026-06-05 17:32:29.031] [00004470] Shutting down +[2026-06-05 17:32:29.031] [00004470] Shutdown completed. +[2026-06-05 17:32:29.031] [00004470] Restart required: False +[2026-06-05 17:32:29.032] [00004470] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_18124_20260605_170818_075.log b/.opencode/tmp/Microsoft.NET.Workload_18124_20260605_170818_075.log new file mode 100644 index 0000000..dd33f8c --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_18124_20260605_170818_075.log @@ -0,0 +1,14 @@ +[2026-06-05 17:08:18.076] [000046CC] === Logging started === +[2026-06-05 17:08:18.082] [000046CC] Executing: "C:\Program Files\dotnet\dotnet.exe" run --project C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 18124, PPID: 33484 +[2026-06-05 17:08:18.082] [000046CC] IsElevated: False +[2026-06-05 17:08:18.082] [000046CC] Is64BitProcess: True +[2026-06-05 17:08:18.082] [000046CC] RebootPending: True +[2026-06-05 17:08:18.082] [000046CC] ProcessorArchitecture: amd64 +[2026-06-05 17:08:18.082] [000046CC] HostArchitecture: x64 +[2026-06-05 17:08:18.082] [000046CC] SdkDirectory: 10.0.201 +[2026-06-05 17:08:18.082] [000046CC] VerifySignatures: False +[2026-06-05 17:08:18.082] [000046CC] SDK feature band: 10.0.200 +[2026-06-05 17:08:19.310] [000046CC] Shutting down +[2026-06-05 17:08:19.310] [000046CC] Shutdown completed. +[2026-06-05 17:08:19.310] [000046CC] Restart required: False +[2026-06-05 17:08:19.310] [000046CC] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_18200_20260605_174355_289.log b/.opencode/tmp/Microsoft.NET.Workload_18200_20260605_174355_289.log new file mode 100644 index 0000000..5b3b2e1 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_18200_20260605_174355_289.log @@ -0,0 +1,14 @@ +[2026-06-05 17:43:55.292] [00004718] === Logging started === +[2026-06-05 17:43:55.298] [00004718] Executing: "C:\Program Files\dotnet\dotnet.exe" test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --no-build --verbosity minimal, PID: 18200, PPID: 33880 +[2026-06-05 17:43:55.300] [00004718] IsElevated: False +[2026-06-05 17:43:55.300] [00004718] Is64BitProcess: True +[2026-06-05 17:43:55.300] [00004718] RebootPending: True +[2026-06-05 17:43:55.300] [00004718] ProcessorArchitecture: amd64 +[2026-06-05 17:43:55.300] [00004718] HostArchitecture: x64 +[2026-06-05 17:43:55.300] [00004718] SdkDirectory: 10.0.201 +[2026-06-05 17:43:55.300] [00004718] VerifySignatures: False +[2026-06-05 17:43:55.300] [00004718] SDK feature band: 10.0.200 +[2026-06-05 17:44:14.934] [00004718] Shutting down +[2026-06-05 17:44:14.934] [00004718] Shutdown completed. +[2026-06-05 17:44:14.934] [00004718] Restart required: False +[2026-06-05 17:44:14.934] [00004718] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_19000_20260605_181539_741.log b/.opencode/tmp/Microsoft.NET.Workload_19000_20260605_181539_741.log new file mode 100644 index 0000000..893af54 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_19000_20260605_181539_741.log @@ -0,0 +1,14 @@ +[2026-06-05 18:15:39.743] [00004A38] === Logging started === +[2026-06-05 18:15:39.749] [00004A38] Executing: "C:\Program Files\dotnet\dotnet.exe" build C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 19000, PPID: 24592 +[2026-06-05 18:15:39.751] [00004A38] IsElevated: False +[2026-06-05 18:15:39.751] [00004A38] Is64BitProcess: True +[2026-06-05 18:15:39.751] [00004A38] RebootPending: True +[2026-06-05 18:15:39.751] [00004A38] ProcessorArchitecture: amd64 +[2026-06-05 18:15:39.751] [00004A38] HostArchitecture: x64 +[2026-06-05 18:15:39.751] [00004A38] SdkDirectory: 10.0.201 +[2026-06-05 18:15:39.751] [00004A38] VerifySignatures: False +[2026-06-05 18:15:39.751] [00004A38] SDK feature band: 10.0.200 +[2026-06-05 18:15:40.787] [00004A38] Shutting down +[2026-06-05 18:15:40.787] [00004A38] Shutdown completed. +[2026-06-05 18:15:40.787] [00004A38] Restart required: False +[2026-06-05 18:15:40.788] [00004A38] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_19612_20260605_163312_319.log b/.opencode/tmp/Microsoft.NET.Workload_19612_20260605_163312_319.log new file mode 100644 index 0000000..f099694 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_19612_20260605_163312_319.log @@ -0,0 +1,14 @@ +[2026-06-05 16:33:12.321] [00004C9C] === Logging started === +[2026-06-05 16:33:12.327] [00004C9C] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --filter FullyQualifiedName~CreateSession --verbosity minimal, PID: 19612, PPID: 10324 +[2026-06-05 16:33:12.328] [00004C9C] IsElevated: False +[2026-06-05 16:33:12.328] [00004C9C] Is64BitProcess: True +[2026-06-05 16:33:12.328] [00004C9C] RebootPending: True +[2026-06-05 16:33:12.328] [00004C9C] ProcessorArchitecture: amd64 +[2026-06-05 16:33:12.328] [00004C9C] HostArchitecture: x64 +[2026-06-05 16:33:12.328] [00004C9C] SdkDirectory: 10.0.201 +[2026-06-05 16:33:12.328] [00004C9C] VerifySignatures: False +[2026-06-05 16:33:12.328] [00004C9C] SDK feature band: 10.0.200 +[2026-06-05 16:33:22.794] [00004C9C] Shutting down +[2026-06-05 16:33:22.794] [00004C9C] Shutdown completed. +[2026-06-05 16:33:22.794] [00004C9C] Restart required: False +[2026-06-05 16:33:22.794] [00004C9C] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_19652_20260605_170944_244.log b/.opencode/tmp/Microsoft.NET.Workload_19652_20260605_170944_244.log new file mode 100644 index 0000000..1a00461 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_19652_20260605_170944_244.log @@ -0,0 +1,14 @@ +[2026-06-05 17:09:44.245] [00004CC4] === Logging started === +[2026-06-05 17:09:44.251] [00004CC4] Executing: "C:\Program Files\dotnet\dotnet.exe" run --project C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj -- C:\Users\hegin\.nuget\packages\netcord\1.0.0-alpha.489\lib\net10.0\NetCord.dll, PID: 19652, PPID: 54032 +[2026-06-05 17:09:44.252] [00004CC4] IsElevated: False +[2026-06-05 17:09:44.252] [00004CC4] Is64BitProcess: True +[2026-06-05 17:09:44.252] [00004CC4] RebootPending: True +[2026-06-05 17:09:44.252] [00004CC4] ProcessorArchitecture: amd64 +[2026-06-05 17:09:44.252] [00004CC4] HostArchitecture: x64 +[2026-06-05 17:09:44.252] [00004CC4] SdkDirectory: 10.0.201 +[2026-06-05 17:09:44.252] [00004CC4] VerifySignatures: False +[2026-06-05 17:09:44.252] [00004CC4] SDK feature band: 10.0.200 +[2026-06-05 17:09:45.774] [00004CC4] Shutting down +[2026-06-05 17:09:45.775] [00004CC4] Shutdown completed. +[2026-06-05 17:09:45.775] [00004CC4] Restart required: False +[2026-06-05 17:09:45.775] [00004CC4] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_20008_20260605_225301_935.log b/.opencode/tmp/Microsoft.NET.Workload_20008_20260605_225301_935.log new file mode 100644 index 0000000..b98d6b6 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_20008_20260605_225301_935.log @@ -0,0 +1,14 @@ +[2026-06-05 22:53:01.938] [00004E28] === Logging started === +[2026-06-05 22:53:01.943] [00004E28] Executing: "C:\Program Files\dotnet\dotnet.exe" test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --no-build --verbosity minimal, PID: 20008, PPID: 2944 +[2026-06-05 22:53:01.946] [00004E28] IsElevated: False +[2026-06-05 22:53:01.946] [00004E28] Is64BitProcess: True +[2026-06-05 22:53:01.946] [00004E28] RebootPending: True +[2026-06-05 22:53:01.946] [00004E28] ProcessorArchitecture: amd64 +[2026-06-05 22:53:01.946] [00004E28] HostArchitecture: x64 +[2026-06-05 22:53:01.946] [00004E28] SdkDirectory: 10.0.201 +[2026-06-05 22:53:01.946] [00004E28] VerifySignatures: False +[2026-06-05 22:53:01.946] [00004E28] SDK feature band: 10.0.200 +[2026-06-05 22:53:24.061] [00004E28] Shutting down +[2026-06-05 22:53:24.061] [00004E28] Shutdown completed. +[2026-06-05 22:53:24.061] [00004E28] Restart required: False +[2026-06-05 22:53:24.062] [00004E28] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_20032_20260605_161614_222.log b/.opencode/tmp/Microsoft.NET.Workload_20032_20260605_161614_222.log new file mode 100644 index 0000000..3ab35c3 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_20032_20260605_161614_222.log @@ -0,0 +1,14 @@ +[2026-06-05 16:16:14.224] [00004E40] === Logging started === +[2026-06-05 16:16:14.230] [00004E40] Executing: "C:\Program Files\dotnet\dotnet.exe" test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --no-restore --filter FullyQualifiedName~NavMenu_ShouldExposeCurrentProjectVersion --verbosity normal, PID: 20032, PPID: 26780 +[2026-06-05 16:16:14.231] [00004E40] IsElevated: False +[2026-06-05 16:16:14.231] [00004E40] Is64BitProcess: True +[2026-06-05 16:16:14.231] [00004E40] RebootPending: False +[2026-06-05 16:16:14.231] [00004E40] ProcessorArchitecture: amd64 +[2026-06-05 16:16:14.231] [00004E40] HostArchitecture: x64 +[2026-06-05 16:16:14.231] [00004E40] SdkDirectory: 10.0.201 +[2026-06-05 16:16:14.231] [00004E40] VerifySignatures: False +[2026-06-05 16:16:14.231] [00004E40] SDK feature band: 10.0.200 +[2026-06-05 16:16:17.523] [00004E40] Shutting down +[2026-06-05 16:16:17.523] [00004E40] Shutdown completed. +[2026-06-05 16:16:17.523] [00004E40] Restart required: False +[2026-06-05 16:16:17.523] [00004E40] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_20456_20260605_180341_958.log b/.opencode/tmp/Microsoft.NET.Workload_20456_20260605_180341_958.log new file mode 100644 index 0000000..b8e3ec0 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_20456_20260605_180341_958.log @@ -0,0 +1,14 @@ +[2026-06-05 18:03:41.960] [00004FE8] === Logging started === +[2026-06-05 18:03:41.965] [00004FE8] Executing: "C:\Program Files\dotnet\dotnet.exe" build D:\Projects\Game\src\GmRelay.DiscordBot\GmRelay.DiscordBot.csproj --no-restore, PID: 20456, PPID: 54032 +[2026-06-05 18:03:41.967] [00004FE8] IsElevated: False +[2026-06-05 18:03:41.967] [00004FE8] Is64BitProcess: True +[2026-06-05 18:03:41.967] [00004FE8] RebootPending: True +[2026-06-05 18:03:41.967] [00004FE8] ProcessorArchitecture: amd64 +[2026-06-05 18:03:41.967] [00004FE8] HostArchitecture: x64 +[2026-06-05 18:03:41.967] [00004FE8] SdkDirectory: 10.0.201 +[2026-06-05 18:03:41.967] [00004FE8] VerifySignatures: False +[2026-06-05 18:03:41.967] [00004FE8] SDK feature band: 10.0.200 +[2026-06-05 18:03:42.967] [00004FE8] Shutting down +[2026-06-05 18:03:42.967] [00004FE8] Shutdown completed. +[2026-06-05 18:03:42.967] [00004FE8] Restart required: False +[2026-06-05 18:03:42.967] [00004FE8] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_20648_20260605_170721_383.log b/.opencode/tmp/Microsoft.NET.Workload_20648_20260605_170721_383.log new file mode 100644 index 0000000..de38eab --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_20648_20260605_170721_383.log @@ -0,0 +1,14 @@ +[2026-06-05 17:07:21.385] [000050A8] === Logging started === +[2026-06-05 17:07:21.390] [000050A8] Executing: "C:\Program Files\dotnet\dotnet.exe" run --project C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 20648, PPID: 42132 +[2026-06-05 17:07:21.391] [000050A8] IsElevated: False +[2026-06-05 17:07:21.391] [000050A8] Is64BitProcess: True +[2026-06-05 17:07:21.391] [000050A8] RebootPending: True +[2026-06-05 17:07:21.391] [000050A8] ProcessorArchitecture: amd64 +[2026-06-05 17:07:21.391] [000050A8] HostArchitecture: x64 +[2026-06-05 17:07:21.391] [000050A8] SdkDirectory: 10.0.201 +[2026-06-05 17:07:21.391] [000050A8] VerifySignatures: False +[2026-06-05 17:07:21.391] [000050A8] SDK feature band: 10.0.200 +[2026-06-05 17:07:22.954] [000050A8] Shutting down +[2026-06-05 17:07:22.954] [000050A8] Shutdown completed. +[2026-06-05 17:07:22.954] [000050A8] Restart required: False +[2026-06-05 17:07:22.955] [000050A8] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_20664_20260605_185653_004.log b/.opencode/tmp/Microsoft.NET.Workload_20664_20260605_185653_004.log new file mode 100644 index 0000000..c166375 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_20664_20260605_185653_004.log @@ -0,0 +1,14 @@ +[2026-06-05 18:56:53.006] [000050B8] === Logging started === +[2026-06-05 18:56:53.012] [000050B8] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --filter FullyQualifiedName~Discord|FullyQualifiedName~Wizard --verbosity normal, PID: 20664, PPID: 20456 +[2026-06-05 18:56:53.013] [000050B8] IsElevated: False +[2026-06-05 18:56:53.013] [000050B8] Is64BitProcess: True +[2026-06-05 18:56:53.013] [000050B8] RebootPending: True +[2026-06-05 18:56:53.013] [000050B8] ProcessorArchitecture: amd64 +[2026-06-05 18:56:53.013] [000050B8] HostArchitecture: x64 +[2026-06-05 18:56:53.013] [000050B8] SdkDirectory: 10.0.201 +[2026-06-05 18:56:53.013] [000050B8] VerifySignatures: False +[2026-06-05 18:56:53.013] [000050B8] SDK feature band: 10.0.200 +[2026-06-05 18:57:04.204] [000050B8] Shutting down +[2026-06-05 18:57:04.204] [000050B8] Shutdown completed. +[2026-06-05 18:57:04.204] [000050B8] Restart required: False +[2026-06-05 18:57:04.205] [000050B8] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_21908_20260605_185038_697.log b/.opencode/tmp/Microsoft.NET.Workload_21908_20260605_185038_697.log new file mode 100644 index 0000000..83cfa5a --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_21908_20260605_185038_697.log @@ -0,0 +1,14 @@ +[2026-06-05 18:50:38.699] [00005594] === Logging started === +[2026-06-05 18:50:38.704] [00005594] Executing: "C:\Program Files\dotnet\dotnet.exe" build src/GmRelay.DiscordBot/GmRelay.DiscordBot.csproj --no-restore, PID: 21908, PPID: 31908 +[2026-06-05 18:50:38.706] [00005594] IsElevated: False +[2026-06-05 18:50:38.706] [00005594] Is64BitProcess: True +[2026-06-05 18:50:38.706] [00005594] RebootPending: True +[2026-06-05 18:50:38.706] [00005594] ProcessorArchitecture: amd64 +[2026-06-05 18:50:38.706] [00005594] HostArchitecture: x64 +[2026-06-05 18:50:38.706] [00005594] SdkDirectory: 10.0.201 +[2026-06-05 18:50:38.706] [00005594] VerifySignatures: False +[2026-06-05 18:50:38.706] [00005594] SDK feature band: 10.0.200 +[2026-06-05 18:50:40.609] [00005594] Shutting down +[2026-06-05 18:50:40.610] [00005594] Shutdown completed. +[2026-06-05 18:50:40.610] [00005594] Restart required: False +[2026-06-05 18:50:40.610] [00005594] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_22044_20260605_161448_785.log b/.opencode/tmp/Microsoft.NET.Workload_22044_20260605_161448_785.log new file mode 100644 index 0000000..df8f335 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_22044_20260605_161448_785.log @@ -0,0 +1,14 @@ +[2026-06-05 16:14:48.787] [0000561C] === Logging started === +[2026-06-05 16:14:48.792] [0000561C] Executing: "C:\Program Files\dotnet\dotnet.exe" build tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --no-restore, PID: 22044, PPID: 40128 +[2026-06-05 16:14:48.794] [0000561C] IsElevated: False +[2026-06-05 16:14:48.794] [0000561C] Is64BitProcess: True +[2026-06-05 16:14:48.794] [0000561C] RebootPending: False +[2026-06-05 16:14:48.794] [0000561C] ProcessorArchitecture: amd64 +[2026-06-05 16:14:48.794] [0000561C] HostArchitecture: x64 +[2026-06-05 16:14:48.794] [0000561C] SdkDirectory: 10.0.201 +[2026-06-05 16:14:48.794] [0000561C] VerifySignatures: False +[2026-06-05 16:14:48.794] [0000561C] SDK feature band: 10.0.200 +[2026-06-05 16:14:53.429] [0000561C] Shutting down +[2026-06-05 16:14:53.429] [0000561C] Shutdown completed. +[2026-06-05 16:14:53.430] [0000561C] Restart required: False +[2026-06-05 16:14:53.430] [0000561C] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_22516_20260605_161150_164.log b/.opencode/tmp/Microsoft.NET.Workload_22516_20260605_161150_164.log new file mode 100644 index 0000000..52f2135 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_22516_20260605_161150_164.log @@ -0,0 +1,14 @@ +[2026-06-05 16:11:50.166] [000057F4] === Logging started === +[2026-06-05 16:11:50.171] [000057F4] Executing: "C:\Program Files\dotnet\dotnet.exe" build src/GmRelay.Shared/GmRelay.Shared.csproj --no-restore, PID: 22516, PPID: 24884 +[2026-06-05 16:11:50.173] [000057F4] IsElevated: False +[2026-06-05 16:11:50.173] [000057F4] Is64BitProcess: True +[2026-06-05 16:11:50.173] [000057F4] RebootPending: False +[2026-06-05 16:11:50.173] [000057F4] ProcessorArchitecture: amd64 +[2026-06-05 16:11:50.173] [000057F4] HostArchitecture: x64 +[2026-06-05 16:11:50.173] [000057F4] SdkDirectory: 10.0.201 +[2026-06-05 16:11:50.173] [000057F4] VerifySignatures: False +[2026-06-05 16:11:50.173] [000057F4] SDK feature band: 10.0.200 +[2026-06-05 16:11:50.855] [000057F4] Shutting down +[2026-06-05 16:11:50.855] [000057F4] Shutdown completed. +[2026-06-05 16:11:50.855] [000057F4] Restart required: False +[2026-06-05 16:11:50.855] [000057F4] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_22640_20260605_162738_516.log b/.opencode/tmp/Microsoft.NET.Workload_22640_20260605_162738_516.log new file mode 100644 index 0000000..4d0f22c --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_22640_20260605_162738_516.log @@ -0,0 +1,14 @@ +[2026-06-05 16:27:38.518] [00005870] === Logging started === +[2026-06-05 16:27:38.523] [00005870] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --verbosity normal, PID: 22640, PPID: 49712 +[2026-06-05 16:27:38.526] [00005870] IsElevated: False +[2026-06-05 16:27:38.526] [00005870] Is64BitProcess: True +[2026-06-05 16:27:38.526] [00005870] RebootPending: False +[2026-06-05 16:27:38.526] [00005870] ProcessorArchitecture: amd64 +[2026-06-05 16:27:38.526] [00005870] HostArchitecture: x64 +[2026-06-05 16:27:38.526] [00005870] SdkDirectory: 10.0.201 +[2026-06-05 16:27:38.526] [00005870] VerifySignatures: False +[2026-06-05 16:27:38.526] [00005870] SDK feature band: 10.0.200 +[2026-06-05 16:28:00.773] [00005870] Shutting down +[2026-06-05 16:28:00.773] [00005870] Shutdown completed. +[2026-06-05 16:28:00.773] [00005870] Restart required: False +[2026-06-05 16:28:00.774] [00005870] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_23168_20260605_182121_386.log b/.opencode/tmp/Microsoft.NET.Workload_23168_20260605_182121_386.log new file mode 100644 index 0000000..a5011de --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_23168_20260605_182121_386.log @@ -0,0 +1,14 @@ +[2026-06-05 18:21:21.388] [00005A80] === Logging started === +[2026-06-05 18:21:21.394] [00005A80] Executing: "C:\Program Files\dotnet\dotnet.exe" build src/GmRelay.DiscordBot/GmRelay.DiscordBot.csproj --no-restore, PID: 23168, PPID: 5284 +[2026-06-05 18:21:21.395] [00005A80] IsElevated: False +[2026-06-05 18:21:21.395] [00005A80] Is64BitProcess: True +[2026-06-05 18:21:21.395] [00005A80] RebootPending: True +[2026-06-05 18:21:21.395] [00005A80] ProcessorArchitecture: amd64 +[2026-06-05 18:21:21.395] [00005A80] HostArchitecture: x64 +[2026-06-05 18:21:21.395] [00005A80] SdkDirectory: 10.0.201 +[2026-06-05 18:21:21.395] [00005A80] VerifySignatures: False +[2026-06-05 18:21:21.395] [00005A80] SDK feature band: 10.0.200 +[2026-06-05 18:21:23.116] [00005A80] Shutting down +[2026-06-05 18:21:23.117] [00005A80] Shutdown completed. +[2026-06-05 18:21:23.117] [00005A80] Restart required: False +[2026-06-05 18:21:23.117] [00005A80] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_23260_20260605_165802_718.log b/.opencode/tmp/Microsoft.NET.Workload_23260_20260605_165802_718.log new file mode 100644 index 0000000..7724ce0 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_23260_20260605_165802_718.log @@ -0,0 +1,14 @@ +[2026-06-05 16:58:02.720] [00005ADC] === Logging started === +[2026-06-05 16:58:02.727] [00005ADC] Executing: "C:\Program Files\dotnet\dotnet.exe" run --project C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj -- C:\Users\hegin\.nuget\packages\netcord\1.0.0-alpha.489\lib\net10.0\NetCord.dll, PID: 23260, PPID: 48156 +[2026-06-05 16:58:02.727] [00005ADC] IsElevated: False +[2026-06-05 16:58:02.727] [00005ADC] Is64BitProcess: True +[2026-06-05 16:58:02.727] [00005ADC] RebootPending: True +[2026-06-05 16:58:02.727] [00005ADC] ProcessorArchitecture: amd64 +[2026-06-05 16:58:02.727] [00005ADC] HostArchitecture: x64 +[2026-06-05 16:58:02.727] [00005ADC] SdkDirectory: 10.0.201 +[2026-06-05 16:58:02.727] [00005ADC] VerifySignatures: False +[2026-06-05 16:58:02.727] [00005ADC] SDK feature band: 10.0.200 +[2026-06-05 16:58:04.112] [00005ADC] Shutting down +[2026-06-05 16:58:04.112] [00005ADC] Shutdown completed. +[2026-06-05 16:58:04.112] [00005ADC] Restart required: False +[2026-06-05 16:58:04.113] [00005ADC] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_23920_20260605_225122_281.log b/.opencode/tmp/Microsoft.NET.Workload_23920_20260605_225122_281.log new file mode 100644 index 0000000..89b8a9e --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_23920_20260605_225122_281.log @@ -0,0 +1,14 @@ +[2026-06-05 22:51:22.283] [00005D70] === Logging started === +[2026-06-05 22:51:22.289] [00005D70] Executing: "C:\Program Files\dotnet\dotnet.exe" test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --no-build --filter FullyQualifiedName~Discord|FullyQualifiedName~Wizard --verbosity minimal, PID: 23920, PPID: 35120 +[2026-06-05 22:51:22.290] [00005D70] IsElevated: False +[2026-06-05 22:51:22.290] [00005D70] Is64BitProcess: True +[2026-06-05 22:51:22.290] [00005D70] RebootPending: True +[2026-06-05 22:51:22.290] [00005D70] ProcessorArchitecture: amd64 +[2026-06-05 22:51:22.290] [00005D70] HostArchitecture: x64 +[2026-06-05 22:51:22.290] [00005D70] SdkDirectory: 10.0.201 +[2026-06-05 22:51:22.290] [00005D70] VerifySignatures: False +[2026-06-05 22:51:22.290] [00005D70] SDK feature band: 10.0.200 +[2026-06-05 22:51:30.622] [00005D70] Shutting down +[2026-06-05 22:51:30.622] [00005D70] Shutdown completed. +[2026-06-05 22:51:30.622] [00005D70] Restart required: False +[2026-06-05 22:51:30.622] [00005D70] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_24552_20260605_170637_188.log b/.opencode/tmp/Microsoft.NET.Workload_24552_20260605_170637_188.log new file mode 100644 index 0000000..3692018 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_24552_20260605_170637_188.log @@ -0,0 +1,14 @@ +[2026-06-05 17:06:37.189] [00005FE8] === Logging started === +[2026-06-05 17:06:37.194] [00005FE8] Executing: "C:\Program Files\dotnet\dotnet.exe" run --project C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj -- C:\Users\hegin\.nuget\packages\netcord.hosting\1.0.0-alpha.489\lib\net10.0\NetCord.Hosting.dll, PID: 24552, PPID: 19704 +[2026-06-05 17:06:37.195] [00005FE8] IsElevated: False +[2026-06-05 17:06:37.195] [00005FE8] Is64BitProcess: True +[2026-06-05 17:06:37.195] [00005FE8] RebootPending: True +[2026-06-05 17:06:37.195] [00005FE8] ProcessorArchitecture: amd64 +[2026-06-05 17:06:37.195] [00005FE8] HostArchitecture: x64 +[2026-06-05 17:06:37.195] [00005FE8] SdkDirectory: 10.0.201 +[2026-06-05 17:06:37.195] [00005FE8] VerifySignatures: False +[2026-06-05 17:06:37.195] [00005FE8] SDK feature band: 10.0.200 +[2026-06-05 17:06:38.737] [00005FE8] Shutting down +[2026-06-05 17:06:38.737] [00005FE8] Shutdown completed. +[2026-06-05 17:06:38.737] [00005FE8] Restart required: False +[2026-06-05 17:06:38.738] [00005FE8] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_25664_20260605_185055_509.log b/.opencode/tmp/Microsoft.NET.Workload_25664_20260605_185055_509.log new file mode 100644 index 0000000..d214553 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_25664_20260605_185055_509.log @@ -0,0 +1,14 @@ +[2026-06-05 18:50:55.511] [00006440] === Logging started === +[2026-06-05 18:50:55.517] [00006440] Executing: "C:\Program Files\dotnet\dotnet.exe" test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --no-build --filter FullyQualifiedName~Discord|FullyQualifiedName~Wizard --verbosity minimal, PID: 25664, PPID: 29812 +[2026-06-05 18:50:55.519] [00006440] IsElevated: False +[2026-06-05 18:50:55.519] [00006440] Is64BitProcess: True +[2026-06-05 18:50:55.519] [00006440] RebootPending: True +[2026-06-05 18:50:55.519] [00006440] ProcessorArchitecture: amd64 +[2026-06-05 18:50:55.519] [00006440] HostArchitecture: x64 +[2026-06-05 18:50:55.519] [00006440] SdkDirectory: 10.0.201 +[2026-06-05 18:50:55.519] [00006440] VerifySignatures: False +[2026-06-05 18:50:55.519] [00006440] SDK feature band: 10.0.200 +[2026-06-05 18:51:02.876] [00006440] Shutting down +[2026-06-05 18:51:02.876] [00006440] Shutdown completed. +[2026-06-05 18:51:02.876] [00006440] Restart required: False +[2026-06-05 18:51:02.876] [00006440] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_2708_20260605_162639_950.log b/.opencode/tmp/Microsoft.NET.Workload_2708_20260605_162639_950.log new file mode 100644 index 0000000..9af5606 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_2708_20260605_162639_950.log @@ -0,0 +1,14 @@ +[2026-06-05 16:26:39.952] [00000A94] === Logging started === +[2026-06-05 16:26:39.958] [00000A94] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --verbosity normal --logger console;verbosity=detailed, PID: 2708, PPID: 20444 +[2026-06-05 16:26:39.959] [00000A94] IsElevated: False +[2026-06-05 16:26:39.959] [00000A94] Is64BitProcess: True +[2026-06-05 16:26:39.959] [00000A94] RebootPending: False +[2026-06-05 16:26:39.959] [00000A94] ProcessorArchitecture: amd64 +[2026-06-05 16:26:39.959] [00000A94] HostArchitecture: x64 +[2026-06-05 16:26:39.959] [00000A94] SdkDirectory: 10.0.201 +[2026-06-05 16:26:39.959] [00000A94] VerifySignatures: False +[2026-06-05 16:26:39.959] [00000A94] SDK feature band: 10.0.200 +[2026-06-05 16:27:03.126] [00000A94] Shutting down +[2026-06-05 16:27:03.126] [00000A94] Shutdown completed. +[2026-06-05 16:27:03.126] [00000A94] Restart required: False +[2026-06-05 16:27:03.127] [00000A94] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_27804_20260605_182307_975.log b/.opencode/tmp/Microsoft.NET.Workload_27804_20260605_182307_975.log new file mode 100644 index 0000000..4208e92 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_27804_20260605_182307_975.log @@ -0,0 +1,14 @@ +[2026-06-05 18:23:07.977] [00006C9C] === Logging started === +[2026-06-05 18:23:07.982] [00006C9C] Executing: "C:\Program Files\dotnet\dotnet.exe" test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --no-build --filter FullyQualifiedName~Discord|FullyQualifiedName~Wizard --verbosity minimal, PID: 27804, PPID: 14528 +[2026-06-05 18:23:07.984] [00006C9C] IsElevated: False +[2026-06-05 18:23:07.984] [00006C9C] Is64BitProcess: True +[2026-06-05 18:23:07.984] [00006C9C] RebootPending: True +[2026-06-05 18:23:07.984] [00006C9C] ProcessorArchitecture: amd64 +[2026-06-05 18:23:07.984] [00006C9C] HostArchitecture: x64 +[2026-06-05 18:23:07.984] [00006C9C] SdkDirectory: 10.0.201 +[2026-06-05 18:23:07.984] [00006C9C] VerifySignatures: False +[2026-06-05 18:23:07.984] [00006C9C] SDK feature band: 10.0.200 +[2026-06-05 18:23:15.704] [00006C9C] Shutting down +[2026-06-05 18:23:15.704] [00006C9C] Shutdown completed. +[2026-06-05 18:23:15.704] [00006C9C] Restart required: False +[2026-06-05 18:23:15.704] [00006C9C] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_28024_20260605_182615_423.log b/.opencode/tmp/Microsoft.NET.Workload_28024_20260605_182615_423.log new file mode 100644 index 0000000..1209d02 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_28024_20260605_182615_423.log @@ -0,0 +1,14 @@ +[2026-06-05 18:26:15.426] [00006D78] === Logging started === +[2026-06-05 18:26:15.432] [00006D78] Executing: "C:\Program Files\dotnet\dotnet.exe" test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --filter FullyQualifiedName~DiscordWizardInteractionModuleSourceTests --verbosity normal, PID: 28024, PPID: 18172 +[2026-06-05 18:26:15.434] [00006D78] IsElevated: False +[2026-06-05 18:26:15.434] [00006D78] Is64BitProcess: True +[2026-06-05 18:26:15.434] [00006D78] RebootPending: True +[2026-06-05 18:26:15.434] [00006D78] ProcessorArchitecture: amd64 +[2026-06-05 18:26:15.434] [00006D78] HostArchitecture: x64 +[2026-06-05 18:26:15.434] [00006D78] SdkDirectory: 10.0.201 +[2026-06-05 18:26:15.434] [00006D78] VerifySignatures: False +[2026-06-05 18:26:15.434] [00006D78] SDK feature band: 10.0.200 +[2026-06-05 18:26:22.158] [00006D78] Shutting down +[2026-06-05 18:26:22.158] [00006D78] Shutdown completed. +[2026-06-05 18:26:22.158] [00006D78] Restart required: False +[2026-06-05 18:26:22.159] [00006D78] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_28180_20260605_163541_840.log b/.opencode/tmp/Microsoft.NET.Workload_28180_20260605_163541_840.log new file mode 100644 index 0000000..5bba1e5 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_28180_20260605_163541_840.log @@ -0,0 +1,14 @@ +[2026-06-05 16:35:41.843] [00006E14] === Logging started === +[2026-06-05 16:35:41.849] [00006E14] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --filter FullyQualifiedName~WizardStepRender --verbosity minimal, PID: 28180, PPID: 21084 +[2026-06-05 16:35:41.851] [00006E14] IsElevated: False +[2026-06-05 16:35:41.851] [00006E14] Is64BitProcess: True +[2026-06-05 16:35:41.851] [00006E14] RebootPending: True +[2026-06-05 16:35:41.851] [00006E14] ProcessorArchitecture: amd64 +[2026-06-05 16:35:41.851] [00006E14] HostArchitecture: x64 +[2026-06-05 16:35:41.851] [00006E14] SdkDirectory: 10.0.201 +[2026-06-05 16:35:41.851] [00006E14] VerifySignatures: False +[2026-06-05 16:35:41.851] [00006E14] SDK feature band: 10.0.200 +[2026-06-05 16:35:46.912] [00006E14] Shutting down +[2026-06-05 16:35:46.912] [00006E14] Shutdown completed. +[2026-06-05 16:35:46.912] [00006E14] Restart required: False +[2026-06-05 16:35:46.912] [00006E14] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_28452_20260605_161504_845.log b/.opencode/tmp/Microsoft.NET.Workload_28452_20260605_161504_845.log new file mode 100644 index 0000000..14af599 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_28452_20260605_161504_845.log @@ -0,0 +1,14 @@ +[2026-06-05 16:15:04.848] [00006F24] === Logging started === +[2026-06-05 16:15:04.854] [00006F24] Executing: "C:\Program Files\dotnet\dotnet.exe" test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --no-restore --verbosity normal, PID: 28452, PPID: 48248 +[2026-06-05 16:15:04.856] [00006F24] IsElevated: False +[2026-06-05 16:15:04.856] [00006F24] Is64BitProcess: True +[2026-06-05 16:15:04.856] [00006F24] RebootPending: False +[2026-06-05 16:15:04.856] [00006F24] ProcessorArchitecture: amd64 +[2026-06-05 16:15:04.856] [00006F24] HostArchitecture: x64 +[2026-06-05 16:15:04.856] [00006F24] SdkDirectory: 10.0.201 +[2026-06-05 16:15:04.856] [00006F24] VerifySignatures: False +[2026-06-05 16:15:04.856] [00006F24] SDK feature band: 10.0.200 +[2026-06-05 16:15:30.931] [00006F24] Shutting down +[2026-06-05 16:15:30.931] [00006F24] Shutdown completed. +[2026-06-05 16:15:30.931] [00006F24] Restart required: False +[2026-06-05 16:15:30.931] [00006F24] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_2888_20260605_163723_740.log b/.opencode/tmp/Microsoft.NET.Workload_2888_20260605_163723_740.log new file mode 100644 index 0000000..5b56c6a --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_2888_20260605_163723_740.log @@ -0,0 +1,14 @@ +[2026-06-05 16:37:23.742] [00000B48] === Logging started === +[2026-06-05 16:37:23.747] [00000B48] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --filter FullyQualifiedName~WizardInteractionMapper --verbosity minimal, PID: 2888, PPID: 20648 +[2026-06-05 16:37:23.749] [00000B48] IsElevated: False +[2026-06-05 16:37:23.749] [00000B48] Is64BitProcess: True +[2026-06-05 16:37:23.749] [00000B48] RebootPending: True +[2026-06-05 16:37:23.749] [00000B48] ProcessorArchitecture: amd64 +[2026-06-05 16:37:23.749] [00000B48] HostArchitecture: x64 +[2026-06-05 16:37:23.749] [00000B48] SdkDirectory: 10.0.201 +[2026-06-05 16:37:23.749] [00000B48] VerifySignatures: False +[2026-06-05 16:37:23.749] [00000B48] SDK feature band: 10.0.200 +[2026-06-05 16:37:28.546] [00000B48] Shutting down +[2026-06-05 16:37:28.546] [00000B48] Shutdown completed. +[2026-06-05 16:37:28.546] [00000B48] Restart required: False +[2026-06-05 16:37:28.546] [00000B48] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_28928_20260605_173142_462.log b/.opencode/tmp/Microsoft.NET.Workload_28928_20260605_173142_462.log new file mode 100644 index 0000000..b4862c3 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_28928_20260605_173142_462.log @@ -0,0 +1,14 @@ +[2026-06-05 17:31:42.464] [00007100] === Logging started === +[2026-06-05 17:31:42.473] [00007100] Executing: "C:\Program Files\dotnet\dotnet.exe" build C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 28928, PPID: 46816 +[2026-06-05 17:31:42.475] [00007100] IsElevated: False +[2026-06-05 17:31:42.475] [00007100] Is64BitProcess: True +[2026-06-05 17:31:42.475] [00007100] RebootPending: True +[2026-06-05 17:31:42.475] [00007100] ProcessorArchitecture: amd64 +[2026-06-05 17:31:42.475] [00007100] HostArchitecture: x64 +[2026-06-05 17:31:42.475] [00007100] SdkDirectory: 10.0.201 +[2026-06-05 17:31:42.475] [00007100] VerifySignatures: False +[2026-06-05 17:31:42.475] [00007100] SDK feature band: 10.0.200 +[2026-06-05 17:31:43.746] [00007100] Shutting down +[2026-06-05 17:31:43.746] [00007100] Shutdown completed. +[2026-06-05 17:31:43.746] [00007100] Restart required: False +[2026-06-05 17:31:43.746] [00007100] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_29384_20260605_181306_737.log b/.opencode/tmp/Microsoft.NET.Workload_29384_20260605_181306_737.log new file mode 100644 index 0000000..cc596e1 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_29384_20260605_181306_737.log @@ -0,0 +1,14 @@ +[2026-06-05 18:13:06.740] [000072C8] === Logging started === +[2026-06-05 18:13:06.745] [000072C8] Executing: "C:\Program Files\dotnet\dotnet.exe" build C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 29384, PPID: 39976 +[2026-06-05 18:13:06.747] [000072C8] IsElevated: False +[2026-06-05 18:13:06.747] [000072C8] Is64BitProcess: True +[2026-06-05 18:13:06.747] [000072C8] RebootPending: True +[2026-06-05 18:13:06.747] [000072C8] ProcessorArchitecture: amd64 +[2026-06-05 18:13:06.747] [000072C8] HostArchitecture: x64 +[2026-06-05 18:13:06.747] [000072C8] SdkDirectory: 10.0.201 +[2026-06-05 18:13:06.747] [000072C8] VerifySignatures: False +[2026-06-05 18:13:06.747] [000072C8] SDK feature band: 10.0.200 +[2026-06-05 18:13:07.939] [000072C8] Shutting down +[2026-06-05 18:13:07.939] [000072C8] Shutdown completed. +[2026-06-05 18:13:07.939] [000072C8] Restart required: False +[2026-06-05 18:13:07.940] [000072C8] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_29816_20260605_171001_783.log b/.opencode/tmp/Microsoft.NET.Workload_29816_20260605_171001_783.log new file mode 100644 index 0000000..a2364a4 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_29816_20260605_171001_783.log @@ -0,0 +1,14 @@ +[2026-06-05 17:10:01.785] [00007478] === Logging started === +[2026-06-05 17:10:01.793] [00007478] Executing: "C:\Program Files\dotnet\dotnet.exe" build C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 29816, PPID: 33080 +[2026-06-05 17:10:01.795] [00007478] IsElevated: False +[2026-06-05 17:10:01.795] [00007478] Is64BitProcess: True +[2026-06-05 17:10:01.795] [00007478] RebootPending: True +[2026-06-05 17:10:01.795] [00007478] ProcessorArchitecture: amd64 +[2026-06-05 17:10:01.795] [00007478] HostArchitecture: x64 +[2026-06-05 17:10:01.795] [00007478] SdkDirectory: 10.0.201 +[2026-06-05 17:10:01.795] [00007478] VerifySignatures: False +[2026-06-05 17:10:01.795] [00007478] SDK feature band: 10.0.200 +[2026-06-05 17:10:03.211] [00007478] Shutting down +[2026-06-05 17:10:03.211] [00007478] Shutdown completed. +[2026-06-05 17:10:03.211] [00007478] Restart required: False +[2026-06-05 17:10:03.212] [00007478] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_31688_20260605_181453_776.log b/.opencode/tmp/Microsoft.NET.Workload_31688_20260605_181453_776.log new file mode 100644 index 0000000..602a944 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_31688_20260605_181453_776.log @@ -0,0 +1,14 @@ +[2026-06-05 18:14:53.778] [00007BC8] === Logging started === +[2026-06-05 18:14:53.784] [00007BC8] Executing: "C:\Program Files\dotnet\dotnet.exe" build src/GmRelay.DiscordBot/GmRelay.DiscordBot.csproj --no-restore, PID: 31688, PPID: 11656 +[2026-06-05 18:14:53.785] [00007BC8] IsElevated: False +[2026-06-05 18:14:53.785] [00007BC8] Is64BitProcess: True +[2026-06-05 18:14:53.785] [00007BC8] RebootPending: True +[2026-06-05 18:14:53.785] [00007BC8] ProcessorArchitecture: amd64 +[2026-06-05 18:14:53.785] [00007BC8] HostArchitecture: x64 +[2026-06-05 18:14:53.785] [00007BC8] SdkDirectory: 10.0.201 +[2026-06-05 18:14:53.785] [00007BC8] VerifySignatures: False +[2026-06-05 18:14:53.785] [00007BC8] SDK feature band: 10.0.200 +[2026-06-05 18:14:58.008] [00007BC8] Shutting down +[2026-06-05 18:14:58.008] [00007BC8] Shutdown completed. +[2026-06-05 18:14:58.008] [00007BC8] Restart required: False +[2026-06-05 18:14:58.008] [00007BC8] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_31832_20260605_173319_537.log b/.opencode/tmp/Microsoft.NET.Workload_31832_20260605_173319_537.log new file mode 100644 index 0000000..514b659 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_31832_20260605_173319_537.log @@ -0,0 +1,14 @@ +[2026-06-05 17:33:19.539] [00007C58] === Logging started === +[2026-06-05 17:33:19.545] [00007C58] Executing: "C:\Program Files\dotnet\dotnet.exe" build C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 31832, PPID: 47440 +[2026-06-05 17:33:19.548] [00007C58] IsElevated: False +[2026-06-05 17:33:19.548] [00007C58] Is64BitProcess: True +[2026-06-05 17:33:19.548] [00007C58] RebootPending: True +[2026-06-05 17:33:19.548] [00007C58] ProcessorArchitecture: amd64 +[2026-06-05 17:33:19.548] [00007C58] HostArchitecture: x64 +[2026-06-05 17:33:19.548] [00007C58] SdkDirectory: 10.0.201 +[2026-06-05 17:33:19.548] [00007C58] VerifySignatures: False +[2026-06-05 17:33:19.548] [00007C58] SDK feature band: 10.0.200 +[2026-06-05 17:33:20.840] [00007C58] Shutting down +[2026-06-05 17:33:20.840] [00007C58] Shutdown completed. +[2026-06-05 17:33:20.840] [00007C58] Restart required: False +[2026-06-05 17:33:20.840] [00007C58] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_31904_20260605_162527_270.log b/.opencode/tmp/Microsoft.NET.Workload_31904_20260605_162527_270.log new file mode 100644 index 0000000..0ca784b --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_31904_20260605_162527_270.log @@ -0,0 +1,14 @@ +[2026-06-05 16:25:27.272] [00007CA0] === Logging started === +[2026-06-05 16:25:27.278] [00007CA0] Executing: "C:\Program Files\dotnet\dotnet.exe" build D:\Projects\Game\GM-Relay.slnx, PID: 31904, PPID: 27480 +[2026-06-05 16:25:27.280] [00007CA0] IsElevated: False +[2026-06-05 16:25:27.280] [00007CA0] Is64BitProcess: True +[2026-06-05 16:25:27.280] [00007CA0] RebootPending: False +[2026-06-05 16:25:27.280] [00007CA0] ProcessorArchitecture: amd64 +[2026-06-05 16:25:27.280] [00007CA0] HostArchitecture: x64 +[2026-06-05 16:25:27.280] [00007CA0] SdkDirectory: 10.0.201 +[2026-06-05 16:25:27.280] [00007CA0] VerifySignatures: False +[2026-06-05 16:25:27.280] [00007CA0] SDK feature band: 10.0.200 +[2026-06-05 16:25:36.679] [00007CA0] Shutting down +[2026-06-05 16:25:36.680] [00007CA0] Shutdown completed. +[2026-06-05 16:25:36.680] [00007CA0] Restart required: False +[2026-06-05 16:25:36.680] [00007CA0] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_32416_20260605_181518_797.log b/.opencode/tmp/Microsoft.NET.Workload_32416_20260605_181518_797.log new file mode 100644 index 0000000..5964da4 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_32416_20260605_181518_797.log @@ -0,0 +1,14 @@ +[2026-06-05 18:15:18.800] [00007EA0] === Logging started === +[2026-06-05 18:15:18.805] [00007EA0] Executing: "C:\Program Files\dotnet\dotnet.exe" build C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 32416, PPID: 11752 +[2026-06-05 18:15:18.807] [00007EA0] IsElevated: False +[2026-06-05 18:15:18.807] [00007EA0] Is64BitProcess: True +[2026-06-05 18:15:18.807] [00007EA0] RebootPending: True +[2026-06-05 18:15:18.807] [00007EA0] ProcessorArchitecture: amd64 +[2026-06-05 18:15:18.807] [00007EA0] HostArchitecture: x64 +[2026-06-05 18:15:18.807] [00007EA0] SdkDirectory: 10.0.201 +[2026-06-05 18:15:18.807] [00007EA0] VerifySignatures: False +[2026-06-05 18:15:18.807] [00007EA0] SDK feature band: 10.0.200 +[2026-06-05 18:15:19.967] [00007EA0] Shutting down +[2026-06-05 18:15:19.967] [00007EA0] Shutdown completed. +[2026-06-05 18:15:19.967] [00007EA0] Restart required: False +[2026-06-05 18:15:19.967] [00007EA0] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_33652_20260605_180902_998.log b/.opencode/tmp/Microsoft.NET.Workload_33652_20260605_180902_998.log new file mode 100644 index 0000000..e69de29 diff --git a/.opencode/tmp/Microsoft.NET.Workload_33672_20260605_174142_238.log b/.opencode/tmp/Microsoft.NET.Workload_33672_20260605_174142_238.log new file mode 100644 index 0000000..35f9a21 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_33672_20260605_174142_238.log @@ -0,0 +1,14 @@ +[2026-06-05 17:41:42.240] [00008388] === Logging started === +[2026-06-05 17:41:42.246] [00008388] Executing: "C:\Program Files\dotnet\dotnet.exe" build src/GmRelay.DiscordBot/GmRelay.DiscordBot.csproj --no-restore, PID: 33672, PPID: 8688 +[2026-06-05 17:41:42.248] [00008388] IsElevated: False +[2026-06-05 17:41:42.248] [00008388] Is64BitProcess: True +[2026-06-05 17:41:42.248] [00008388] RebootPending: True +[2026-06-05 17:41:42.248] [00008388] ProcessorArchitecture: amd64 +[2026-06-05 17:41:42.248] [00008388] HostArchitecture: x64 +[2026-06-05 17:41:42.248] [00008388] SdkDirectory: 10.0.201 +[2026-06-05 17:41:42.248] [00008388] VerifySignatures: False +[2026-06-05 17:41:42.248] [00008388] SDK feature band: 10.0.200 +[2026-06-05 17:41:43.866] [00008388] Shutting down +[2026-06-05 17:41:43.866] [00008388] Shutdown completed. +[2026-06-05 17:41:43.866] [00008388] Restart required: False +[2026-06-05 17:41:43.866] [00008388] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_34180_20260605_182211_450.log b/.opencode/tmp/Microsoft.NET.Workload_34180_20260605_182211_450.log new file mode 100644 index 0000000..d2da5be --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_34180_20260605_182211_450.log @@ -0,0 +1,14 @@ +[2026-06-05 18:22:11.452] [00008584] === Logging started === +[2026-06-05 18:22:11.457] [00008584] Executing: "C:\Program Files\dotnet\dotnet.exe" build src/GmRelay.DiscordBot/GmRelay.DiscordBot.csproj --no-restore, PID: 34180, PPID: 12724 +[2026-06-05 18:22:11.459] [00008584] IsElevated: False +[2026-06-05 18:22:11.459] [00008584] Is64BitProcess: True +[2026-06-05 18:22:11.459] [00008584] RebootPending: True +[2026-06-05 18:22:11.459] [00008584] ProcessorArchitecture: amd64 +[2026-06-05 18:22:11.459] [00008584] HostArchitecture: x64 +[2026-06-05 18:22:11.459] [00008584] SdkDirectory: 10.0.201 +[2026-06-05 18:22:11.459] [00008584] VerifySignatures: False +[2026-06-05 18:22:11.459] [00008584] SDK feature band: 10.0.200 +[2026-06-05 18:22:13.223] [00008584] Shutting down +[2026-06-05 18:22:13.223] [00008584] Shutdown completed. +[2026-06-05 18:22:13.223] [00008584] Restart required: False +[2026-06-05 18:22:13.223] [00008584] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_34948_20260605_180153_301.log b/.opencode/tmp/Microsoft.NET.Workload_34948_20260605_180153_301.log new file mode 100644 index 0000000..27fb687 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_34948_20260605_180153_301.log @@ -0,0 +1,14 @@ +[2026-06-05 18:01:53.303] [00008884] === Logging started === +[2026-06-05 18:01:53.308] [00008884] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --filter FullyQualifiedName~Wizard --verbosity normal, PID: 34948, PPID: 44832 +[2026-06-05 18:01:53.310] [00008884] IsElevated: False +[2026-06-05 18:01:53.310] [00008884] Is64BitProcess: True +[2026-06-05 18:01:53.310] [00008884] RebootPending: True +[2026-06-05 18:01:53.310] [00008884] ProcessorArchitecture: amd64 +[2026-06-05 18:01:53.310] [00008884] HostArchitecture: x64 +[2026-06-05 18:01:53.310] [00008884] SdkDirectory: 10.0.201 +[2026-06-05 18:01:53.310] [00008884] VerifySignatures: False +[2026-06-05 18:01:53.310] [00008884] SDK feature band: 10.0.200 +[2026-06-05 18:02:03.797] [00008884] Shutting down +[2026-06-05 18:02:03.797] [00008884] Shutdown completed. +[2026-06-05 18:02:03.797] [00008884] Restart required: False +[2026-06-05 18:02:03.798] [00008884] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_35184_20260605_174908_974.log b/.opencode/tmp/Microsoft.NET.Workload_35184_20260605_174908_974.log new file mode 100644 index 0000000..763c436 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_35184_20260605_174908_974.log @@ -0,0 +1,14 @@ +[2026-06-05 17:49:08.976] [00008970] === Logging started === +[2026-06-05 17:49:08.982] [00008970] Executing: "C:\Program Files\dotnet\dotnet.exe" test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --no-build --filter FullyQualifiedName~Discord --verbosity minimal, PID: 35184, PPID: 46768 +[2026-06-05 17:49:08.984] [00008970] IsElevated: False +[2026-06-05 17:49:08.984] [00008970] Is64BitProcess: True +[2026-06-05 17:49:08.984] [00008970] RebootPending: True +[2026-06-05 17:49:08.984] [00008970] ProcessorArchitecture: amd64 +[2026-06-05 17:49:08.984] [00008970] HostArchitecture: x64 +[2026-06-05 17:49:08.984] [00008970] SdkDirectory: 10.0.201 +[2026-06-05 17:49:08.984] [00008970] VerifySignatures: False +[2026-06-05 17:49:08.984] [00008970] SDK feature band: 10.0.200 +[2026-06-05 17:49:10.588] [00008970] Shutting down +[2026-06-05 17:49:10.588] [00008970] Shutdown completed. +[2026-06-05 17:49:10.588] [00008970] Restart required: False +[2026-06-05 17:49:10.588] [00008970] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_36188_20260605_161544_382.log b/.opencode/tmp/Microsoft.NET.Workload_36188_20260605_161544_382.log new file mode 100644 index 0000000..dac5c15 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_36188_20260605_161544_382.log @@ -0,0 +1,14 @@ +[2026-06-05 16:15:44.384] [00008D5C] === Logging started === +[2026-06-05 16:15:44.390] [00008D5C] Executing: "C:\Program Files\dotnet\dotnet.exe" test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --no-restore --verbosity normal, PID: 36188, PPID: 47996 +[2026-06-05 16:15:44.391] [00008D5C] IsElevated: False +[2026-06-05 16:15:44.391] [00008D5C] Is64BitProcess: True +[2026-06-05 16:15:44.391] [00008D5C] RebootPending: False +[2026-06-05 16:15:44.391] [00008D5C] ProcessorArchitecture: amd64 +[2026-06-05 16:15:44.391] [00008D5C] HostArchitecture: x64 +[2026-06-05 16:15:44.391] [00008D5C] SdkDirectory: 10.0.201 +[2026-06-05 16:15:44.391] [00008D5C] VerifySignatures: False +[2026-06-05 16:15:44.391] [00008D5C] SDK feature band: 10.0.200 +[2026-06-05 16:16:04.727] [00008D5C] Shutting down +[2026-06-05 16:16:04.727] [00008D5C] Shutdown completed. +[2026-06-05 16:16:04.727] [00008D5C] Restart required: False +[2026-06-05 16:16:04.727] [00008D5C] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_36228_20260605_183550_173.log b/.opencode/tmp/Microsoft.NET.Workload_36228_20260605_183550_173.log new file mode 100644 index 0000000..30cea1c --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_36228_20260605_183550_173.log @@ -0,0 +1,14 @@ +[2026-06-05 18:35:50.175] [00008D84] === Logging started === +[2026-06-05 18:35:50.181] [00008D84] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj, PID: 36228, PPID: 40248 +[2026-06-05 18:35:50.183] [00008D84] IsElevated: False +[2026-06-05 18:35:50.183] [00008D84] Is64BitProcess: True +[2026-06-05 18:35:50.183] [00008D84] RebootPending: True +[2026-06-05 18:35:50.183] [00008D84] ProcessorArchitecture: amd64 +[2026-06-05 18:35:50.183] [00008D84] HostArchitecture: x64 +[2026-06-05 18:35:50.183] [00008D84] SdkDirectory: 10.0.201 +[2026-06-05 18:35:50.183] [00008D84] VerifySignatures: False +[2026-06-05 18:35:50.183] [00008D84] SDK feature band: 10.0.200 +[2026-06-05 18:36:12.002] [00008D84] Shutting down +[2026-06-05 18:36:12.002] [00008D84] Shutdown completed. +[2026-06-05 18:36:12.002] [00008D84] Restart required: False +[2026-06-05 18:36:12.002] [00008D84] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_3628_20260605_163528_722.log b/.opencode/tmp/Microsoft.NET.Workload_3628_20260605_163528_722.log new file mode 100644 index 0000000..5aa5d91 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_3628_20260605_163528_722.log @@ -0,0 +1,14 @@ +[2026-06-05 16:35:28.724] [00000E2C] === Logging started === +[2026-06-05 16:35:28.730] [00000E2C] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --filter FullyQualifiedName~UpdateRouter --verbosity minimal, PID: 3628, PPID: 28776 +[2026-06-05 16:35:28.732] [00000E2C] IsElevated: False +[2026-06-05 16:35:28.732] [00000E2C] Is64BitProcess: True +[2026-06-05 16:35:28.732] [00000E2C] RebootPending: True +[2026-06-05 16:35:28.732] [00000E2C] ProcessorArchitecture: amd64 +[2026-06-05 16:35:28.732] [00000E2C] HostArchitecture: x64 +[2026-06-05 16:35:28.732] [00000E2C] SdkDirectory: 10.0.201 +[2026-06-05 16:35:28.732] [00000E2C] VerifySignatures: False +[2026-06-05 16:35:28.732] [00000E2C] SDK feature band: 10.0.200 +[2026-06-05 16:35:33.753] [00000E2C] Shutting down +[2026-06-05 16:35:33.753] [00000E2C] Shutdown completed. +[2026-06-05 16:35:33.753] [00000E2C] Restart required: False +[2026-06-05 16:35:33.754] [00000E2C] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_36652_20260605_170542_688.log b/.opencode/tmp/Microsoft.NET.Workload_36652_20260605_170542_688.log new file mode 100644 index 0000000..60c737b --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_36652_20260605_170542_688.log @@ -0,0 +1,14 @@ +[2026-06-05 17:05:42.689] [00008F2C] === Logging started === +[2026-06-05 17:05:42.695] [00008F2C] Executing: "C:\Program Files\dotnet\dotnet.exe" run --project C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj -- C:\Users\hegin\.nuget\packages\netcord\1.0.0-alpha.489\lib\net10.0\NetCord.dll, PID: 36652, PPID: 45396 +[2026-06-05 17:05:42.696] [00008F2C] IsElevated: False +[2026-06-05 17:05:42.696] [00008F2C] Is64BitProcess: True +[2026-06-05 17:05:42.696] [00008F2C] RebootPending: True +[2026-06-05 17:05:42.696] [00008F2C] ProcessorArchitecture: amd64 +[2026-06-05 17:05:42.696] [00008F2C] HostArchitecture: x64 +[2026-06-05 17:05:42.696] [00008F2C] SdkDirectory: 10.0.201 +[2026-06-05 17:05:42.696] [00008F2C] VerifySignatures: False +[2026-06-05 17:05:42.696] [00008F2C] SDK feature band: 10.0.200 +[2026-06-05 17:05:43.996] [00008F2C] Shutting down +[2026-06-05 17:05:43.996] [00008F2C] Shutdown completed. +[2026-06-05 17:05:43.996] [00008F2C] Restart required: False +[2026-06-05 17:05:43.996] [00008F2C] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_36868_20260605_174240_311.log b/.opencode/tmp/Microsoft.NET.Workload_36868_20260605_174240_311.log new file mode 100644 index 0000000..311c1c5 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_36868_20260605_174240_311.log @@ -0,0 +1,14 @@ +[2026-06-05 17:42:40.314] [00009004] === Logging started === +[2026-06-05 17:42:40.322] [00009004] Executing: "C:\Program Files\dotnet\dotnet.exe" build --no-restore, PID: 36868, PPID: 23180 +[2026-06-05 17:42:40.324] [00009004] IsElevated: False +[2026-06-05 17:42:40.324] [00009004] Is64BitProcess: True +[2026-06-05 17:42:40.324] [00009004] RebootPending: True +[2026-06-05 17:42:40.324] [00009004] ProcessorArchitecture: amd64 +[2026-06-05 17:42:40.324] [00009004] HostArchitecture: x64 +[2026-06-05 17:42:40.324] [00009004] SdkDirectory: 10.0.201 +[2026-06-05 17:42:40.324] [00009004] VerifySignatures: False +[2026-06-05 17:42:40.324] [00009004] SDK feature band: 10.0.200 +[2026-06-05 17:42:45.620] [00009004] Shutting down +[2026-06-05 17:42:45.620] [00009004] Shutdown completed. +[2026-06-05 17:42:45.620] [00009004] Restart required: False +[2026-06-05 17:42:45.620] [00009004] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_37084_20260605_185628_754.log b/.opencode/tmp/Microsoft.NET.Workload_37084_20260605_185628_754.log new file mode 100644 index 0000000..36ea385 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_37084_20260605_185628_754.log @@ -0,0 +1,14 @@ +[2026-06-05 18:56:28.756] [000090DC] === Logging started === +[2026-06-05 18:56:28.762] [000090DC] Executing: "C:\Program Files\dotnet\dotnet.exe" build D:\Projects\Game\GM-Relay.slnx, PID: 37084, PPID: 29024 +[2026-06-05 18:56:28.764] [000090DC] IsElevated: False +[2026-06-05 18:56:28.764] [000090DC] Is64BitProcess: True +[2026-06-05 18:56:28.764] [000090DC] RebootPending: True +[2026-06-05 18:56:28.764] [000090DC] ProcessorArchitecture: amd64 +[2026-06-05 18:56:28.764] [000090DC] HostArchitecture: x64 +[2026-06-05 18:56:28.764] [000090DC] SdkDirectory: 10.0.201 +[2026-06-05 18:56:28.764] [000090DC] VerifySignatures: False +[2026-06-05 18:56:28.764] [000090DC] SDK feature band: 10.0.200 +[2026-06-05 18:56:40.335] [000090DC] Shutting down +[2026-06-05 18:56:40.335] [000090DC] Shutdown completed. +[2026-06-05 18:56:40.335] [000090DC] Restart required: False +[2026-06-05 18:56:40.335] [000090DC] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_38032_20260605_174317_987.log b/.opencode/tmp/Microsoft.NET.Workload_38032_20260605_174317_987.log new file mode 100644 index 0000000..191a4a8 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_38032_20260605_174317_987.log @@ -0,0 +1,14 @@ +[2026-06-05 17:43:17.990] [00009490] === Logging started === +[2026-06-05 17:43:17.997] [00009490] Executing: "C:\Program Files\dotnet\dotnet.exe" test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --no-build --verbosity normal --filter FullyQualifiedName~Wizard, PID: 38032, PPID: 2736 +[2026-06-05 17:43:17.999] [00009490] IsElevated: False +[2026-06-05 17:43:17.999] [00009490] Is64BitProcess: True +[2026-06-05 17:43:17.999] [00009490] RebootPending: True +[2026-06-05 17:43:17.999] [00009490] ProcessorArchitecture: amd64 +[2026-06-05 17:43:17.999] [00009490] HostArchitecture: x64 +[2026-06-05 17:43:17.999] [00009490] SdkDirectory: 10.0.201 +[2026-06-05 17:43:17.999] [00009490] VerifySignatures: False +[2026-06-05 17:43:17.999] [00009490] SDK feature band: 10.0.200 +[2026-06-05 17:43:26.128] [00009490] Shutting down +[2026-06-05 17:43:26.128] [00009490] Shutdown completed. +[2026-06-05 17:43:26.128] [00009490] Restart required: False +[2026-06-05 17:43:26.128] [00009490] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_38096_20260605_163517_231.log b/.opencode/tmp/Microsoft.NET.Workload_38096_20260605_163517_231.log new file mode 100644 index 0000000..4d9db9c --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_38096_20260605_163517_231.log @@ -0,0 +1,14 @@ +[2026-06-05 16:35:17.234] [000094D0] === Logging started === +[2026-06-05 16:35:17.241] [000094D0] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --filter FullyQualifiedName~GameCreationWizard --verbosity minimal, PID: 38096, PPID: 43368 +[2026-06-05 16:35:17.244] [000094D0] IsElevated: False +[2026-06-05 16:35:17.244] [000094D0] Is64BitProcess: True +[2026-06-05 16:35:17.244] [000094D0] RebootPending: True +[2026-06-05 16:35:17.244] [000094D0] ProcessorArchitecture: amd64 +[2026-06-05 16:35:17.244] [000094D0] HostArchitecture: x64 +[2026-06-05 16:35:17.244] [000094D0] SdkDirectory: 10.0.201 +[2026-06-05 16:35:17.244] [000094D0] VerifySignatures: False +[2026-06-05 16:35:17.244] [000094D0] SDK feature band: 10.0.200 +[2026-06-05 16:35:22.140] [000094D0] Shutting down +[2026-06-05 16:35:22.140] [000094D0] Shutdown completed. +[2026-06-05 16:35:22.140] [000094D0] Restart required: False +[2026-06-05 16:35:22.141] [000094D0] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_38616_20260605_173434_636.log b/.opencode/tmp/Microsoft.NET.Workload_38616_20260605_173434_636.log new file mode 100644 index 0000000..b9c181f --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_38616_20260605_173434_636.log @@ -0,0 +1,14 @@ +[2026-06-05 17:34:34.638] [000096D8] === Logging started === +[2026-06-05 17:34:34.645] [000096D8] Executing: "C:\Program Files\dotnet\dotnet.exe" build C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 38616, PPID: 24412 +[2026-06-05 17:34:34.646] [000096D8] IsElevated: False +[2026-06-05 17:34:34.646] [000096D8] Is64BitProcess: True +[2026-06-05 17:34:34.646] [000096D8] RebootPending: True +[2026-06-05 17:34:34.646] [000096D8] ProcessorArchitecture: amd64 +[2026-06-05 17:34:34.646] [000096D8] HostArchitecture: x64 +[2026-06-05 17:34:34.646] [000096D8] SdkDirectory: 10.0.201 +[2026-06-05 17:34:34.646] [000096D8] VerifySignatures: False +[2026-06-05 17:34:34.646] [000096D8] SDK feature band: 10.0.200 +[2026-06-05 17:34:36.067] [000096D8] Shutting down +[2026-06-05 17:34:36.067] [000096D8] Shutdown completed. +[2026-06-05 17:34:36.067] [000096D8] Restart required: False +[2026-06-05 17:34:36.067] [000096D8] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_38700_20260605_183519_502.log b/.opencode/tmp/Microsoft.NET.Workload_38700_20260605_183519_502.log new file mode 100644 index 0000000..2718550 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_38700_20260605_183519_502.log @@ -0,0 +1,14 @@ +[2026-06-05 18:35:19.504] [0000972C] === Logging started === +[2026-06-05 18:35:19.510] [0000972C] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --verbosity normal, PID: 38700, PPID: 22848 +[2026-06-05 18:35:19.512] [0000972C] IsElevated: False +[2026-06-05 18:35:19.512] [0000972C] Is64BitProcess: True +[2026-06-05 18:35:19.512] [0000972C] RebootPending: True +[2026-06-05 18:35:19.512] [0000972C] ProcessorArchitecture: amd64 +[2026-06-05 18:35:19.512] [0000972C] HostArchitecture: x64 +[2026-06-05 18:35:19.512] [0000972C] SdkDirectory: 10.0.201 +[2026-06-05 18:35:19.512] [0000972C] VerifySignatures: False +[2026-06-05 18:35:19.512] [0000972C] SDK feature band: 10.0.200 +[2026-06-05 18:35:41.365] [0000972C] Shutting down +[2026-06-05 18:35:41.365] [0000972C] Shutdown completed. +[2026-06-05 18:35:41.365] [0000972C] Restart required: False +[2026-06-05 18:35:41.365] [0000972C] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_38924_20260605_174226_198.log b/.opencode/tmp/Microsoft.NET.Workload_38924_20260605_174226_198.log new file mode 100644 index 0000000..9457937 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_38924_20260605_174226_198.log @@ -0,0 +1,14 @@ +[2026-06-05 17:42:26.200] [0000980C] === Logging started === +[2026-06-05 17:42:26.206] [0000980C] Executing: "C:\Program Files\dotnet\dotnet.exe" build src/GmRelay.DiscordBot/GmRelay.DiscordBot.csproj --no-restore, PID: 38924, PPID: 21396 +[2026-06-05 17:42:26.208] [0000980C] IsElevated: False +[2026-06-05 17:42:26.208] [0000980C] Is64BitProcess: True +[2026-06-05 17:42:26.208] [0000980C] RebootPending: True +[2026-06-05 17:42:26.208] [0000980C] ProcessorArchitecture: amd64 +[2026-06-05 17:42:26.208] [0000980C] HostArchitecture: x64 +[2026-06-05 17:42:26.208] [0000980C] SdkDirectory: 10.0.201 +[2026-06-05 17:42:26.208] [0000980C] VerifySignatures: False +[2026-06-05 17:42:26.208] [0000980C] SDK feature band: 10.0.200 +[2026-06-05 17:42:28.127] [0000980C] Shutting down +[2026-06-05 17:42:28.127] [0000980C] Shutdown completed. +[2026-06-05 17:42:28.127] [0000980C] Restart required: False +[2026-06-05 17:42:28.128] [0000980C] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_39016_20260605_173937_458.log b/.opencode/tmp/Microsoft.NET.Workload_39016_20260605_173937_458.log new file mode 100644 index 0000000..d21d787 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_39016_20260605_173937_458.log @@ -0,0 +1,14 @@ +[2026-06-05 17:39:37.460] [00009868] === Logging started === +[2026-06-05 17:39:37.467] [00009868] Executing: "C:\Program Files\dotnet\dotnet.exe" build src/GmRelay.DiscordBot/GmRelay.DiscordBot.csproj --no-restore, PID: 39016, PPID: 27944 +[2026-06-05 17:39:37.469] [00009868] IsElevated: False +[2026-06-05 17:39:37.469] [00009868] Is64BitProcess: True +[2026-06-05 17:39:37.469] [00009868] RebootPending: True +[2026-06-05 17:39:37.469] [00009868] ProcessorArchitecture: amd64 +[2026-06-05 17:39:37.469] [00009868] HostArchitecture: x64 +[2026-06-05 17:39:37.469] [00009868] SdkDirectory: 10.0.201 +[2026-06-05 17:39:37.469] [00009868] VerifySignatures: False +[2026-06-05 17:39:37.469] [00009868] SDK feature band: 10.0.200 +[2026-06-05 17:39:38.630] [00009868] Shutting down +[2026-06-05 17:39:38.630] [00009868] Shutdown completed. +[2026-06-05 17:39:38.630] [00009868] Restart required: False +[2026-06-05 17:39:38.630] [00009868] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_39228_20260605_162544_928.log b/.opencode/tmp/Microsoft.NET.Workload_39228_20260605_162544_928.log new file mode 100644 index 0000000..b0bd224 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_39228_20260605_162544_928.log @@ -0,0 +1,14 @@ +[2026-06-05 16:25:44.931] [0000993C] === Logging started === +[2026-06-05 16:25:44.937] [0000993C] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --filter FullyQualifiedName~Wizard --verbosity normal, PID: 39228, PPID: 21720 +[2026-06-05 16:25:44.939] [0000993C] IsElevated: False +[2026-06-05 16:25:44.939] [0000993C] Is64BitProcess: True +[2026-06-05 16:25:44.939] [0000993C] RebootPending: False +[2026-06-05 16:25:44.939] [0000993C] ProcessorArchitecture: amd64 +[2026-06-05 16:25:44.939] [0000993C] HostArchitecture: x64 +[2026-06-05 16:25:44.939] [0000993C] SdkDirectory: 10.0.201 +[2026-06-05 16:25:44.939] [0000993C] VerifySignatures: False +[2026-06-05 16:25:44.939] [0000993C] SDK feature band: 10.0.200 +[2026-06-05 16:25:56.955] [0000993C] Shutting down +[2026-06-05 16:25:56.956] [0000993C] Shutdown completed. +[2026-06-05 16:25:56.956] [0000993C] Restart required: False +[2026-06-05 16:25:56.956] [0000993C] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_39316_20260605_161650_972.log b/.opencode/tmp/Microsoft.NET.Workload_39316_20260605_161650_972.log new file mode 100644 index 0000000..2d13e0b --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_39316_20260605_161650_972.log @@ -0,0 +1,14 @@ +[2026-06-05 16:16:50.974] [00009994] === Logging started === +[2026-06-05 16:16:50.979] [00009994] Executing: "C:\Program Files\dotnet\dotnet.exe" test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --no-restore --filter FullyQualifiedName~Wizard|FullyQualifiedName~CreateSession --verbosity normal, PID: 39316, PPID: 50744 +[2026-06-05 16:16:50.981] [00009994] IsElevated: False +[2026-06-05 16:16:50.981] [00009994] Is64BitProcess: True +[2026-06-05 16:16:50.981] [00009994] RebootPending: False +[2026-06-05 16:16:50.981] [00009994] ProcessorArchitecture: amd64 +[2026-06-05 16:16:50.981] [00009994] HostArchitecture: x64 +[2026-06-05 16:16:50.981] [00009994] SdkDirectory: 10.0.201 +[2026-06-05 16:16:50.981] [00009994] VerifySignatures: False +[2026-06-05 16:16:50.981] [00009994] SDK feature band: 10.0.200 +[2026-06-05 16:17:00.143] [00009994] Shutting down +[2026-06-05 16:17:00.144] [00009994] Shutdown completed. +[2026-06-05 16:17:00.144] [00009994] Restart required: False +[2026-06-05 16:17:00.144] [00009994] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_39412_20260605_171059_764.log b/.opencode/tmp/Microsoft.NET.Workload_39412_20260605_171059_764.log new file mode 100644 index 0000000..a9e196d --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_39412_20260605_171059_764.log @@ -0,0 +1,14 @@ +[2026-06-05 17:10:59.766] [000099F4] === Logging started === +[2026-06-05 17:10:59.772] [000099F4] Executing: "C:\Program Files\dotnet\dotnet.exe" build C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 39412, PPID: 40776 +[2026-06-05 17:10:59.774] [000099F4] IsElevated: False +[2026-06-05 17:10:59.774] [000099F4] Is64BitProcess: True +[2026-06-05 17:10:59.774] [000099F4] RebootPending: True +[2026-06-05 17:10:59.774] [000099F4] ProcessorArchitecture: amd64 +[2026-06-05 17:10:59.774] [000099F4] HostArchitecture: x64 +[2026-06-05 17:10:59.774] [000099F4] SdkDirectory: 10.0.201 +[2026-06-05 17:10:59.774] [000099F4] VerifySignatures: False +[2026-06-05 17:10:59.774] [000099F4] SDK feature band: 10.0.200 +[2026-06-05 17:11:01.088] [000099F4] Shutting down +[2026-06-05 17:11:01.088] [000099F4] Shutdown completed. +[2026-06-05 17:11:01.088] [000099F4] Restart required: False +[2026-06-05 17:11:01.088] [000099F4] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_39696_20260605_225106_347.log b/.opencode/tmp/Microsoft.NET.Workload_39696_20260605_225106_347.log new file mode 100644 index 0000000..543b180 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_39696_20260605_225106_347.log @@ -0,0 +1,14 @@ +[2026-06-05 22:51:06.350] [00009B10] === Logging started === +[2026-06-05 22:51:06.355] [00009B10] Executing: "C:\Program Files\dotnet\dotnet.exe" build GM-Relay.slnx, PID: 39696, PPID: 11704 +[2026-06-05 22:51:06.356] [00009B10] IsElevated: False +[2026-06-05 22:51:06.356] [00009B10] Is64BitProcess: True +[2026-06-05 22:51:06.356] [00009B10] RebootPending: True +[2026-06-05 22:51:06.356] [00009B10] ProcessorArchitecture: amd64 +[2026-06-05 22:51:06.356] [00009B10] HostArchitecture: x64 +[2026-06-05 22:51:06.356] [00009B10] SdkDirectory: 10.0.201 +[2026-06-05 22:51:06.356] [00009B10] VerifySignatures: False +[2026-06-05 22:51:06.356] [00009B10] SDK feature band: 10.0.200 +[2026-06-05 22:51:14.688] [00009B10] Shutting down +[2026-06-05 22:51:14.688] [00009B10] Shutdown completed. +[2026-06-05 22:51:14.688] [00009B10] Restart required: False +[2026-06-05 22:51:14.688] [00009B10] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_41080_20260605_181557_301.log b/.opencode/tmp/Microsoft.NET.Workload_41080_20260605_181557_301.log new file mode 100644 index 0000000..e0a22d1 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_41080_20260605_181557_301.log @@ -0,0 +1,14 @@ +[2026-06-05 18:15:57.303] [0000A078] === Logging started === +[2026-06-05 18:15:57.309] [0000A078] Executing: "C:\Program Files\dotnet\dotnet.exe" build C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 41080, PPID: 49220 +[2026-06-05 18:15:57.311] [0000A078] IsElevated: False +[2026-06-05 18:15:57.311] [0000A078] Is64BitProcess: True +[2026-06-05 18:15:57.311] [0000A078] RebootPending: True +[2026-06-05 18:15:57.311] [0000A078] ProcessorArchitecture: amd64 +[2026-06-05 18:15:57.311] [0000A078] HostArchitecture: x64 +[2026-06-05 18:15:57.311] [0000A078] SdkDirectory: 10.0.201 +[2026-06-05 18:15:57.311] [0000A078] VerifySignatures: False +[2026-06-05 18:15:57.311] [0000A078] SDK feature band: 10.0.200 +[2026-06-05 18:15:58.461] [0000A078] Shutting down +[2026-06-05 18:15:58.461] [0000A078] Shutdown completed. +[2026-06-05 18:15:58.461] [0000A078] Restart required: False +[2026-06-05 18:15:58.461] [0000A078] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_4152_20260605_175609_645.log b/.opencode/tmp/Microsoft.NET.Workload_4152_20260605_175609_645.log new file mode 100644 index 0000000..3088546 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_4152_20260605_175609_645.log @@ -0,0 +1,14 @@ +[2026-06-05 17:56:09.647] [00001038] === Logging started === +[2026-06-05 17:56:09.652] [00001038] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --verbosity normal, PID: 4152, PPID: 17692 +[2026-06-05 17:56:09.653] [00001038] IsElevated: False +[2026-06-05 17:56:09.653] [00001038] Is64BitProcess: True +[2026-06-05 17:56:09.653] [00001038] RebootPending: True +[2026-06-05 17:56:09.653] [00001038] ProcessorArchitecture: amd64 +[2026-06-05 17:56:09.653] [00001038] HostArchitecture: x64 +[2026-06-05 17:56:09.653] [00001038] SdkDirectory: 10.0.201 +[2026-06-05 17:56:09.653] [00001038] VerifySignatures: False +[2026-06-05 17:56:09.653] [00001038] SDK feature band: 10.0.200 +[2026-06-05 17:56:31.508] [00001038] Shutting down +[2026-06-05 17:56:31.508] [00001038] Shutdown completed. +[2026-06-05 17:56:31.511] [00001038] Restart required: False +[2026-06-05 17:56:31.511] [00001038] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_41624_20260605_171030_175.log b/.opencode/tmp/Microsoft.NET.Workload_41624_20260605_171030_175.log new file mode 100644 index 0000000..c915b18 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_41624_20260605_171030_175.log @@ -0,0 +1,14 @@ +[2026-06-05 17:10:30.177] [0000A298] === Logging started === +[2026-06-05 17:10:30.183] [0000A298] Executing: "C:\Program Files\dotnet\dotnet.exe" build C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 41624, PPID: 44096 +[2026-06-05 17:10:30.185] [0000A298] IsElevated: False +[2026-06-05 17:10:30.185] [0000A298] Is64BitProcess: True +[2026-06-05 17:10:30.185] [0000A298] RebootPending: True +[2026-06-05 17:10:30.185] [0000A298] ProcessorArchitecture: amd64 +[2026-06-05 17:10:30.185] [0000A298] HostArchitecture: x64 +[2026-06-05 17:10:30.185] [0000A298] SdkDirectory: 10.0.201 +[2026-06-05 17:10:30.185] [0000A298] VerifySignatures: False +[2026-06-05 17:10:30.185] [0000A298] SDK feature band: 10.0.200 +[2026-06-05 17:10:31.555] [0000A298] Shutting down +[2026-06-05 17:10:31.555] [0000A298] Shutdown completed. +[2026-06-05 17:10:31.555] [0000A298] Restart required: False +[2026-06-05 17:10:31.556] [0000A298] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_41708_20260605_180142_541.log b/.opencode/tmp/Microsoft.NET.Workload_41708_20260605_180142_541.log new file mode 100644 index 0000000..891b56a --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_41708_20260605_180142_541.log @@ -0,0 +1,14 @@ +[2026-06-05 18:01:42.543] [0000A2EC] === Logging started === +[2026-06-05 18:01:42.548] [0000A2EC] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --filter FullyQualifiedName~Discord --verbosity normal, PID: 41708, PPID: 51888 +[2026-06-05 18:01:42.550] [0000A2EC] IsElevated: False +[2026-06-05 18:01:42.550] [0000A2EC] Is64BitProcess: True +[2026-06-05 18:01:42.550] [0000A2EC] RebootPending: True +[2026-06-05 18:01:42.550] [0000A2EC] ProcessorArchitecture: amd64 +[2026-06-05 18:01:42.550] [0000A2EC] HostArchitecture: x64 +[2026-06-05 18:01:42.550] [0000A2EC] SdkDirectory: 10.0.201 +[2026-06-05 18:01:42.550] [0000A2EC] VerifySignatures: False +[2026-06-05 18:01:42.550] [0000A2EC] SDK feature band: 10.0.200 +[2026-06-05 18:01:46.934] [0000A2EC] Shutting down +[2026-06-05 18:01:46.934] [0000A2EC] Shutdown completed. +[2026-06-05 18:01:46.934] [0000A2EC] Restart required: False +[2026-06-05 18:01:46.935] [0000A2EC] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_4220_20260605_170915_145.log b/.opencode/tmp/Microsoft.NET.Workload_4220_20260605_170915_145.log new file mode 100644 index 0000000..8e85a15 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_4220_20260605_170915_145.log @@ -0,0 +1,14 @@ +[2026-06-05 17:09:15.148] [0000107C] === Logging started === +[2026-06-05 17:09:15.154] [0000107C] Executing: "C:\Program Files\dotnet\dotnet.exe" build C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 4220, PPID: 25484 +[2026-06-05 17:09:15.156] [0000107C] IsElevated: False +[2026-06-05 17:09:15.156] [0000107C] Is64BitProcess: True +[2026-06-05 17:09:15.156] [0000107C] RebootPending: True +[2026-06-05 17:09:15.156] [0000107C] ProcessorArchitecture: amd64 +[2026-06-05 17:09:15.156] [0000107C] HostArchitecture: x64 +[2026-06-05 17:09:15.156] [0000107C] SdkDirectory: 10.0.201 +[2026-06-05 17:09:15.156] [0000107C] VerifySignatures: False +[2026-06-05 17:09:15.156] [0000107C] SDK feature band: 10.0.200 +[2026-06-05 17:09:16.477] [0000107C] Shutting down +[2026-06-05 17:09:16.478] [0000107C] Shutdown completed. +[2026-06-05 17:09:16.478] [0000107C] Restart required: False +[2026-06-05 17:09:16.478] [0000107C] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_42360_20260605_190152_885.log b/.opencode/tmp/Microsoft.NET.Workload_42360_20260605_190152_885.log new file mode 100644 index 0000000..be62945 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_42360_20260605_190152_885.log @@ -0,0 +1,14 @@ +[2026-06-05 19:01:52.887] [0000A578] === Logging started === +[2026-06-05 19:01:52.892] [0000A578] Executing: "C:\Program Files\dotnet\dotnet.exe" build D:\Projects\Game\src\GmRelay.DiscordBot\GmRelay.DiscordBot.csproj --no-restore, PID: 42360, PPID: 40448 +[2026-06-05 19:01:52.894] [0000A578] IsElevated: False +[2026-06-05 19:01:52.894] [0000A578] Is64BitProcess: True +[2026-06-05 19:01:52.894] [0000A578] RebootPending: True +[2026-06-05 19:01:52.894] [0000A578] ProcessorArchitecture: amd64 +[2026-06-05 19:01:52.894] [0000A578] HostArchitecture: x64 +[2026-06-05 19:01:52.894] [0000A578] SdkDirectory: 10.0.201 +[2026-06-05 19:01:52.894] [0000A578] VerifySignatures: False +[2026-06-05 19:01:52.894] [0000A578] SDK feature band: 10.0.200 +[2026-06-05 19:01:53.865] [0000A578] Shutting down +[2026-06-05 19:01:53.865] [0000A578] Shutdown completed. +[2026-06-05 19:01:53.865] [0000A578] Restart required: False +[2026-06-05 19:01:53.866] [0000A578] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_42576_20260605_183408_954.log b/.opencode/tmp/Microsoft.NET.Workload_42576_20260605_183408_954.log new file mode 100644 index 0000000..117bc45 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_42576_20260605_183408_954.log @@ -0,0 +1,14 @@ +[2026-06-05 18:34:08.956] [0000A650] === Logging started === +[2026-06-05 18:34:08.964] [0000A650] Executing: "C:\Program Files\dotnet\dotnet.exe" build D:\Projects\Game\GM-Relay.slnx, PID: 42576, PPID: 45456 +[2026-06-05 18:34:08.965] [0000A650] IsElevated: False +[2026-06-05 18:34:08.965] [0000A650] Is64BitProcess: True +[2026-06-05 18:34:08.965] [0000A650] RebootPending: True +[2026-06-05 18:34:08.965] [0000A650] ProcessorArchitecture: amd64 +[2026-06-05 18:34:08.965] [0000A650] HostArchitecture: x64 +[2026-06-05 18:34:08.965] [0000A650] SdkDirectory: 10.0.201 +[2026-06-05 18:34:08.965] [0000A650] VerifySignatures: False +[2026-06-05 18:34:08.965] [0000A650] SDK feature band: 10.0.200 +[2026-06-05 18:34:19.267] [0000A650] Shutting down +[2026-06-05 18:34:19.267] [0000A650] Shutdown completed. +[2026-06-05 18:34:19.267] [0000A650] Restart required: False +[2026-06-05 18:34:19.267] [0000A650] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_43196_20260605_170616_767.log b/.opencode/tmp/Microsoft.NET.Workload_43196_20260605_170616_767.log new file mode 100644 index 0000000..68cecca --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_43196_20260605_170616_767.log @@ -0,0 +1,14 @@ +[2026-06-05 17:06:16.769] [0000A8BC] === Logging started === +[2026-06-05 17:06:16.774] [0000A8BC] Executing: "C:\Program Files\dotnet\dotnet.exe" run --project C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj -- C:\Users\hegin\.nuget\packages\netcord.hosting.services\1.0.0-alpha.489\lib\net10.0\NetCord.Hosting.Services.dll, PID: 43196, PPID: 40692 +[2026-06-05 17:06:16.775] [0000A8BC] IsElevated: False +[2026-06-05 17:06:16.775] [0000A8BC] Is64BitProcess: True +[2026-06-05 17:06:16.775] [0000A8BC] RebootPending: True +[2026-06-05 17:06:16.775] [0000A8BC] ProcessorArchitecture: amd64 +[2026-06-05 17:06:16.775] [0000A8BC] HostArchitecture: x64 +[2026-06-05 17:06:16.775] [0000A8BC] SdkDirectory: 10.0.201 +[2026-06-05 17:06:16.775] [0000A8BC] VerifySignatures: False +[2026-06-05 17:06:16.775] [0000A8BC] SDK feature band: 10.0.200 +[2026-06-05 17:06:18.844] [0000A8BC] Shutting down +[2026-06-05 17:06:18.844] [0000A8BC] Shutdown completed. +[2026-06-05 17:06:18.844] [0000A8BC] Restart required: False +[2026-06-05 17:06:18.844] [0000A8BC] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_43296_20260605_183426_811.log b/.opencode/tmp/Microsoft.NET.Workload_43296_20260605_183426_811.log new file mode 100644 index 0000000..4313e18 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_43296_20260605_183426_811.log @@ -0,0 +1,14 @@ +[2026-06-05 18:34:26.812] [0000A920] === Logging started === +[2026-06-05 18:34:26.819] [0000A920] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --filter FullyQualifiedName~Discord|FullyQualifiedName~Wizard --verbosity normal, PID: 43296, PPID: 2564 +[2026-06-05 18:34:26.821] [0000A920] IsElevated: False +[2026-06-05 18:34:26.821] [0000A920] Is64BitProcess: True +[2026-06-05 18:34:26.821] [0000A920] RebootPending: True +[2026-06-05 18:34:26.821] [0000A920] ProcessorArchitecture: amd64 +[2026-06-05 18:34:26.821] [0000A920] HostArchitecture: x64 +[2026-06-05 18:34:26.821] [0000A920] SdkDirectory: 10.0.201 +[2026-06-05 18:34:26.821] [0000A920] VerifySignatures: False +[2026-06-05 18:34:26.821] [0000A920] SDK feature band: 10.0.200 +[2026-06-05 18:34:38.182] [0000A920] Shutting down +[2026-06-05 18:34:38.182] [0000A920] Shutdown completed. +[2026-06-05 18:34:38.182] [0000A920] Restart required: False +[2026-06-05 18:34:38.182] [0000A920] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_43596_20260605_184930_759.log b/.opencode/tmp/Microsoft.NET.Workload_43596_20260605_184930_759.log new file mode 100644 index 0000000..0e3bee6 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_43596_20260605_184930_759.log @@ -0,0 +1,14 @@ +[2026-06-05 18:49:30.761] [0000AA4C] === Logging started === +[2026-06-05 18:49:30.766] [0000AA4C] Executing: "C:\Program Files\dotnet\dotnet.exe" build src/GmRelay.DiscordBot/GmRelay.DiscordBot.csproj --no-restore, PID: 43596, PPID: 16096 +[2026-06-05 18:49:30.768] [0000AA4C] IsElevated: False +[2026-06-05 18:49:30.768] [0000AA4C] Is64BitProcess: True +[2026-06-05 18:49:30.768] [0000AA4C] RebootPending: True +[2026-06-05 18:49:30.768] [0000AA4C] ProcessorArchitecture: amd64 +[2026-06-05 18:49:30.768] [0000AA4C] HostArchitecture: x64 +[2026-06-05 18:49:30.768] [0000AA4C] SdkDirectory: 10.0.201 +[2026-06-05 18:49:30.768] [0000AA4C] VerifySignatures: False +[2026-06-05 18:49:30.768] [0000AA4C] SDK feature band: 10.0.200 +[2026-06-05 18:49:37.601] [0000AA4C] Shutting down +[2026-06-05 18:49:37.601] [0000AA4C] Shutdown completed. +[2026-06-05 18:49:37.601] [0000AA4C] Restart required: False +[2026-06-05 18:49:37.601] [0000AA4C] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_44300_20260605_170406_592.log b/.opencode/tmp/Microsoft.NET.Workload_44300_20260605_170406_592.log new file mode 100644 index 0000000..56b8187 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_44300_20260605_170406_592.log @@ -0,0 +1,14 @@ +[2026-06-05 17:04:06.593] [0000AD0C] === Logging started === +[2026-06-05 17:04:06.598] [0000AD0C] Executing: "C:\Program Files\dotnet\dotnet.exe" run --project C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj -- C:\Users\hegin\.nuget\packages\netcord.hosting\1.0.0-alpha.489\lib\net10.0\NetCord.Hosting.dll, PID: 44300, PPID: 45920 +[2026-06-05 17:04:06.599] [0000AD0C] IsElevated: False +[2026-06-05 17:04:06.599] [0000AD0C] Is64BitProcess: True +[2026-06-05 17:04:06.599] [0000AD0C] RebootPending: True +[2026-06-05 17:04:06.599] [0000AD0C] ProcessorArchitecture: amd64 +[2026-06-05 17:04:06.599] [0000AD0C] HostArchitecture: x64 +[2026-06-05 17:04:06.599] [0000AD0C] SdkDirectory: 10.0.201 +[2026-06-05 17:04:06.599] [0000AD0C] VerifySignatures: False +[2026-06-05 17:04:06.599] [0000AD0C] SDK feature band: 10.0.200 +[2026-06-05 17:04:12.357] [0000AD0C] Shutting down +[2026-06-05 17:04:12.357] [0000AD0C] Shutdown completed. +[2026-06-05 17:04:12.357] [0000AD0C] Restart required: False +[2026-06-05 17:04:12.357] [0000AD0C] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_444_20260605_161133_094.log b/.opencode/tmp/Microsoft.NET.Workload_444_20260605_161133_094.log new file mode 100644 index 0000000..dd27a85 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_444_20260605_161133_094.log @@ -0,0 +1,17 @@ +[2026-06-05 16:11:33.096] [000001BC] === Logging started === +[2026-06-05 16:11:33.101] [000001BC] Executing: "C:\Program Files\dotnet\dotnet.exe" build src/GmRelay.Shared/GmRelay.Shared.csproj --no-restore, PID: 444, PPID: 40188 +[2026-06-05 16:11:33.103] [000001BC] IsElevated: False +[2026-06-05 16:11:33.103] [000001BC] Is64BitProcess: True +[2026-06-05 16:11:33.103] [000001BC] RebootPending: False +[2026-06-05 16:11:33.103] [000001BC] ProcessorArchitecture: amd64 +[2026-06-05 16:11:33.103] [000001BC] HostArchitecture: x64 +[2026-06-05 16:11:33.103] [000001BC] SdkDirectory: 10.0.201 +[2026-06-05 16:11:33.103] [000001BC] VerifySignatures: False +[2026-06-05 16:11:33.103] [000001BC] SDK feature band: 10.0.200 +[2026-06-05 16:11:35.504] [000001BC] ExtractManifestAsync: Extracting 'D:\Projects\Game\.opencode\tmp\qo5ixfl3.gsl\microsoft.net.workloads.10.0.200.msi.x64\10.204.1\microsoft.net.workloads.10.0.200.msi.x64.10.204.1.nupkg' to 'C:\Users\hegin\.dotnet\sdk-advertising\10.0.200\microsoft.net.workloads' +[2026-06-05 16:11:35.504] [000001BC] ExtractManifestAsync: Temporary extraction path: 'D:\Projects\Game\.opencode\tmp\tuqret44.3nm' +[2026-06-05 16:11:35.532] [000001BC] ExtractManifestAsync: Running admin install for 'D:\Projects\Game\.opencode\tmp\tuqret44.3nm\msi'. Log file: 'D:\Projects\Game\.opencode\tmp\Microsoft.NET.Workload_444_20260605_161133_094_6d04ff7414ee9b159039c852b47a0121-x64_AdminInstall.log' +[2026-06-05 16:11:41.204] [000001BC] Shutting down +[2026-06-05 16:11:41.204] [000001BC] Shutdown completed. +[2026-06-05 16:11:41.204] [000001BC] Restart required: False +[2026-06-05 16:11:41.204] [000001BC] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_444_20260605_161133_094_6d04ff7414ee9b159039c852b47a0121-x64_AdminInstall.log b/.opencode/tmp/Microsoft.NET.Workload_444_20260605_161133_094_6d04ff7414ee9b159039c852b47a0121-x64_AdminInstall.log new file mode 100644 index 0000000..8355782 Binary files /dev/null and b/.opencode/tmp/Microsoft.NET.Workload_444_20260605_161133_094_6d04ff7414ee9b159039c852b47a0121-x64_AdminInstall.log differ diff --git a/.opencode/tmp/Microsoft.NET.Workload_45172_20260605_173059_263.log b/.opencode/tmp/Microsoft.NET.Workload_45172_20260605_173059_263.log new file mode 100644 index 0000000..43a9948 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_45172_20260605_173059_263.log @@ -0,0 +1,14 @@ +[2026-06-05 17:30:59.266] [0000B074] === Logging started === +[2026-06-05 17:30:59.273] [0000B074] Executing: "C:\Program Files\dotnet\dotnet.exe" build C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 45172, PPID: 16872 +[2026-06-05 17:30:59.275] [0000B074] IsElevated: False +[2026-06-05 17:30:59.275] [0000B074] Is64BitProcess: True +[2026-06-05 17:30:59.275] [0000B074] RebootPending: True +[2026-06-05 17:30:59.275] [0000B074] ProcessorArchitecture: amd64 +[2026-06-05 17:30:59.275] [0000B074] HostArchitecture: x64 +[2026-06-05 17:30:59.275] [0000B074] SdkDirectory: 10.0.201 +[2026-06-05 17:30:59.275] [0000B074] VerifySignatures: False +[2026-06-05 17:30:59.275] [0000B074] SDK feature band: 10.0.200 +[2026-06-05 17:31:00.977] [0000B074] Shutting down +[2026-06-05 17:31:00.977] [0000B074] Shutdown completed. +[2026-06-05 17:31:00.977] [0000B074] Restart required: False +[2026-06-05 17:31:00.978] [0000B074] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_45584_20260605_170227_383.log b/.opencode/tmp/Microsoft.NET.Workload_45584_20260605_170227_383.log new file mode 100644 index 0000000..3c9db0c --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_45584_20260605_170227_383.log @@ -0,0 +1,14 @@ +[2026-06-05 17:02:27.385] [0000B210] === Logging started === +[2026-06-05 17:02:27.394] [0000B210] Executing: "C:\Program Files\dotnet\dotnet.exe" run --project C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj -- C:\Users\hegin\.nuget\packages\netcord\1.0.0-alpha.489\lib\net10.0\NetCord.dll, PID: 45584, PPID: 2236 +[2026-06-05 17:02:27.395] [0000B210] IsElevated: False +[2026-06-05 17:02:27.395] [0000B210] Is64BitProcess: True +[2026-06-05 17:02:27.395] [0000B210] RebootPending: True +[2026-06-05 17:02:27.395] [0000B210] ProcessorArchitecture: amd64 +[2026-06-05 17:02:27.395] [0000B210] HostArchitecture: x64 +[2026-06-05 17:02:27.395] [0000B210] SdkDirectory: 10.0.201 +[2026-06-05 17:02:27.395] [0000B210] VerifySignatures: False +[2026-06-05 17:02:27.395] [0000B210] SDK feature band: 10.0.200 +[2026-06-05 17:02:29.224] [0000B210] Shutting down +[2026-06-05 17:02:29.224] [0000B210] Shutdown completed. +[2026-06-05 17:02:29.224] [0000B210] Restart required: False +[2026-06-05 17:02:29.225] [0000B210] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_45680_20260605_170251_998.log b/.opencode/tmp/Microsoft.NET.Workload_45680_20260605_170251_998.log new file mode 100644 index 0000000..b6d77f6 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_45680_20260605_170251_998.log @@ -0,0 +1,14 @@ +[2026-06-05 17:02:52.021] [0000B270] === Logging started === +[2026-06-05 17:02:52.026] [0000B270] Executing: "C:\Program Files\dotnet\dotnet.exe" run --project C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj -- C:\Users\hegin\.nuget\packages\netcord\1.0.0-alpha.489\lib\net10.0\NetCord.dll, PID: 45680, PPID: 50124 +[2026-06-05 17:02:52.027] [0000B270] IsElevated: False +[2026-06-05 17:02:52.027] [0000B270] Is64BitProcess: True +[2026-06-05 17:02:52.027] [0000B270] RebootPending: True +[2026-06-05 17:02:52.027] [0000B270] ProcessorArchitecture: amd64 +[2026-06-05 17:02:52.027] [0000B270] HostArchitecture: x64 +[2026-06-05 17:02:52.027] [0000B270] SdkDirectory: 10.0.201 +[2026-06-05 17:02:52.027] [0000B270] VerifySignatures: False +[2026-06-05 17:02:52.027] [0000B270] SDK feature band: 10.0.200 +[2026-06-05 17:02:53.627] [0000B270] Shutting down +[2026-06-05 17:02:53.627] [0000B270] Shutdown completed. +[2026-06-05 17:02:53.627] [0000B270] Restart required: False +[2026-06-05 17:02:53.628] [0000B270] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_45920_20260605_182917_018.log b/.opencode/tmp/Microsoft.NET.Workload_45920_20260605_182917_018.log new file mode 100644 index 0000000..fe6b913 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_45920_20260605_182917_018.log @@ -0,0 +1,14 @@ +[2026-06-05 18:29:17.021] [0000B360] === Logging started === +[2026-06-05 18:29:17.026] [0000B360] Executing: "C:\Program Files\dotnet\dotnet.exe" test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --no-build --filter FullyQualifiedName~Discord|FullyQualifiedName~Wizard --verbosity minimal, PID: 45920, PPID: 52800 +[2026-06-05 18:29:17.028] [0000B360] IsElevated: False +[2026-06-05 18:29:17.028] [0000B360] Is64BitProcess: True +[2026-06-05 18:29:17.028] [0000B360] RebootPending: True +[2026-06-05 18:29:17.028] [0000B360] ProcessorArchitecture: amd64 +[2026-06-05 18:29:17.028] [0000B360] HostArchitecture: x64 +[2026-06-05 18:29:17.028] [0000B360] SdkDirectory: 10.0.201 +[2026-06-05 18:29:17.028] [0000B360] VerifySignatures: False +[2026-06-05 18:29:17.028] [0000B360] SDK feature band: 10.0.200 +[2026-06-05 18:29:24.398] [0000B360] Shutting down +[2026-06-05 18:29:24.398] [0000B360] Shutdown completed. +[2026-06-05 18:29:24.398] [0000B360] Restart required: False +[2026-06-05 18:29:24.399] [0000B360] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_46156_20260605_174853_288.log b/.opencode/tmp/Microsoft.NET.Workload_46156_20260605_174853_288.log new file mode 100644 index 0000000..0f25eaa --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_46156_20260605_174853_288.log @@ -0,0 +1,14 @@ +[2026-06-05 17:48:53.290] [0000B44C] === Logging started === +[2026-06-05 17:48:53.295] [0000B44C] Executing: "C:\Program Files\dotnet\dotnet.exe" build src/GmRelay.DiscordBot/GmRelay.DiscordBot.csproj --no-restore, PID: 46156, PPID: 31464 +[2026-06-05 17:48:53.297] [0000B44C] IsElevated: False +[2026-06-05 17:48:53.297] [0000B44C] Is64BitProcess: True +[2026-06-05 17:48:53.297] [0000B44C] RebootPending: True +[2026-06-05 17:48:53.297] [0000B44C] ProcessorArchitecture: amd64 +[2026-06-05 17:48:53.297] [0000B44C] HostArchitecture: x64 +[2026-06-05 17:48:53.297] [0000B44C] SdkDirectory: 10.0.201 +[2026-06-05 17:48:53.297] [0000B44C] VerifySignatures: False +[2026-06-05 17:48:53.297] [0000B44C] SDK feature band: 10.0.200 +[2026-06-05 17:48:55.196] [0000B44C] Shutting down +[2026-06-05 17:48:55.196] [0000B44C] Shutdown completed. +[2026-06-05 17:48:55.196] [0000B44C] Restart required: False +[2026-06-05 17:48:55.196] [0000B44C] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_46312_20260605_170805_821.log b/.opencode/tmp/Microsoft.NET.Workload_46312_20260605_170805_821.log new file mode 100644 index 0000000..ef04b03 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_46312_20260605_170805_821.log @@ -0,0 +1,14 @@ +[2026-06-05 17:08:05.823] [0000B4E8] === Logging started === +[2026-06-05 17:08:05.829] [0000B4E8] Executing: "C:\Program Files\dotnet\dotnet.exe" run --project C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 46312, PPID: 27660 +[2026-06-05 17:08:05.830] [0000B4E8] IsElevated: False +[2026-06-05 17:08:05.830] [0000B4E8] Is64BitProcess: True +[2026-06-05 17:08:05.830] [0000B4E8] RebootPending: True +[2026-06-05 17:08:05.830] [0000B4E8] ProcessorArchitecture: amd64 +[2026-06-05 17:08:05.830] [0000B4E8] HostArchitecture: x64 +[2026-06-05 17:08:05.830] [0000B4E8] SdkDirectory: 10.0.201 +[2026-06-05 17:08:05.830] [0000B4E8] VerifySignatures: False +[2026-06-05 17:08:05.830] [0000B4E8] SDK feature band: 10.0.200 +[2026-06-05 17:08:07.196] [0000B4E8] Shutting down +[2026-06-05 17:08:07.196] [0000B4E8] Shutdown completed. +[2026-06-05 17:08:07.196] [0000B4E8] Restart required: False +[2026-06-05 17:08:07.196] [0000B4E8] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_46840_20260605_163704_953.log b/.opencode/tmp/Microsoft.NET.Workload_46840_20260605_163704_953.log new file mode 100644 index 0000000..8a57711 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_46840_20260605_163704_953.log @@ -0,0 +1,14 @@ +[2026-06-05 16:37:04.955] [0000B6F8] === Logging started === +[2026-06-05 16:37:04.960] [0000B6F8] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --filter FullyQualifiedName~WizardDraftRepository --verbosity minimal, PID: 46840, PPID: 23100 +[2026-06-05 16:37:04.962] [0000B6F8] IsElevated: False +[2026-06-05 16:37:04.962] [0000B6F8] Is64BitProcess: True +[2026-06-05 16:37:04.962] [0000B6F8] RebootPending: True +[2026-06-05 16:37:04.962] [0000B6F8] ProcessorArchitecture: amd64 +[2026-06-05 16:37:04.962] [0000B6F8] HostArchitecture: x64 +[2026-06-05 16:37:04.962] [0000B6F8] SdkDirectory: 10.0.201 +[2026-06-05 16:37:04.962] [0000B6F8] VerifySignatures: False +[2026-06-05 16:37:04.962] [0000B6F8] SDK feature band: 10.0.200 +[2026-06-05 16:37:15.684] [0000B6F8] Shutting down +[2026-06-05 16:37:15.684] [0000B6F8] Shutdown completed. +[2026-06-05 16:37:15.684] [0000B6F8] Restart required: False +[2026-06-05 16:37:15.684] [0000B6F8] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_47408_20260605_173117_980.log b/.opencode/tmp/Microsoft.NET.Workload_47408_20260605_173117_980.log new file mode 100644 index 0000000..0723172 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_47408_20260605_173117_980.log @@ -0,0 +1,14 @@ +[2026-06-05 17:31:17.983] [0000B930] === Logging started === +[2026-06-05 17:31:17.989] [0000B930] Executing: "C:\Program Files\dotnet\dotnet.exe" build C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 47408, PPID: 48748 +[2026-06-05 17:31:17.991] [0000B930] IsElevated: False +[2026-06-05 17:31:17.991] [0000B930] Is64BitProcess: True +[2026-06-05 17:31:17.991] [0000B930] RebootPending: True +[2026-06-05 17:31:17.991] [0000B930] ProcessorArchitecture: amd64 +[2026-06-05 17:31:17.991] [0000B930] HostArchitecture: x64 +[2026-06-05 17:31:17.991] [0000B930] SdkDirectory: 10.0.201 +[2026-06-05 17:31:17.991] [0000B930] VerifySignatures: False +[2026-06-05 17:31:17.991] [0000B930] SDK feature band: 10.0.200 +[2026-06-05 17:31:19.229] [0000B930] Shutting down +[2026-06-05 17:31:19.229] [0000B930] Shutdown completed. +[2026-06-05 17:31:19.229] [0000B930] Restart required: False +[2026-06-05 17:31:19.230] [0000B930] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_47688_20260605_173249_460.log b/.opencode/tmp/Microsoft.NET.Workload_47688_20260605_173249_460.log new file mode 100644 index 0000000..ee57068 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_47688_20260605_173249_460.log @@ -0,0 +1,14 @@ +[2026-06-05 17:32:49.462] [0000BA48] === Logging started === +[2026-06-05 17:32:49.468] [0000BA48] Executing: "C:\Program Files\dotnet\dotnet.exe" build C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 47688, PPID: 8980 +[2026-06-05 17:32:49.470] [0000BA48] IsElevated: False +[2026-06-05 17:32:49.470] [0000BA48] Is64BitProcess: True +[2026-06-05 17:32:49.470] [0000BA48] RebootPending: True +[2026-06-05 17:32:49.470] [0000BA48] ProcessorArchitecture: amd64 +[2026-06-05 17:32:49.470] [0000BA48] HostArchitecture: x64 +[2026-06-05 17:32:49.470] [0000BA48] SdkDirectory: 10.0.201 +[2026-06-05 17:32:49.470] [0000BA48] VerifySignatures: False +[2026-06-05 17:32:49.470] [0000BA48] SDK feature band: 10.0.200 +[2026-06-05 17:32:50.712] [0000BA48] Shutting down +[2026-06-05 17:32:50.712] [0000BA48] Shutdown completed. +[2026-06-05 17:32:50.712] [0000BA48] Restart required: False +[2026-06-05 17:32:50.712] [0000BA48] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_47872_20260605_170557_797.log b/.opencode/tmp/Microsoft.NET.Workload_47872_20260605_170557_797.log new file mode 100644 index 0000000..0e92258 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_47872_20260605_170557_797.log @@ -0,0 +1,14 @@ +[2026-06-05 17:05:57.799] [0000BB00] === Logging started === +[2026-06-05 17:05:57.804] [0000BB00] Executing: "C:\Program Files\dotnet\dotnet.exe" run --project C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj -- C:\Users\hegin\.nuget\packages\netcord\1.0.0-alpha.489\lib\net10.0\NetCord.dll, PID: 47872, PPID: 41632 +[2026-06-05 17:05:57.805] [0000BB00] IsElevated: False +[2026-06-05 17:05:57.805] [0000BB00] Is64BitProcess: True +[2026-06-05 17:05:57.805] [0000BB00] RebootPending: True +[2026-06-05 17:05:57.805] [0000BB00] ProcessorArchitecture: amd64 +[2026-06-05 17:05:57.805] [0000BB00] HostArchitecture: x64 +[2026-06-05 17:05:57.805] [0000BB00] SdkDirectory: 10.0.201 +[2026-06-05 17:05:57.805] [0000BB00] VerifySignatures: False +[2026-06-05 17:05:57.805] [0000BB00] SDK feature band: 10.0.200 +[2026-06-05 17:05:59.512] [0000BB00] Shutting down +[2026-06-05 17:05:59.512] [0000BB00] Shutdown completed. +[2026-06-05 17:05:59.512] [0000BB00] Restart required: False +[2026-06-05 17:05:59.513] [0000BB00] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_48568_20260605_170310_919.log b/.opencode/tmp/Microsoft.NET.Workload_48568_20260605_170310_919.log new file mode 100644 index 0000000..7d3b8cb --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_48568_20260605_170310_919.log @@ -0,0 +1,14 @@ +[2026-06-05 17:03:10.921] [0000BDB8] === Logging started === +[2026-06-05 17:03:10.926] [0000BDB8] Executing: "C:\Program Files\dotnet\dotnet.exe" run --project C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj -- C:\Users\hegin\.nuget\packages\netcord\1.0.0-alpha.489\lib\net10.0\NetCord.dll, PID: 48568, PPID: 51544 +[2026-06-05 17:03:10.927] [0000BDB8] IsElevated: False +[2026-06-05 17:03:10.927] [0000BDB8] Is64BitProcess: True +[2026-06-05 17:03:10.927] [0000BDB8] RebootPending: True +[2026-06-05 17:03:10.927] [0000BDB8] ProcessorArchitecture: amd64 +[2026-06-05 17:03:10.927] [0000BDB8] HostArchitecture: x64 +[2026-06-05 17:03:10.927] [0000BDB8] SdkDirectory: 10.0.201 +[2026-06-05 17:03:10.927] [0000BDB8] VerifySignatures: False +[2026-06-05 17:03:10.927] [0000BDB8] SDK feature band: 10.0.200 +[2026-06-05 17:03:12.474] [0000BDB8] Shutting down +[2026-06-05 17:03:12.474] [0000BDB8] Shutdown completed. +[2026-06-05 17:03:12.474] [0000BDB8] Restart required: False +[2026-06-05 17:03:12.475] [0000BDB8] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_48888_20260605_170830_821.log b/.opencode/tmp/Microsoft.NET.Workload_48888_20260605_170830_821.log new file mode 100644 index 0000000..8502edd --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_48888_20260605_170830_821.log @@ -0,0 +1,14 @@ +[2026-06-05 17:08:30.823] [0000BEF8] === Logging started === +[2026-06-05 17:08:30.829] [0000BEF8] Executing: "C:\Program Files\dotnet\dotnet.exe" build C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 48888, PPID: 43612 +[2026-06-05 17:08:30.831] [0000BEF8] IsElevated: False +[2026-06-05 17:08:30.831] [0000BEF8] Is64BitProcess: True +[2026-06-05 17:08:30.831] [0000BEF8] RebootPending: True +[2026-06-05 17:08:30.831] [0000BEF8] ProcessorArchitecture: amd64 +[2026-06-05 17:08:30.831] [0000BEF8] HostArchitecture: x64 +[2026-06-05 17:08:30.831] [0000BEF8] SdkDirectory: 10.0.201 +[2026-06-05 17:08:30.831] [0000BEF8] VerifySignatures: False +[2026-06-05 17:08:30.831] [0000BEF8] SDK feature band: 10.0.200 +[2026-06-05 17:08:31.853] [0000BEF8] Shutting down +[2026-06-05 17:08:31.853] [0000BEF8] Shutdown completed. +[2026-06-05 17:08:31.853] [0000BEF8] Restart required: False +[2026-06-05 17:08:31.853] [0000BEF8] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_48960_20260605_175644_265.log b/.opencode/tmp/Microsoft.NET.Workload_48960_20260605_175644_265.log new file mode 100644 index 0000000..7a5a09e --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_48960_20260605_175644_265.log @@ -0,0 +1,14 @@ +[2026-06-05 17:56:44.267] [0000BF40] === Logging started === +[2026-06-05 17:56:44.273] [0000BF40] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --filter FullyQualifiedName~CampaignTemplatesNavigationTests --verbosity normal, PID: 48960, PPID: 35736 +[2026-06-05 17:56:44.274] [0000BF40] IsElevated: False +[2026-06-05 17:56:44.275] [0000BF40] Is64BitProcess: True +[2026-06-05 17:56:44.275] [0000BF40] RebootPending: True +[2026-06-05 17:56:44.275] [0000BF40] ProcessorArchitecture: amd64 +[2026-06-05 17:56:44.275] [0000BF40] HostArchitecture: x64 +[2026-06-05 17:56:44.275] [0000BF40] SdkDirectory: 10.0.201 +[2026-06-05 17:56:44.275] [0000BF40] VerifySignatures: False +[2026-06-05 17:56:44.275] [0000BF40] SDK feature band: 10.0.200 +[2026-06-05 17:56:48.737] [0000BF40] Shutting down +[2026-06-05 17:56:48.737] [0000BF40] Shutdown completed. +[2026-06-05 17:56:48.737] [0000BF40] Restart required: False +[2026-06-05 17:56:48.737] [0000BF40] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_50340_20260605_170739_217.log b/.opencode/tmp/Microsoft.NET.Workload_50340_20260605_170739_217.log new file mode 100644 index 0000000..0059673 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_50340_20260605_170739_217.log @@ -0,0 +1,14 @@ +[2026-06-05 17:07:39.218] [0000C4A4] === Logging started === +[2026-06-05 17:07:39.224] [0000C4A4] Executing: "C:\Program Files\dotnet\dotnet.exe" run --project C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj, PID: 50340, PPID: 10656 +[2026-06-05 17:07:39.224] [0000C4A4] IsElevated: False +[2026-06-05 17:07:39.224] [0000C4A4] Is64BitProcess: True +[2026-06-05 17:07:39.224] [0000C4A4] RebootPending: True +[2026-06-05 17:07:39.224] [0000C4A4] ProcessorArchitecture: amd64 +[2026-06-05 17:07:39.224] [0000C4A4] HostArchitecture: x64 +[2026-06-05 17:07:39.224] [0000C4A4] SdkDirectory: 10.0.201 +[2026-06-05 17:07:39.224] [0000C4A4] VerifySignatures: False +[2026-06-05 17:07:39.224] [0000C4A4] SDK feature band: 10.0.200 +[2026-06-05 17:07:40.784] [0000C4A4] Shutting down +[2026-06-05 17:07:40.784] [0000C4A4] Shutdown completed. +[2026-06-05 17:07:40.784] [0000C4A4] Restart required: False +[2026-06-05 17:07:40.784] [0000C4A4] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_51968_20260605_165746_356.log b/.opencode/tmp/Microsoft.NET.Workload_51968_20260605_165746_356.log new file mode 100644 index 0000000..b8a5b9d --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_51968_20260605_165746_356.log @@ -0,0 +1,14 @@ +[2026-06-05 16:57:46.358] [0000CB00] === Logging started === +[2026-06-05 16:57:46.369] [0000CB00] Executing: "C:\Program Files\dotnet\dotnet.exe" run --project C:\Users\hegin\AppData\Local\Temp\InspectAsm\InspectAsm.csproj -- C:\Users\hegin\.nuget\packages\netcord\1.0.0-alpha.489\lib\net10.0\NetCord.dll, PID: 51968, PPID: 45088 +[2026-06-05 16:57:46.371] [0000CB00] IsElevated: False +[2026-06-05 16:57:46.371] [0000CB00] Is64BitProcess: True +[2026-06-05 16:57:46.371] [0000CB00] RebootPending: True +[2026-06-05 16:57:46.371] [0000CB00] ProcessorArchitecture: amd64 +[2026-06-05 16:57:46.371] [0000CB00] HostArchitecture: x64 +[2026-06-05 16:57:46.371] [0000CB00] SdkDirectory: 10.0.201 +[2026-06-05 16:57:46.371] [0000CB00] VerifySignatures: False +[2026-06-05 16:57:46.371] [0000CB00] SDK feature band: 10.0.200 +[2026-06-05 16:57:51.560] [0000CB00] Shutting down +[2026-06-05 16:57:51.560] [0000CB00] Shutdown completed. +[2026-06-05 16:57:51.560] [0000CB00] Restart required: False +[2026-06-05 16:57:51.562] [0000CB00] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_52676_20260605_161221_319.log b/.opencode/tmp/Microsoft.NET.Workload_52676_20260605_161221_319.log new file mode 100644 index 0000000..96f9090 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_52676_20260605_161221_319.log @@ -0,0 +1,14 @@ +[2026-06-05 16:12:21.321] [0000CDC4] === Logging started === +[2026-06-05 16:12:21.326] [0000CDC4] Executing: "C:\Program Files\dotnet\dotnet.exe" build tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --no-restore, PID: 52676, PPID: 49548 +[2026-06-05 16:12:21.327] [0000CDC4] IsElevated: False +[2026-06-05 16:12:21.327] [0000CDC4] Is64BitProcess: True +[2026-06-05 16:12:21.327] [0000CDC4] RebootPending: False +[2026-06-05 16:12:21.327] [0000CDC4] ProcessorArchitecture: amd64 +[2026-06-05 16:12:21.327] [0000CDC4] HostArchitecture: x64 +[2026-06-05 16:12:21.327] [0000CDC4] SdkDirectory: 10.0.201 +[2026-06-05 16:12:21.327] [0000CDC4] VerifySignatures: False +[2026-06-05 16:12:21.328] [0000CDC4] SDK feature band: 10.0.200 +[2026-06-05 16:12:34.393] [0000CDC4] Shutting down +[2026-06-05 16:12:34.393] [0000CDC4] Shutdown completed. +[2026-06-05 16:12:34.393] [0000CDC4] Restart required: False +[2026-06-05 16:12:34.393] [0000CDC4] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_53456_20260605_182637_055.log b/.opencode/tmp/Microsoft.NET.Workload_53456_20260605_182637_055.log new file mode 100644 index 0000000..d56d952 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_53456_20260605_182637_055.log @@ -0,0 +1,14 @@ +[2026-06-05 18:26:37.058] [0000D0D0] === Logging started === +[2026-06-05 18:26:37.064] [0000D0D0] Executing: "C:\Program Files\dotnet\dotnet.exe" test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --no-build --filter FullyQualifiedName~Discord|FullyQualifiedName~Wizard --verbosity minimal, PID: 53456, PPID: 37984 +[2026-06-05 18:26:37.066] [0000D0D0] IsElevated: False +[2026-06-05 18:26:37.066] [0000D0D0] Is64BitProcess: True +[2026-06-05 18:26:37.066] [0000D0D0] RebootPending: True +[2026-06-05 18:26:37.066] [0000D0D0] ProcessorArchitecture: amd64 +[2026-06-05 18:26:37.066] [0000D0D0] HostArchitecture: x64 +[2026-06-05 18:26:37.066] [0000D0D0] SdkDirectory: 10.0.201 +[2026-06-05 18:26:37.066] [0000D0D0] VerifySignatures: False +[2026-06-05 18:26:37.066] [0000D0D0] SDK feature band: 10.0.200 +[2026-06-05 18:26:44.412] [0000D0D0] Shutting down +[2026-06-05 18:26:44.412] [0000D0D0] Shutdown completed. +[2026-06-05 18:26:44.412] [0000D0D0] Restart required: False +[2026-06-05 18:26:44.413] [0000D0D0] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_53564_20260605_162809_524.log b/.opencode/tmp/Microsoft.NET.Workload_53564_20260605_162809_524.log new file mode 100644 index 0000000..a3ab77d --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_53564_20260605_162809_524.log @@ -0,0 +1,14 @@ +[2026-06-05 16:28:09.526] [0000D13C] === Logging started === +[2026-06-05 16:28:09.531] [0000D13C] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --logger trx;LogFileName=results.trx, PID: 53564, PPID: 12420 +[2026-06-05 16:28:09.533] [0000D13C] IsElevated: False +[2026-06-05 16:28:09.533] [0000D13C] Is64BitProcess: True +[2026-06-05 16:28:09.533] [0000D13C] RebootPending: False +[2026-06-05 16:28:09.533] [0000D13C] ProcessorArchitecture: amd64 +[2026-06-05 16:28:09.533] [0000D13C] HostArchitecture: x64 +[2026-06-05 16:28:09.533] [0000D13C] SdkDirectory: 10.0.201 +[2026-06-05 16:28:09.533] [0000D13C] VerifySignatures: False +[2026-06-05 16:28:09.533] [0000D13C] SDK feature band: 10.0.200 +[2026-06-05 16:28:31.862] [0000D13C] Shutting down +[2026-06-05 16:28:31.862] [0000D13C] Shutdown completed. +[2026-06-05 16:28:31.862] [0000D13C] Restart required: False +[2026-06-05 16:28:31.863] [0000D13C] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_53700_20260605_180231_233.log b/.opencode/tmp/Microsoft.NET.Workload_53700_20260605_180231_233.log new file mode 100644 index 0000000..0b22422 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_53700_20260605_180231_233.log @@ -0,0 +1,14 @@ +[2026-06-05 18:02:31.235] [0000D1C4] === Logging started === +[2026-06-05 18:02:31.242] [0000D1C4] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --filter FullyQualifiedName~DiscordStartupTests --verbosity normal, PID: 53700, PPID: 15876 +[2026-06-05 18:02:31.243] [0000D1C4] IsElevated: False +[2026-06-05 18:02:31.243] [0000D1C4] Is64BitProcess: True +[2026-06-05 18:02:31.243] [0000D1C4] RebootPending: True +[2026-06-05 18:02:31.243] [0000D1C4] ProcessorArchitecture: amd64 +[2026-06-05 18:02:31.243] [0000D1C4] HostArchitecture: x64 +[2026-06-05 18:02:31.243] [0000D1C4] SdkDirectory: 10.0.201 +[2026-06-05 18:02:31.243] [0000D1C4] VerifySignatures: False +[2026-06-05 18:02:31.243] [0000D1C4] SDK feature band: 10.0.200 +[2026-06-05 18:02:35.573] [0000D1C4] Shutting down +[2026-06-05 18:02:35.573] [0000D1C4] Shutdown completed. +[2026-06-05 18:02:35.573] [0000D1C4] Restart required: False +[2026-06-05 18:02:35.573] [0000D1C4] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_5784_20260605_180848_568.log b/.opencode/tmp/Microsoft.NET.Workload_5784_20260605_180848_568.log new file mode 100644 index 0000000..caf255c --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_5784_20260605_180848_568.log @@ -0,0 +1,14 @@ +[2026-06-05 18:08:48.570] [00001698] === Logging started === +[2026-06-05 18:08:48.576] [00001698] Executing: "C:\Program Files\dotnet\dotnet.exe" build src/GmRelay.DiscordBot/GmRelay.DiscordBot.csproj --no-restore, PID: 5784, PPID: 19864 +[2026-06-05 18:08:48.578] [00001698] IsElevated: False +[2026-06-05 18:08:48.578] [00001698] Is64BitProcess: True +[2026-06-05 18:08:48.578] [00001698] RebootPending: True +[2026-06-05 18:08:48.578] [00001698] ProcessorArchitecture: amd64 +[2026-06-05 18:08:48.578] [00001698] HostArchitecture: x64 +[2026-06-05 18:08:48.578] [00001698] SdkDirectory: 10.0.201 +[2026-06-05 18:08:48.578] [00001698] VerifySignatures: False +[2026-06-05 18:08:48.578] [00001698] SDK feature band: 10.0.200 +[2026-06-05 18:08:49.613] [00001698] Shutting down +[2026-06-05 18:08:49.613] [00001698] Shutdown completed. +[2026-06-05 18:08:49.613] [00001698] Restart required: False +[2026-06-05 18:08:49.613] [00001698] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_6228_20260605_174340_365.log b/.opencode/tmp/Microsoft.NET.Workload_6228_20260605_174340_365.log new file mode 100644 index 0000000..65182ee --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_6228_20260605_174340_365.log @@ -0,0 +1,14 @@ +[2026-06-05 17:43:40.368] [00001854] === Logging started === +[2026-06-05 17:43:40.374] [00001854] Executing: "C:\Program Files\dotnet\dotnet.exe" test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --no-build --verbosity normal --filter FullyQualifiedName~Discord, PID: 6228, PPID: 13024 +[2026-06-05 17:43:40.376] [00001854] IsElevated: False +[2026-06-05 17:43:40.376] [00001854] Is64BitProcess: True +[2026-06-05 17:43:40.376] [00001854] RebootPending: True +[2026-06-05 17:43:40.376] [00001854] ProcessorArchitecture: amd64 +[2026-06-05 17:43:40.376] [00001854] HostArchitecture: x64 +[2026-06-05 17:43:40.376] [00001854] SdkDirectory: 10.0.201 +[2026-06-05 17:43:40.376] [00001854] VerifySignatures: False +[2026-06-05 17:43:40.376] [00001854] SDK feature band: 10.0.200 +[2026-06-05 17:43:42.074] [00001854] Shutting down +[2026-06-05 17:43:42.074] [00001854] Shutdown completed. +[2026-06-05 17:43:42.074] [00001854] Restart required: False +[2026-06-05 17:43:42.074] [00001854] === Logging ended === diff --git a/.opencode/tmp/Microsoft.NET.Workload_9616_20260605_185713_935.log b/.opencode/tmp/Microsoft.NET.Workload_9616_20260605_185713_935.log new file mode 100644 index 0000000..08225a9 --- /dev/null +++ b/.opencode/tmp/Microsoft.NET.Workload_9616_20260605_185713_935.log @@ -0,0 +1,14 @@ +[2026-06-05 18:57:13.937] [00002590] === Logging started === +[2026-06-05 18:57:13.942] [00002590] Executing: "C:\Program Files\dotnet\dotnet.exe" test D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --filter FullyQualifiedName~Discord|FullyQualifiedName~Wizard, PID: 9616, PPID: 45676 +[2026-06-05 18:57:13.943] [00002590] IsElevated: False +[2026-06-05 18:57:13.943] [00002590] Is64BitProcess: True +[2026-06-05 18:57:13.943] [00002590] RebootPending: True +[2026-06-05 18:57:13.943] [00002590] ProcessorArchitecture: amd64 +[2026-06-05 18:57:13.943] [00002590] HostArchitecture: x64 +[2026-06-05 18:57:13.943] [00002590] SdkDirectory: 10.0.201 +[2026-06-05 18:57:13.943] [00002590] VerifySignatures: False +[2026-06-05 18:57:13.943] [00002590] SDK feature band: 10.0.200 +[2026-06-05 18:57:24.209] [00002590] Shutting down +[2026-06-05 18:57:24.209] [00002590] Shutdown completed. +[2026-06-05 18:57:24.209] [00002590] Restart required: False +[2026-06-05 18:57:24.209] [00002590] === Logging ended === diff --git a/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/1/Dapper.AOT.Analyzers.dll b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/1/Dapper.AOT.Analyzers.dll new file mode 100644 index 0000000..7e1d137 Binary files /dev/null and b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/1/Dapper.AOT.Analyzers.dll differ diff --git a/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/1/Microsoft.SqlServer.TransactSql.ScriptDom.dll b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/1/Microsoft.SqlServer.TransactSql.ScriptDom.dll new file mode 100644 index 0000000..1ec58f8 Binary files /dev/null and b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/1/Microsoft.SqlServer.TransactSql.ScriptDom.dll differ diff --git a/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/10/xunit.analyzers.dll b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/10/xunit.analyzers.dll new file mode 100644 index 0000000..44246d2 Binary files /dev/null and b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/10/xunit.analyzers.dll differ diff --git a/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/10/xunit.analyzers.fixes.dll b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/10/xunit.analyzers.fixes.dll new file mode 100644 index 0000000..a3bd5f6 Binary files /dev/null and b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/10/xunit.analyzers.fixes.dll differ diff --git a/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/2/Microsoft.Extensions.Options.SourceGeneration.dll b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/2/Microsoft.Extensions.Options.SourceGeneration.dll new file mode 100644 index 0000000..546c9b9 Binary files /dev/null and b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/2/Microsoft.Extensions.Options.SourceGeneration.dll differ diff --git a/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/3/Microsoft.Gen.Logging.dll b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/3/Microsoft.Gen.Logging.dll new file mode 100644 index 0000000..a5aaaa3 Binary files /dev/null and b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/3/Microsoft.Gen.Logging.dll differ diff --git a/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/3/Microsoft.Gen.Metrics.dll b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/3/Microsoft.Gen.Metrics.dll new file mode 100644 index 0000000..3d8b4a2 Binary files /dev/null and b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/3/Microsoft.Gen.Metrics.dll differ diff --git a/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/4/SecurityCodeScan.VS2019.dll b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/4/SecurityCodeScan.VS2019.dll new file mode 100644 index 0000000..bfdd219 Binary files /dev/null and b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/4/SecurityCodeScan.VS2019.dll differ diff --git a/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/4/YamlDotNet.dll b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/4/YamlDotNet.dll new file mode 100644 index 0000000..d49973d Binary files /dev/null and b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/4/YamlDotNet.dll differ diff --git a/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/5/Microsoft.Extensions.Logging.Generators.dll b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/5/Microsoft.Extensions.Logging.Generators.dll new file mode 100644 index 0000000..3543106 Binary files /dev/null and b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/5/Microsoft.Extensions.Logging.Generators.dll differ diff --git a/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/6/Microsoft.Extensions.Options.SourceGeneration.dll b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/6/Microsoft.Extensions.Options.SourceGeneration.dll new file mode 100644 index 0000000..dfd0f61 Binary files /dev/null and b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/6/Microsoft.Extensions.Options.SourceGeneration.dll differ diff --git a/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/7/ILLink.CodeFixProvider.dll b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/7/ILLink.CodeFixProvider.dll new file mode 100644 index 0000000..e3a05f5 Binary files /dev/null and b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/7/ILLink.CodeFixProvider.dll differ diff --git a/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/7/ILLink.RoslynAnalyzer.dll b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/7/ILLink.RoslynAnalyzer.dll new file mode 100644 index 0000000..4a8f27c Binary files /dev/null and b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/7/ILLink.RoslynAnalyzer.dll differ diff --git a/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/8/Aspire.Hosting.Analyzers.dll b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/8/Aspire.Hosting.Analyzers.dll new file mode 100644 index 0000000..b2d2051 Binary files /dev/null and b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/8/Aspire.Hosting.Analyzers.dll differ diff --git a/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/9/ModelContextProtocol.Analyzers.dll b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/9/ModelContextProtocol.Analyzers.dll new file mode 100644 index 0000000..98d7900 Binary files /dev/null and b/.opencode/tmp/VBCSCompiler/AnalyzerAssemblyLoader/b02aa8687eb64722aa05220b34f8a100/9/ModelContextProtocol.Analyzers.dll differ diff --git a/.playwright-mcp/console-2026-06-03T19-00-02-352Z.log b/.playwright-mcp/console-2026-06-03T19-00-02-352Z.log new file mode 100644 index 0000000..4d32992 --- /dev/null +++ b/.playwright-mcp/console-2026-06-03T19-00-02-352Z.log @@ -0,0 +1,21 @@ +[ 79ms] [ERROR] Failed to load resource: the server responded with a status of 500 () @ https://game.codeanddice.ru/showcase:0 +[ 266ms] [LOG] [Telegram.WebView] > postEvent web_app_set_header_color {color_key: bg_color} @ https://telegram.org/js/telegram-web-app.js:134 +[ 267ms] [LOG] [Telegram.WebView] > postEvent web_app_set_bottom_bar_color {color: #ffffff} @ https://telegram.org/js/telegram-web-app.js:134 +[ 268ms] [LOG] [Telegram.WebView] > postEvent web_app_request_theme @ https://telegram.org/js/telegram-web-app.js:134 +[ 268ms] [LOG] [Telegram.WebView] > postEvent web_app_request_viewport @ https://telegram.org/js/telegram-web-app.js:134 +[ 268ms] [LOG] [Telegram.WebView] > postEvent web_app_request_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 268ms] [LOG] [Telegram.WebView] > postEvent web_app_request_content_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 329ms] [LOG] [Telegram.WebView] > postEvent web_app_ready @ https://telegram.org/js/telegram-web-app.js:134 +[ 329ms] [LOG] [Telegram.WebView] > postEvent web_app_expand @ https://telegram.org/js/telegram-web-app.js:134 +[ 200653ms] [INFO] [2026-06-03T19:03:23.003Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[ 200703ms] [INFO] [2026-06-03T19:03:23.054Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=gaXcrJ6PUZgQbIfMrSk2Fw. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[ 265463ms] [LOG] [Telegram.WebView] > postEvent web_app_set_header_color {color_key: bg_color} @ https://telegram.org/js/telegram-web-app.js:134 +[ 265463ms] [LOG] [Telegram.WebView] > postEvent web_app_set_bottom_bar_color {color: #ffffff} @ https://telegram.org/js/telegram-web-app.js:134 +[ 265463ms] [LOG] [Telegram.WebView] > postEvent web_app_request_theme @ https://telegram.org/js/telegram-web-app.js:134 +[ 265464ms] [LOG] [Telegram.WebView] > postEvent web_app_request_viewport @ https://telegram.org/js/telegram-web-app.js:134 +[ 265464ms] [LOG] [Telegram.WebView] > postEvent web_app_request_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 265464ms] [LOG] [Telegram.WebView] > postEvent web_app_request_content_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 265471ms] [LOG] [Telegram.WebView] > postEvent web_app_ready @ https://telegram.org/js/telegram-web-app.js:134 +[ 265471ms] [LOG] [Telegram.WebView] > postEvent web_app_expand @ https://telegram.org/js/telegram-web-app.js:134 +[ 265519ms] [INFO] [2026-06-03T19:04:27.870Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[ 265563ms] [INFO] [2026-06-03T19:04:27.914Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=JNvQGLO-UuTj4BKbXPtn8Q. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 diff --git a/.playwright-mcp/console-2026-06-03T19-04-52-982Z.log b/.playwright-mcp/console-2026-06-03T19-04-52-982Z.log new file mode 100644 index 0000000..034b059 --- /dev/null +++ b/.playwright-mcp/console-2026-06-03T19-04-52-982Z.log @@ -0,0 +1,9 @@ +[ 39ms] [ERROR] Failed to load resource: the server responded with a status of 500 () @ https://game.codeanddice.ru/showcase:0 +[ 44ms] [LOG] [Telegram.WebView] > postEvent web_app_set_header_color {color_key: bg_color} @ https://telegram.org/js/telegram-web-app.js:134 +[ 45ms] [LOG] [Telegram.WebView] > postEvent web_app_set_bottom_bar_color {color: #ffffff} @ https://telegram.org/js/telegram-web-app.js:134 +[ 45ms] [LOG] [Telegram.WebView] > postEvent web_app_request_theme @ https://telegram.org/js/telegram-web-app.js:134 +[ 45ms] [LOG] [Telegram.WebView] > postEvent web_app_request_viewport @ https://telegram.org/js/telegram-web-app.js:134 +[ 45ms] [LOG] [Telegram.WebView] > postEvent web_app_request_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 45ms] [LOG] [Telegram.WebView] > postEvent web_app_request_content_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 48ms] [LOG] [Telegram.WebView] > postEvent web_app_ready @ https://telegram.org/js/telegram-web-app.js:134 +[ 48ms] [LOG] [Telegram.WebView] > postEvent web_app_expand @ https://telegram.org/js/telegram-web-app.js:134 diff --git a/.playwright-mcp/console-2026-06-03T19-41-23-732Z.log b/.playwright-mcp/console-2026-06-03T19-41-23-732Z.log new file mode 100644 index 0000000..7f52dee --- /dev/null +++ b/.playwright-mcp/console-2026-06-03T19-41-23-732Z.log @@ -0,0 +1,10 @@ +[ 195ms] [LOG] [Telegram.WebView] > postEvent web_app_set_header_color {color_key: bg_color} @ https://telegram.org/js/telegram-web-app.js:134 +[ 195ms] [LOG] [Telegram.WebView] > postEvent web_app_set_bottom_bar_color {color: #ffffff} @ https://telegram.org/js/telegram-web-app.js:134 +[ 195ms] [LOG] [Telegram.WebView] > postEvent web_app_request_theme @ https://telegram.org/js/telegram-web-app.js:134 +[ 195ms] [LOG] [Telegram.WebView] > postEvent web_app_request_viewport @ https://telegram.org/js/telegram-web-app.js:134 +[ 195ms] [LOG] [Telegram.WebView] > postEvent web_app_request_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 195ms] [LOG] [Telegram.WebView] > postEvent web_app_request_content_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 203ms] [LOG] [Telegram.WebView] > postEvent web_app_ready @ https://telegram.org/js/telegram-web-app.js:134 +[ 203ms] [LOG] [Telegram.WebView] > postEvent web_app_expand @ https://telegram.org/js/telegram-web-app.js:134 +[ 288ms] [INFO] [2026-06-03T19:41:24.019Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[ 350ms] [INFO] [2026-06-03T19:41:24.082Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=syW-28bglGOi19fz-ELO9Q. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 diff --git a/.playwright-mcp/console-2026-06-04T03-48-31-837Z.log b/.playwright-mcp/console-2026-06-04T03-48-31-837Z.log new file mode 100644 index 0000000..64c847e --- /dev/null +++ b/.playwright-mcp/console-2026-06-04T03-48-31-837Z.log @@ -0,0 +1,10 @@ +[ 129ms] [LOG] [Telegram.WebView] > postEvent web_app_set_header_color {color_key: bg_color} @ https://telegram.org/js/telegram-web-app.js:134 +[ 130ms] [LOG] [Telegram.WebView] > postEvent web_app_set_bottom_bar_color {color: #ffffff} @ https://telegram.org/js/telegram-web-app.js:134 +[ 130ms] [LOG] [Telegram.WebView] > postEvent web_app_request_theme @ https://telegram.org/js/telegram-web-app.js:134 +[ 130ms] [LOG] [Telegram.WebView] > postEvent web_app_request_viewport @ https://telegram.org/js/telegram-web-app.js:134 +[ 130ms] [LOG] [Telegram.WebView] > postEvent web_app_request_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 130ms] [LOG] [Telegram.WebView] > postEvent web_app_request_content_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 135ms] [LOG] [Telegram.WebView] > postEvent web_app_ready @ https://telegram.org/js/telegram-web-app.js:134 +[ 135ms] [LOG] [Telegram.WebView] > postEvent web_app_expand @ https://telegram.org/js/telegram-web-app.js:134 +[ 181ms] [INFO] [2026-06-04T03:48:32.018Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[ 232ms] [INFO] [2026-06-04T03:48:32.069Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=-ioh12Gs9cNhneiHJ_PKqw. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 diff --git a/.playwright-mcp/console-2026-06-04T03-48-51-982Z.log b/.playwright-mcp/console-2026-06-04T03-48-51-982Z.log new file mode 100644 index 0000000..0c6f1d7 --- /dev/null +++ b/.playwright-mcp/console-2026-06-04T03-48-51-982Z.log @@ -0,0 +1,10 @@ +[ 379ms] [LOG] [Telegram.WebView] > postEvent web_app_set_header_color {color_key: bg_color} @ https://telegram.org/js/telegram-web-app.js:134 +[ 379ms] [LOG] [Telegram.WebView] > postEvent web_app_set_bottom_bar_color {color: #ffffff} @ https://telegram.org/js/telegram-web-app.js:134 +[ 379ms] [LOG] [Telegram.WebView] > postEvent web_app_request_theme @ https://telegram.org/js/telegram-web-app.js:134 +[ 379ms] [LOG] [Telegram.WebView] > postEvent web_app_request_viewport @ https://telegram.org/js/telegram-web-app.js:134 +[ 379ms] [LOG] [Telegram.WebView] > postEvent web_app_request_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 379ms] [LOG] [Telegram.WebView] > postEvent web_app_request_content_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 384ms] [LOG] [Telegram.WebView] > postEvent web_app_ready @ https://telegram.org/js/telegram-web-app.js:134 +[ 384ms] [LOG] [Telegram.WebView] > postEvent web_app_expand @ https://telegram.org/js/telegram-web-app.js:134 +[ 466ms] [INFO] [2026-06-04T03:48:52.447Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[ 522ms] [INFO] [2026-06-04T03:48:52.503Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=9EiUFulLX70ttJQ7O-Y7Kg. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 diff --git a/.playwright-mcp/console-2026-06-04T03-50-03-636Z.log b/.playwright-mcp/console-2026-06-04T03-50-03-636Z.log new file mode 100644 index 0000000..65f2d2a --- /dev/null +++ b/.playwright-mcp/console-2026-06-04T03-50-03-636Z.log @@ -0,0 +1,10 @@ +[ 58ms] [LOG] [Telegram.WebView] > postEvent web_app_set_header_color {color_key: bg_color} @ https://telegram.org/js/telegram-web-app.js:134 +[ 58ms] [LOG] [Telegram.WebView] > postEvent web_app_set_bottom_bar_color {color: #ffffff} @ https://telegram.org/js/telegram-web-app.js:134 +[ 59ms] [LOG] [Telegram.WebView] > postEvent web_app_request_theme @ https://telegram.org/js/telegram-web-app.js:134 +[ 59ms] [LOG] [Telegram.WebView] > postEvent web_app_request_viewport @ https://telegram.org/js/telegram-web-app.js:134 +[ 59ms] [LOG] [Telegram.WebView] > postEvent web_app_request_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 59ms] [LOG] [Telegram.WebView] > postEvent web_app_request_content_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 63ms] [LOG] [Telegram.WebView] > postEvent web_app_ready @ https://telegram.org/js/telegram-web-app.js:134 +[ 63ms] [LOG] [Telegram.WebView] > postEvent web_app_expand @ https://telegram.org/js/telegram-web-app.js:134 +[ 95ms] [INFO] [2026-06-04T03:50:03.730Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[ 139ms] [INFO] [2026-06-04T03:50:03.774Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=Gx-BU5OGO-dOCI7LUHhVgw. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 diff --git a/.playwright-mcp/console-2026-06-04T03-50-36-849Z.log b/.playwright-mcp/console-2026-06-04T03-50-36-849Z.log new file mode 100644 index 0000000..42c5db0 --- /dev/null +++ b/.playwright-mcp/console-2026-06-04T03-50-36-849Z.log @@ -0,0 +1,10 @@ +[ 86ms] [LOG] [Telegram.WebView] > postEvent web_app_set_header_color {color_key: bg_color} @ https://telegram.org/js/telegram-web-app.js:134 +[ 86ms] [LOG] [Telegram.WebView] > postEvent web_app_set_bottom_bar_color {color: #ffffff} @ https://telegram.org/js/telegram-web-app.js:134 +[ 87ms] [LOG] [Telegram.WebView] > postEvent web_app_request_theme @ https://telegram.org/js/telegram-web-app.js:134 +[ 87ms] [LOG] [Telegram.WebView] > postEvent web_app_request_viewport @ https://telegram.org/js/telegram-web-app.js:134 +[ 87ms] [LOG] [Telegram.WebView] > postEvent web_app_request_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 87ms] [LOG] [Telegram.WebView] > postEvent web_app_request_content_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 89ms] [LOG] [Telegram.WebView] > postEvent web_app_ready @ https://telegram.org/js/telegram-web-app.js:134 +[ 89ms] [LOG] [Telegram.WebView] > postEvent web_app_expand @ https://telegram.org/js/telegram-web-app.js:134 +[ 120ms] [INFO] [2026-06-04T03:50:36.968Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[ 172ms] [INFO] [2026-06-04T03:50:37.021Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=WcNKnq9XJWhX0IGLJjFnrA. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 diff --git a/.playwright-mcp/console-2026-06-04T03-51-14-517Z.log b/.playwright-mcp/console-2026-06-04T03-51-14-517Z.log new file mode 100644 index 0000000..9f4c5b7 --- /dev/null +++ b/.playwright-mcp/console-2026-06-04T03-51-14-517Z.log @@ -0,0 +1,10 @@ +[ 53ms] [LOG] [Telegram.WebView] > postEvent web_app_set_header_color {color_key: bg_color} @ https://telegram.org/js/telegram-web-app.js:134 +[ 53ms] [LOG] [Telegram.WebView] > postEvent web_app_set_bottom_bar_color {color: #ffffff} @ https://telegram.org/js/telegram-web-app.js:134 +[ 53ms] [LOG] [Telegram.WebView] > postEvent web_app_request_theme @ https://telegram.org/js/telegram-web-app.js:134 +[ 53ms] [LOG] [Telegram.WebView] > postEvent web_app_request_viewport @ https://telegram.org/js/telegram-web-app.js:134 +[ 54ms] [LOG] [Telegram.WebView] > postEvent web_app_request_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 54ms] [LOG] [Telegram.WebView] > postEvent web_app_request_content_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 57ms] [LOG] [Telegram.WebView] > postEvent web_app_ready @ https://telegram.org/js/telegram-web-app.js:134 +[ 57ms] [LOG] [Telegram.WebView] > postEvent web_app_expand @ https://telegram.org/js/telegram-web-app.js:134 +[ 81ms] [INFO] [2026-06-04T03:51:14.597Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[ 123ms] [INFO] [2026-06-04T03:51:14.639Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=zWiSyunK9_uWucJPy7JWUQ. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 diff --git a/.playwright-mcp/console-2026-06-04T03-52-16-784Z.log b/.playwright-mcp/console-2026-06-04T03-52-16-784Z.log new file mode 100644 index 0000000..e0d66f9 --- /dev/null +++ b/.playwright-mcp/console-2026-06-04T03-52-16-784Z.log @@ -0,0 +1,10 @@ +[ 112ms] [LOG] [Telegram.WebView] > postEvent web_app_set_header_color {color_key: bg_color} @ https://telegram.org/js/telegram-web-app.js:134 +[ 112ms] [LOG] [Telegram.WebView] > postEvent web_app_set_bottom_bar_color {color: #ffffff} @ https://telegram.org/js/telegram-web-app.js:134 +[ 112ms] [LOG] [Telegram.WebView] > postEvent web_app_request_theme @ https://telegram.org/js/telegram-web-app.js:134 +[ 112ms] [LOG] [Telegram.WebView] > postEvent web_app_request_viewport @ https://telegram.org/js/telegram-web-app.js:134 +[ 112ms] [LOG] [Telegram.WebView] > postEvent web_app_request_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 112ms] [LOG] [Telegram.WebView] > postEvent web_app_request_content_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 117ms] [LOG] [Telegram.WebView] > postEvent web_app_ready @ https://telegram.org/js/telegram-web-app.js:134 +[ 117ms] [LOG] [Telegram.WebView] > postEvent web_app_expand @ https://telegram.org/js/telegram-web-app.js:134 +[ 179ms] [INFO] [2026-06-04T03:52:16.963Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[ 242ms] [INFO] [2026-06-04T03:52:17.025Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=qFPHEEyZqBNyuaBvsqeWvA. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 diff --git a/.playwright-mcp/console-2026-06-04T03-52-36-603Z.log b/.playwright-mcp/console-2026-06-04T03-52-36-603Z.log new file mode 100644 index 0000000..d0bf133 --- /dev/null +++ b/.playwright-mcp/console-2026-06-04T03-52-36-603Z.log @@ -0,0 +1,10 @@ +[ 51ms] [LOG] [Telegram.WebView] > postEvent web_app_set_header_color {color_key: bg_color} @ https://telegram.org/js/telegram-web-app.js:134 +[ 51ms] [LOG] [Telegram.WebView] > postEvent web_app_set_bottom_bar_color {color: #ffffff} @ https://telegram.org/js/telegram-web-app.js:134 +[ 52ms] [LOG] [Telegram.WebView] > postEvent web_app_request_theme @ https://telegram.org/js/telegram-web-app.js:134 +[ 52ms] [LOG] [Telegram.WebView] > postEvent web_app_request_viewport @ https://telegram.org/js/telegram-web-app.js:134 +[ 52ms] [LOG] [Telegram.WebView] > postEvent web_app_request_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 52ms] [LOG] [Telegram.WebView] > postEvent web_app_request_content_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 54ms] [LOG] [Telegram.WebView] > postEvent web_app_ready @ https://telegram.org/js/telegram-web-app.js:134 +[ 54ms] [LOG] [Telegram.WebView] > postEvent web_app_expand @ https://telegram.org/js/telegram-web-app.js:134 +[ 88ms] [INFO] [2026-06-04T03:52:36.691Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[ 133ms] [INFO] [2026-06-04T03:52:36.735Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=hNRNfutFtgROyxFdhblXhg. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 diff --git a/.playwright-mcp/console-2026-06-04T03-57-40-034Z.log b/.playwright-mcp/console-2026-06-04T03-57-40-034Z.log new file mode 100644 index 0000000..4301b07 --- /dev/null +++ b/.playwright-mcp/console-2026-06-04T03-57-40-034Z.log @@ -0,0 +1,10 @@ +[ 76ms] [LOG] [Telegram.WebView] > postEvent web_app_set_header_color {color_key: bg_color} @ https://telegram.org/js/telegram-web-app.js:134 +[ 76ms] [LOG] [Telegram.WebView] > postEvent web_app_set_bottom_bar_color {color: #ffffff} @ https://telegram.org/js/telegram-web-app.js:134 +[ 77ms] [LOG] [Telegram.WebView] > postEvent web_app_request_theme @ https://telegram.org/js/telegram-web-app.js:134 +[ 77ms] [LOG] [Telegram.WebView] > postEvent web_app_request_viewport @ https://telegram.org/js/telegram-web-app.js:134 +[ 77ms] [LOG] [Telegram.WebView] > postEvent web_app_request_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 77ms] [LOG] [Telegram.WebView] > postEvent web_app_request_content_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 82ms] [LOG] [Telegram.WebView] > postEvent web_app_ready @ https://telegram.org/js/telegram-web-app.js:134 +[ 82ms] [LOG] [Telegram.WebView] > postEvent web_app_expand @ https://telegram.org/js/telegram-web-app.js:134 +[ 104ms] [INFO] [2026-06-04T03:57:40.137Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[ 148ms] [INFO] [2026-06-04T03:57:40.182Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=sqVQnnl_1P3VjFiyKBaH2g. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 diff --git a/.playwright-mcp/console-2026-06-04T03-58-18-537Z.log b/.playwright-mcp/console-2026-06-04T03-58-18-537Z.log new file mode 100644 index 0000000..aa702d9 --- /dev/null +++ b/.playwright-mcp/console-2026-06-04T03-58-18-537Z.log @@ -0,0 +1,10 @@ +[ 59ms] [LOG] [Telegram.WebView] > postEvent web_app_set_header_color {color_key: bg_color} @ https://telegram.org/js/telegram-web-app.js:134 +[ 59ms] [LOG] [Telegram.WebView] > postEvent web_app_set_bottom_bar_color {color: #ffffff} @ https://telegram.org/js/telegram-web-app.js:134 +[ 59ms] [LOG] [Telegram.WebView] > postEvent web_app_request_theme @ https://telegram.org/js/telegram-web-app.js:134 +[ 59ms] [LOG] [Telegram.WebView] > postEvent web_app_request_viewport @ https://telegram.org/js/telegram-web-app.js:134 +[ 59ms] [LOG] [Telegram.WebView] > postEvent web_app_request_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 59ms] [LOG] [Telegram.WebView] > postEvent web_app_request_content_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 62ms] [LOG] [Telegram.WebView] > postEvent web_app_ready @ https://telegram.org/js/telegram-web-app.js:134 +[ 62ms] [LOG] [Telegram.WebView] > postEvent web_app_expand @ https://telegram.org/js/telegram-web-app.js:134 +[ 87ms] [INFO] [2026-06-04T03:58:18.623Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[ 129ms] [INFO] [2026-06-04T03:58:18.666Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=WxKfMY_o1f9mioubrVhzpQ. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 diff --git a/.playwright-mcp/console-2026-06-04T03-59-14-450Z.log b/.playwright-mcp/console-2026-06-04T03-59-14-450Z.log new file mode 100644 index 0000000..aea6983 --- /dev/null +++ b/.playwright-mcp/console-2026-06-04T03-59-14-450Z.log @@ -0,0 +1,10 @@ +[ 46ms] [LOG] [Telegram.WebView] > postEvent web_app_set_header_color {color_key: bg_color} @ https://telegram.org/js/telegram-web-app.js:134 +[ 46ms] [LOG] [Telegram.WebView] > postEvent web_app_set_bottom_bar_color {color: #ffffff} @ https://telegram.org/js/telegram-web-app.js:134 +[ 46ms] [LOG] [Telegram.WebView] > postEvent web_app_request_theme @ https://telegram.org/js/telegram-web-app.js:134 +[ 46ms] [LOG] [Telegram.WebView] > postEvent web_app_request_viewport @ https://telegram.org/js/telegram-web-app.js:134 +[ 46ms] [LOG] [Telegram.WebView] > postEvent web_app_request_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 46ms] [LOG] [Telegram.WebView] > postEvent web_app_request_content_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 49ms] [LOG] [Telegram.WebView] > postEvent web_app_ready @ https://telegram.org/js/telegram-web-app.js:134 +[ 49ms] [LOG] [Telegram.WebView] > postEvent web_app_expand @ https://telegram.org/js/telegram-web-app.js:134 +[ 90ms] [INFO] [2026-06-04T03:59:14.540Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[ 135ms] [INFO] [2026-06-04T03:59:14.584Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=1OruNbrDuNNQ9JOJkVrXKQ. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 diff --git a/.playwright-mcp/console-2026-06-04T03-59-33-560Z.log b/.playwright-mcp/console-2026-06-04T03-59-33-560Z.log new file mode 100644 index 0000000..1b733a5 --- /dev/null +++ b/.playwright-mcp/console-2026-06-04T03-59-33-560Z.log @@ -0,0 +1,744 @@ +[ 61ms] [LOG] [Telegram.WebView] > postEvent web_app_set_header_color {color_key: bg_color} @ https://telegram.org/js/telegram-web-app.js:134 +[ 62ms] [LOG] [Telegram.WebView] > postEvent web_app_set_bottom_bar_color {color: #ffffff} @ https://telegram.org/js/telegram-web-app.js:134 +[ 62ms] [LOG] [Telegram.WebView] > postEvent web_app_request_theme @ https://telegram.org/js/telegram-web-app.js:134 +[ 62ms] [LOG] [Telegram.WebView] > postEvent web_app_request_viewport @ https://telegram.org/js/telegram-web-app.js:134 +[ 62ms] [LOG] [Telegram.WebView] > postEvent web_app_request_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 62ms] [LOG] [Telegram.WebView] > postEvent web_app_request_content_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[ 66ms] [LOG] [Telegram.WebView] > postEvent web_app_ready @ https://telegram.org/js/telegram-web-app.js:134 +[ 66ms] [LOG] [Telegram.WebView] > postEvent web_app_expand @ https://telegram.org/js/telegram-web-app.js:134 +[ 107ms] [INFO] [2026-06-04T03:59:33.666Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[ 165ms] [INFO] [2026-06-04T03:59:33.725Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=gFdDutLuldCXlzbxq_9blA. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475111ms] [ERROR] [2026-06-04T13:00:48.671Z] Error: Connection disconnected with error 'Error: WebSocket closed with status code: 1006 (no reason given).'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475125ms] [INFO] [2026-06-04T13:00:48.684Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475188ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32475189ms] [ERROR] [2026-06-04T13:00:48.748Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475189ms] [ERROR] [2026-06-04T13:00:48.749Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475190ms] [ERROR] [2026-06-04T13:00:48.750Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475191ms] [ERROR] [2026-06-04T13:00:48.751Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475192ms] [INFO] [2026-06-04T13:00:48.752Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475207ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32475208ms] [ERROR] [2026-06-04T13:00:48.767Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475208ms] [ERROR] [2026-06-04T13:00:48.768Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475209ms] [ERROR] [2026-06-04T13:00:48.768Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475209ms] [ERROR] [2026-06-04T13:00:48.769Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475210ms] [INFO] [2026-06-04T13:00:48.769Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475225ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32475225ms] [ERROR] [2026-06-04T13:00:48.785Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475226ms] [ERROR] [2026-06-04T13:00:48.785Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475226ms] [ERROR] [2026-06-04T13:00:48.786Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475227ms] [ERROR] [2026-06-04T13:00:48.786Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475228ms] [INFO] [2026-06-04T13:00:48.787Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475244ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32475244ms] [ERROR] [2026-06-04T13:00:48.804Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475245ms] [ERROR] [2026-06-04T13:00:48.804Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475246ms] [ERROR] [2026-06-04T13:00:48.805Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475246ms] [ERROR] [2026-06-04T13:00:48.806Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475247ms] [INFO] [2026-06-04T13:00:48.807Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475266ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32475267ms] [ERROR] [2026-06-04T13:00:48.826Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475267ms] [ERROR] [2026-06-04T13:00:48.827Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475268ms] [ERROR] [2026-06-04T13:00:48.827Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475268ms] [ERROR] [2026-06-04T13:00:48.828Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475269ms] [INFO] [2026-06-04T13:00:48.829Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475284ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32475285ms] [ERROR] [2026-06-04T13:00:48.844Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475285ms] [ERROR] [2026-06-04T13:00:48.845Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475286ms] [ERROR] [2026-06-04T13:00:48.846Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475287ms] [ERROR] [2026-06-04T13:00:48.846Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475288ms] [INFO] [2026-06-04T13:00:48.847Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475305ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32475305ms] [ERROR] [2026-06-04T13:00:48.865Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475306ms] [ERROR] [2026-06-04T13:00:48.866Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475307ms] [ERROR] [2026-06-04T13:00:48.867Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475308ms] [ERROR] [2026-06-04T13:00:48.867Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475309ms] [INFO] [2026-06-04T13:00:48.868Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475323ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32475324ms] [ERROR] [2026-06-04T13:00:48.883Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475325ms] [ERROR] [2026-06-04T13:00:48.884Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475325ms] [ERROR] [2026-06-04T13:00:48.885Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475326ms] [ERROR] [2026-06-04T13:00:48.886Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475327ms] [INFO] [2026-06-04T13:00:48.887Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475343ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32475343ms] [ERROR] [2026-06-04T13:00:48.903Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475344ms] [ERROR] [2026-06-04T13:00:48.904Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475345ms] [ERROR] [2026-06-04T13:00:48.904Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475346ms] [ERROR] [2026-06-04T13:00:48.905Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475347ms] [INFO] [2026-06-04T13:00:48.906Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475364ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32475364ms] [ERROR] [2026-06-04T13:00:48.924Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475365ms] [ERROR] [2026-06-04T13:00:48.925Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475366ms] [ERROR] [2026-06-04T13:00:48.926Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32475367ms] [ERROR] [2026-06-04T13:00:48.926Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32480385ms] [INFO] [2026-06-04T13:00:53.945Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32480406ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32480407ms] [ERROR] [2026-06-04T13:00:53.966Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32480408ms] [ERROR] [2026-06-04T13:00:53.967Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32480408ms] [ERROR] [2026-06-04T13:00:53.968Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32480409ms] [ERROR] [2026-06-04T13:00:53.969Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32485440ms] [INFO] [2026-06-04T13:00:58.999Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32485461ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32485462ms] [ERROR] [2026-06-04T13:00:59.022Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32485463ms] [ERROR] [2026-06-04T13:00:59.023Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32485464ms] [ERROR] [2026-06-04T13:00:59.024Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32485465ms] [ERROR] [2026-06-04T13:00:59.024Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32490493ms] [INFO] [2026-06-04T13:01:04.053Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32490780ms] [INFO] [2026-06-04T13:01:04.340Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=5xt5_V5IA4z4ZBZVehyStQ. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32491711ms] [LOG] [Telegram.WebView] > postEvent web_app_set_header_color {color_key: bg_color} @ https://telegram.org/js/telegram-web-app.js:134 +[32491712ms] [LOG] [Telegram.WebView] > postEvent web_app_set_bottom_bar_color {color: #ffffff} @ https://telegram.org/js/telegram-web-app.js:134 +[32491712ms] [LOG] [Telegram.WebView] > postEvent web_app_request_theme @ https://telegram.org/js/telegram-web-app.js:134 +[32491712ms] [LOG] [Telegram.WebView] > postEvent web_app_request_viewport @ https://telegram.org/js/telegram-web-app.js:134 +[32491712ms] [LOG] [Telegram.WebView] > postEvent web_app_request_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[32491712ms] [LOG] [Telegram.WebView] > postEvent web_app_request_content_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[32491721ms] [LOG] [Telegram.WebView] > postEvent web_app_ready @ https://telegram.org/js/telegram-web-app.js:134 +[32491721ms] [LOG] [Telegram.WebView] > postEvent web_app_expand @ https://telegram.org/js/telegram-web-app.js:134 +[32491761ms] [INFO] [2026-06-04T13:01:05.321Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32491823ms] [INFO] [2026-06-04T13:01:05.383Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=JTK53hwuUDVenXliD4BQzQ. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513646ms] [ERROR] [2026-06-04T13:01:27.206Z] Error: Connection disconnected with error 'Error: WebSocket closed with status code: 1006 (no reason given).'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513655ms] [INFO] [2026-06-04T13:01:27.214Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513682ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32513683ms] [ERROR] [2026-06-04T13:01:27.242Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513684ms] [ERROR] [2026-06-04T13:01:27.243Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513685ms] [ERROR] [2026-06-04T13:01:27.244Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513685ms] [ERROR] [2026-06-04T13:01:27.245Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513686ms] [INFO] [2026-06-04T13:01:27.246Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513701ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32513702ms] [ERROR] [2026-06-04T13:01:27.261Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513702ms] [ERROR] [2026-06-04T13:01:27.262Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513703ms] [ERROR] [2026-06-04T13:01:27.263Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513704ms] [ERROR] [2026-06-04T13:01:27.264Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513705ms] [INFO] [2026-06-04T13:01:27.265Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513720ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32513721ms] [ERROR] [2026-06-04T13:01:27.280Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513722ms] [ERROR] [2026-06-04T13:01:27.281Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513723ms] [ERROR] [2026-06-04T13:01:27.282Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513723ms] [ERROR] [2026-06-04T13:01:27.283Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513724ms] [INFO] [2026-06-04T13:01:27.284Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513741ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32513749ms] [ERROR] [2026-06-04T13:01:27.308Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513749ms] [ERROR] [2026-06-04T13:01:27.309Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513750ms] [ERROR] [2026-06-04T13:01:27.310Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513751ms] [ERROR] [2026-06-04T13:01:27.311Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513752ms] [INFO] [2026-06-04T13:01:27.312Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513767ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32513768ms] [ERROR] [2026-06-04T13:01:27.327Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513768ms] [ERROR] [2026-06-04T13:01:27.328Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513769ms] [ERROR] [2026-06-04T13:01:27.328Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513769ms] [ERROR] [2026-06-04T13:01:27.329Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513770ms] [INFO] [2026-06-04T13:01:27.330Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513788ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32513788ms] [ERROR] [2026-06-04T13:01:27.348Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513788ms] [ERROR] [2026-06-04T13:01:27.348Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513789ms] [ERROR] [2026-06-04T13:01:27.348Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513790ms] [ERROR] [2026-06-04T13:01:27.349Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513790ms] [INFO] [2026-06-04T13:01:27.350Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513805ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32513806ms] [ERROR] [2026-06-04T13:01:27.366Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513807ms] [ERROR] [2026-06-04T13:01:27.366Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513808ms] [ERROR] [2026-06-04T13:01:27.367Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513808ms] [ERROR] [2026-06-04T13:01:27.368Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513809ms] [INFO] [2026-06-04T13:01:27.369Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513825ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32513825ms] [ERROR] [2026-06-04T13:01:27.385Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513826ms] [ERROR] [2026-06-04T13:01:27.385Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513827ms] [ERROR] [2026-06-04T13:01:27.386Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513827ms] [ERROR] [2026-06-04T13:01:27.387Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513828ms] [INFO] [2026-06-04T13:01:27.387Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513844ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32513845ms] [ERROR] [2026-06-04T13:01:27.404Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513845ms] [ERROR] [2026-06-04T13:01:27.405Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513846ms] [ERROR] [2026-06-04T13:01:27.406Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513847ms] [ERROR] [2026-06-04T13:01:27.407Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513848ms] [INFO] [2026-06-04T13:01:27.407Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513862ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32513863ms] [ERROR] [2026-06-04T13:01:27.422Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513864ms] [ERROR] [2026-06-04T13:01:27.423Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513864ms] [ERROR] [2026-06-04T13:01:27.424Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32513865ms] [ERROR] [2026-06-04T13:01:27.424Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32518886ms] [INFO] [2026-06-04T13:01:32.445Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32518904ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32518905ms] [ERROR] [2026-06-04T13:01:32.465Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32518906ms] [ERROR] [2026-06-04T13:01:32.466Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32518907ms] [ERROR] [2026-06-04T13:01:32.466Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32518908ms] [ERROR] [2026-06-04T13:01:32.467Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32523926ms] [INFO] [2026-06-04T13:01:37.486Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32523947ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[32523947ms] [ERROR] [2026-06-04T13:01:37.507Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32523948ms] [ERROR] [2026-06-04T13:01:37.508Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32523949ms] [ERROR] [2026-06-04T13:01:37.508Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32523950ms] [ERROR] [2026-06-04T13:01:37.509Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32528972ms] [INFO] [2026-06-04T13:01:42.531Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32529251ms] [INFO] [2026-06-04T13:01:42.810Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=17ewvnRqMBETa2X3bI1cPQ. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32530256ms] [LOG] [Telegram.WebView] > postEvent web_app_set_header_color {color_key: bg_color} @ https://telegram.org/js/telegram-web-app.js:134 +[32530257ms] [LOG] [Telegram.WebView] > postEvent web_app_set_bottom_bar_color {color: #ffffff} @ https://telegram.org/js/telegram-web-app.js:134 +[32530257ms] [LOG] [Telegram.WebView] > postEvent web_app_request_theme @ https://telegram.org/js/telegram-web-app.js:134 +[32530257ms] [LOG] [Telegram.WebView] > postEvent web_app_request_viewport @ https://telegram.org/js/telegram-web-app.js:134 +[32530257ms] [LOG] [Telegram.WebView] > postEvent web_app_request_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[32530258ms] [LOG] [Telegram.WebView] > postEvent web_app_request_content_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[32530263ms] [LOG] [Telegram.WebView] > postEvent web_app_ready @ https://telegram.org/js/telegram-web-app.js:134 +[32530263ms] [LOG] [Telegram.WebView] > postEvent web_app_expand @ https://telegram.org/js/telegram-web-app.js:134 +[32530296ms] [INFO] [2026-06-04T13:01:43.856Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[32530345ms] [INFO] [2026-06-04T13:01:43.905Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=b2p2XrUxJvybKzR-4qnGKA. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37528939ms] [ERROR] [2026-06-04T14:25:02.499Z] Error: Connection disconnected with error 'Error: WebSocket closed with status code: 1006 (no reason given).'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37528947ms] [INFO] [2026-06-04T14:25:02.506Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529005ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[37529006ms] [ERROR] [2026-06-04T14:25:02.565Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529007ms] [ERROR] [2026-06-04T14:25:02.566Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529007ms] [ERROR] [2026-06-04T14:25:02.567Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529008ms] [ERROR] [2026-06-04T14:25:02.567Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529008ms] [INFO] [2026-06-04T14:25:02.568Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529034ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[37529035ms] [ERROR] [2026-06-04T14:25:02.594Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529035ms] [ERROR] [2026-06-04T14:25:02.595Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529036ms] [ERROR] [2026-06-04T14:25:02.596Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529037ms] [ERROR] [2026-06-04T14:25:02.597Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529038ms] [INFO] [2026-06-04T14:25:02.597Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529057ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[37529057ms] [ERROR] [2026-06-04T14:25:02.617Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529058ms] [ERROR] [2026-06-04T14:25:02.618Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529059ms] [ERROR] [2026-06-04T14:25:02.619Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529060ms] [ERROR] [2026-06-04T14:25:02.619Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529061ms] [INFO] [2026-06-04T14:25:02.620Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529076ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[37529077ms] [ERROR] [2026-06-04T14:25:02.636Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529077ms] [ERROR] [2026-06-04T14:25:02.637Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529078ms] [ERROR] [2026-06-04T14:25:02.638Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529079ms] [ERROR] [2026-06-04T14:25:02.638Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529080ms] [INFO] [2026-06-04T14:25:02.639Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529096ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[37529096ms] [ERROR] [2026-06-04T14:25:02.656Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529097ms] [ERROR] [2026-06-04T14:25:02.657Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529098ms] [ERROR] [2026-06-04T14:25:02.657Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529099ms] [ERROR] [2026-06-04T14:25:02.658Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529100ms] [INFO] [2026-06-04T14:25:02.659Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529114ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[37529115ms] [ERROR] [2026-06-04T14:25:02.674Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529116ms] [ERROR] [2026-06-04T14:25:02.675Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529116ms] [ERROR] [2026-06-04T14:25:02.676Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529117ms] [ERROR] [2026-06-04T14:25:02.676Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529117ms] [INFO] [2026-06-04T14:25:02.677Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529132ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[37529132ms] [ERROR] [2026-06-04T14:25:02.692Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529133ms] [ERROR] [2026-06-04T14:25:02.693Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529134ms] [ERROR] [2026-06-04T14:25:02.693Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529134ms] [ERROR] [2026-06-04T14:25:02.693Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529134ms] [INFO] [2026-06-04T14:25:02.694Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529165ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[37529165ms] [ERROR] [2026-06-04T14:25:02.725Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529166ms] [ERROR] [2026-06-04T14:25:02.726Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529167ms] [ERROR] [2026-06-04T14:25:02.726Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529168ms] [ERROR] [2026-06-04T14:25:02.727Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529169ms] [INFO] [2026-06-04T14:25:02.728Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529185ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[37529186ms] [ERROR] [2026-06-04T14:25:02.745Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529187ms] [ERROR] [2026-06-04T14:25:02.746Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529187ms] [ERROR] [2026-06-04T14:25:02.747Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529188ms] [ERROR] [2026-06-04T14:25:02.748Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529189ms] [INFO] [2026-06-04T14:25:02.748Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529203ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[37529204ms] [ERROR] [2026-06-04T14:25:02.764Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529205ms] [ERROR] [2026-06-04T14:25:02.764Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529205ms] [ERROR] [2026-06-04T14:25:02.765Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37529206ms] [ERROR] [2026-06-04T14:25:02.765Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37534217ms] [INFO] [2026-06-04T14:25:07.777Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37534239ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[37534240ms] [ERROR] [2026-06-04T14:25:07.799Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37534241ms] [ERROR] [2026-06-04T14:25:07.800Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37534241ms] [ERROR] [2026-06-04T14:25:07.801Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37534241ms] [ERROR] [2026-06-04T14:25:07.801Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37539251ms] [INFO] [2026-06-04T14:25:12.811Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37539274ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[37539275ms] [ERROR] [2026-06-04T14:25:12.834Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37539275ms] [ERROR] [2026-06-04T14:25:12.835Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37539276ms] [ERROR] [2026-06-04T14:25:12.836Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37539277ms] [ERROR] [2026-06-04T14:25:12.836Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37544294ms] [INFO] [2026-06-04T14:25:17.854Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37544325ms] [ERROR] Failed to load resource: the server responded with a status of 502 () @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[37544326ms] [ERROR] [2026-06-04T14:25:17.885Z] Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37544326ms] [ERROR] [2026-06-04T14:25:17.886Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37544327ms] [ERROR] [2026-06-04T14:25:17.886Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37544327ms] [ERROR] [2026-06-04T14:25:17.887Z] Error: Error: Failed to complete negotiation with the server: Error:
: Status code '502' @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37549339ms] [INFO] [2026-06-04T14:25:22.899Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37549669ms] [INFO] [2026-06-04T14:25:23.229Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=2cTG5bUC6wrY-vicNwgwGA. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37551588ms] [LOG] [Telegram.WebView] > postEvent web_app_set_header_color {color_key: bg_color} @ https://telegram.org/js/telegram-web-app.js:134 +[37551589ms] [LOG] [Telegram.WebView] > postEvent web_app_set_bottom_bar_color {color: #ffffff} @ https://telegram.org/js/telegram-web-app.js:134 +[37551589ms] [LOG] [Telegram.WebView] > postEvent web_app_request_theme @ https://telegram.org/js/telegram-web-app.js:134 +[37551589ms] [LOG] [Telegram.WebView] > postEvent web_app_request_viewport @ https://telegram.org/js/telegram-web-app.js:134 +[37551589ms] [LOG] [Telegram.WebView] > postEvent web_app_request_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[37551589ms] [LOG] [Telegram.WebView] > postEvent web_app_request_content_safe_area @ https://telegram.org/js/telegram-web-app.js:134 +[37551596ms] [LOG] [Telegram.WebView] > postEvent web_app_ready @ https://telegram.org/js/telegram-web-app.js:134 +[37551596ms] [LOG] [Telegram.WebView] > postEvent web_app_expand @ https://telegram.org/js/telegram-web-app.js:134 +[37551632ms] [INFO] [2026-06-04T14:25:25.191Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37551685ms] [INFO] [2026-06-04T14:25:25.244Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=9FeQ4vOer6dylcPY3SQwhg. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37823079ms] [ERROR] [2026-06-04T14:29:56.638Z] Error: Connection disconnected with error 'Error: WebSocket closed with status code: 1006 (no reason given).'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37823088ms] [INFO] [2026-06-04T14:29:56.647Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37828013ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_CLOSED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[37828013ms] [WARNING] [2026-06-04T14:30:01.573Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37828014ms] [ERROR] [2026-06-04T14:30:01.573Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37828014ms] [ERROR] [2026-06-04T14:30:01.573Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37828014ms] [ERROR] [2026-06-04T14:30:01.573Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37828014ms] [ERROR] [2026-06-04T14:30:01.574Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37828014ms] [INFO] [2026-06-04T14:30:01.574Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37835796ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_CLOSED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[37835796ms] [WARNING] [2026-06-04T14:30:09.355Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37835796ms] [ERROR] [2026-06-04T14:30:09.356Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37835796ms] [ERROR] [2026-06-04T14:30:09.356Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37835796ms] [ERROR] [2026-06-04T14:30:09.356Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37835797ms] [ERROR] [2026-06-04T14:30:09.356Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37835797ms] [INFO] [2026-06-04T14:30:09.356Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[37839169ms] [INFO] [2026-06-04T14:30:12.729Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=c-sHqFiW8iE3n-OJSZqBlA. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098325ms] [ERROR] [2026-06-04T17:37:51.884Z] Error: Connection disconnected with error 'Error: Server timeout elapsed without receiving a message from the server.'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098334ms] [INFO] [2026-06-04T17:37:51.893Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098337ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49098337ms] [WARNING] [2026-06-04T17:37:51.896Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098337ms] [ERROR] [2026-06-04T17:37:51.896Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098337ms] [ERROR] [2026-06-04T17:37:51.896Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098337ms] [ERROR] [2026-06-04T17:37:51.897Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098337ms] [ERROR] [2026-06-04T17:37:51.897Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098338ms] [INFO] [2026-06-04T17:37:51.897Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098344ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49098344ms] [WARNING] [2026-06-04T17:37:51.904Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098344ms] [ERROR] [2026-06-04T17:37:51.904Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098344ms] [ERROR] [2026-06-04T17:37:51.904Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098345ms] [ERROR] [2026-06-04T17:37:51.904Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098345ms] [ERROR] [2026-06-04T17:37:51.904Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098345ms] [INFO] [2026-06-04T17:37:51.904Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098347ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49098347ms] [WARNING] [2026-06-04T17:37:51.906Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098347ms] [ERROR] [2026-06-04T17:37:51.907Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098347ms] [ERROR] [2026-06-04T17:37:51.907Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098347ms] [ERROR] [2026-06-04T17:37:51.907Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098348ms] [ERROR] [2026-06-04T17:37:51.907Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098348ms] [INFO] [2026-06-04T17:37:51.907Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098349ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49098350ms] [WARNING] [2026-06-04T17:37:51.909Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098350ms] [ERROR] [2026-06-04T17:37:51.909Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098350ms] [ERROR] [2026-06-04T17:37:51.909Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098350ms] [ERROR] [2026-06-04T17:37:51.909Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098350ms] [ERROR] [2026-06-04T17:37:51.909Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098350ms] [INFO] [2026-06-04T17:37:51.909Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098352ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49098352ms] [WARNING] [2026-06-04T17:37:51.911Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098352ms] [ERROR] [2026-06-04T17:37:51.911Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098352ms] [ERROR] [2026-06-04T17:37:51.911Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098352ms] [ERROR] [2026-06-04T17:37:51.911Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098352ms] [ERROR] [2026-06-04T17:37:51.912Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098352ms] [INFO] [2026-06-04T17:37:51.912Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098354ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49098354ms] [WARNING] [2026-06-04T17:37:51.914Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098354ms] [ERROR] [2026-06-04T17:37:51.914Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098354ms] [ERROR] [2026-06-04T17:37:51.914Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098354ms] [ERROR] [2026-06-04T17:37:51.914Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098355ms] [ERROR] [2026-06-04T17:37:51.914Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098355ms] [INFO] [2026-06-04T17:37:51.914Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098361ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49098361ms] [WARNING] [2026-06-04T17:37:51.921Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098362ms] [ERROR] [2026-06-04T17:37:51.921Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098362ms] [ERROR] [2026-06-04T17:37:51.921Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098362ms] [ERROR] [2026-06-04T17:37:51.921Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098362ms] [ERROR] [2026-06-04T17:37:51.921Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098362ms] [INFO] [2026-06-04T17:37:51.922Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098364ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49098364ms] [WARNING] [2026-06-04T17:37:51.924Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098365ms] [ERROR] [2026-06-04T17:37:51.924Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098365ms] [ERROR] [2026-06-04T17:37:51.924Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098365ms] [ERROR] [2026-06-04T17:37:51.924Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098365ms] [ERROR] [2026-06-04T17:37:51.924Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098365ms] [INFO] [2026-06-04T17:37:51.925Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098367ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49098367ms] [WARNING] [2026-06-04T17:37:51.927Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098367ms] [ERROR] [2026-06-04T17:37:51.927Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098367ms] [ERROR] [2026-06-04T17:37:51.927Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098368ms] [ERROR] [2026-06-04T17:37:51.927Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098368ms] [ERROR] [2026-06-04T17:37:51.927Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098368ms] [INFO] [2026-06-04T17:37:51.927Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098370ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49098370ms] [WARNING] [2026-06-04T17:37:51.929Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098370ms] [ERROR] [2026-06-04T17:37:51.929Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098370ms] [ERROR] [2026-06-04T17:37:51.929Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098370ms] [ERROR] [2026-06-04T17:37:51.929Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49098370ms] [ERROR] [2026-06-04T17:37:51.930Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49103375ms] [INFO] [2026-06-04T17:37:56.935Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49126047ms] [ERROR] WebSocket connection to 'wss://game.codeanddice.ru/_blazor?id=M3JSTeFNiDW1s6EAgYymUQ' failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49126047ms] [INFO] [2026-06-04T17:38:19.607Z] Information: (WebSockets transport) There was an error with the transport. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49126048ms] [ERROR] [2026-06-04T17:38:19.607Z] Error: Failed to start the transport 'WebSockets': Error: WebSocket failed to connect. The connection could not be found on the server, either the endpoint may not be a SignalR endpoint, the connection ID is not present on the server, or there is a proxy blocking WebSockets. If you have multiple servers check that sticky sessions are enabled. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49157092ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_TIMED_OUT @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49157092ms] [WARNING] [2026-06-04T17:38:50.651Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49157092ms] [ERROR] [2026-06-04T17:38:50.652Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49157092ms] [ERROR] [2026-06-04T17:38:50.652Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49157092ms] [ERROR] [2026-06-04T17:38:50.652Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49157093ms] [ERROR] [2026-06-04T17:38:50.652Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49162115ms] [INFO] [2026-06-04T17:38:55.674Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49183145ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_TIMED_OUT @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49183145ms] [WARNING] [2026-06-04T17:39:16.705Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49183145ms] [ERROR] [2026-06-04T17:39:16.705Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49183145ms] [ERROR] [2026-06-04T17:39:16.705Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49183146ms] [ERROR] [2026-06-04T17:39:16.705Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49183146ms] [ERROR] [2026-06-04T17:39:16.705Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49188162ms] [INFO] [2026-06-04T17:39:21.721Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49209216ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_TIMED_OUT @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49209216ms] [WARNING] [2026-06-04T17:39:42.775Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49209216ms] [ERROR] [2026-06-04T17:39:42.775Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49209216ms] [ERROR] [2026-06-04T17:39:42.776Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49209216ms] [ERROR] [2026-06-04T17:39:42.776Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49209216ms] [ERROR] [2026-06-04T17:39:42.776Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49214230ms] [INFO] [2026-06-04T17:39:47.790Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49235286ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_TIMED_OUT @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49235286ms] [WARNING] [2026-06-04T17:40:08.846Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49235286ms] [ERROR] [2026-06-04T17:40:08.846Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49235287ms] [ERROR] [2026-06-04T17:40:08.846Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49235287ms] [ERROR] [2026-06-04T17:40:08.846Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49235287ms] [ERROR] [2026-06-04T17:40:08.846Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49240299ms] [INFO] [2026-06-04T17:40:13.858Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49261335ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_TIMED_OUT @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49261335ms] [WARNING] [2026-06-04T17:40:34.894Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49261335ms] [ERROR] [2026-06-04T17:40:34.894Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49261335ms] [ERROR] [2026-06-04T17:40:34.894Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49261335ms] [ERROR] [2026-06-04T17:40:34.895Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49261335ms] [ERROR] [2026-06-04T17:40:34.895Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49266354ms] [INFO] [2026-06-04T17:40:39.914Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49287397ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_TIMED_OUT @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49287397ms] [WARNING] [2026-06-04T17:41:00.956Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49287397ms] [ERROR] [2026-06-04T17:41:00.956Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49287397ms] [ERROR] [2026-06-04T17:41:00.956Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49287397ms] [ERROR] [2026-06-04T17:41:00.957Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49287397ms] [ERROR] [2026-06-04T17:41:00.957Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49292411ms] [INFO] [2026-06-04T17:41:05.971Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49311527ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49311527ms] [WARNING] [2026-06-04T17:41:25.086Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49311527ms] [ERROR] [2026-06-04T17:41:25.087Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49311527ms] [ERROR] [2026-06-04T17:41:25.087Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49311527ms] [ERROR] [2026-06-04T17:41:25.087Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49311529ms] [ERROR] [2026-06-04T17:41:25.088Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49316540ms] [INFO] [2026-06-04T17:41:30.099Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49316542ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49316542ms] [WARNING] [2026-06-04T17:41:30.102Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49316542ms] [ERROR] [2026-06-04T17:41:30.102Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49316543ms] [ERROR] [2026-06-04T17:41:30.102Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49316543ms] [ERROR] [2026-06-04T17:41:30.102Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49316543ms] [ERROR] [2026-06-04T17:41:30.102Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49321550ms] [INFO] [2026-06-04T17:41:35.109Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49321552ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49321552ms] [WARNING] [2026-06-04T17:41:35.112Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49321552ms] [ERROR] [2026-06-04T17:41:35.112Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49321552ms] [ERROR] [2026-06-04T17:41:35.112Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49321552ms] [ERROR] [2026-06-04T17:41:35.112Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49321552ms] [ERROR] [2026-06-04T17:41:35.112Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49326570ms] [INFO] [2026-06-04T17:41:40.129Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49326572ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49326572ms] [WARNING] [2026-06-04T17:41:40.132Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49326572ms] [ERROR] [2026-06-04T17:41:40.132Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49326572ms] [ERROR] [2026-06-04T17:41:40.132Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49326573ms] [ERROR] [2026-06-04T17:41:40.132Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49326573ms] [ERROR] [2026-06-04T17:41:40.132Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49356652ms] [INFO] [2026-06-04T17:42:10.212Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49377697ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_TIMED_OUT @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49377697ms] [WARNING] [2026-06-04T17:42:31.256Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49377697ms] [ERROR] [2026-06-04T17:42:31.257Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49377697ms] [ERROR] [2026-06-04T17:42:31.257Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49377697ms] [ERROR] [2026-06-04T17:42:31.257Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49377698ms] [ERROR] [2026-06-04T17:42:31.257Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49407801ms] [INFO] [2026-06-04T17:43:01.360Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49428850ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_TIMED_OUT @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49428850ms] [WARNING] [2026-06-04T17:43:22.409Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49428850ms] [ERROR] [2026-06-04T17:43:22.410Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49428850ms] [ERROR] [2026-06-04T17:43:22.410Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49428850ms] [ERROR] [2026-06-04T17:43:22.410Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49428851ms] [ERROR] [2026-06-04T17:43:22.410Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49458955ms] [INFO] [2026-06-04T17:43:52.515Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49479999ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_TIMED_OUT @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49480000ms] [WARNING] [2026-06-04T17:44:13.559Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49480001ms] [ERROR] [2026-06-04T17:44:13.561Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49480003ms] [ERROR] [2026-06-04T17:44:13.562Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49480003ms] [ERROR] [2026-06-04T17:44:13.562Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49480003ms] [ERROR] [2026-06-04T17:44:13.563Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49510082ms] [INFO] [2026-06-04T17:44:43.641Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49524107ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[49524107ms] [WARNING] [2026-06-04T17:44:57.667Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49524107ms] [ERROR] [2026-06-04T17:44:57.667Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49524108ms] [ERROR] [2026-06-04T17:44:57.667Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49524108ms] [ERROR] [2026-06-04T17:44:57.667Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49524108ms] [ERROR] [2026-06-04T17:44:57.667Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49554206ms] [INFO] [2026-06-04T17:45:27.765Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[49554284ms] [INFO] [2026-06-04T17:45:27.844Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=QgQhIfVnsC8j3vw0m_oUjw. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415250ms] [ERROR] [2026-06-04T18:49:48.810Z] Error: Connection disconnected with error 'Error: Server timeout elapsed without receiving a message from the server.'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415259ms] [INFO] [2026-06-04T18:49:48.818Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415263ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53415263ms] [WARNING] [2026-06-04T18:49:48.822Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415263ms] [ERROR] [2026-06-04T18:49:48.822Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415263ms] [ERROR] [2026-06-04T18:49:48.823Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415263ms] [ERROR] [2026-06-04T18:49:48.823Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415264ms] [ERROR] [2026-06-04T18:49:48.823Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415264ms] [INFO] [2026-06-04T18:49:48.823Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415266ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53415267ms] [WARNING] [2026-06-04T18:49:48.826Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415267ms] [ERROR] [2026-06-04T18:49:48.826Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415267ms] [ERROR] [2026-06-04T18:49:48.826Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415267ms] [ERROR] [2026-06-04T18:49:48.826Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415267ms] [ERROR] [2026-06-04T18:49:48.827Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415267ms] [INFO] [2026-06-04T18:49:48.827Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415275ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53415276ms] [WARNING] [2026-06-04T18:49:48.835Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415276ms] [ERROR] [2026-06-04T18:49:48.835Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415276ms] [ERROR] [2026-06-04T18:49:48.835Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415276ms] [ERROR] [2026-06-04T18:49:48.835Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415276ms] [ERROR] [2026-06-04T18:49:48.836Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415276ms] [INFO] [2026-06-04T18:49:48.836Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415278ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53415278ms] [WARNING] [2026-06-04T18:49:48.838Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415278ms] [ERROR] [2026-06-04T18:49:48.838Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415278ms] [ERROR] [2026-06-04T18:49:48.838Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415279ms] [ERROR] [2026-06-04T18:49:48.838Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415279ms] [ERROR] [2026-06-04T18:49:48.838Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415279ms] [INFO] [2026-06-04T18:49:48.838Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415281ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53415281ms] [WARNING] [2026-06-04T18:49:48.841Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415281ms] [ERROR] [2026-06-04T18:49:48.841Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415281ms] [ERROR] [2026-06-04T18:49:48.841Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415281ms] [ERROR] [2026-06-04T18:49:48.841Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415282ms] [ERROR] [2026-06-04T18:49:48.841Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415282ms] [INFO] [2026-06-04T18:49:48.841Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415283ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53415283ms] [WARNING] [2026-06-04T18:49:48.843Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415283ms] [ERROR] [2026-06-04T18:49:48.843Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415284ms] [ERROR] [2026-06-04T18:49:48.843Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415284ms] [ERROR] [2026-06-04T18:49:48.843Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415284ms] [ERROR] [2026-06-04T18:49:48.843Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415284ms] [INFO] [2026-06-04T18:49:48.843Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415285ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53415286ms] [WARNING] [2026-06-04T18:49:48.845Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415286ms] [ERROR] [2026-06-04T18:49:48.845Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415286ms] [ERROR] [2026-06-04T18:49:48.845Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415286ms] [ERROR] [2026-06-04T18:49:48.845Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415286ms] [ERROR] [2026-06-04T18:49:48.846Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415286ms] [INFO] [2026-06-04T18:49:48.846Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415294ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53415294ms] [WARNING] [2026-06-04T18:49:48.853Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415294ms] [ERROR] [2026-06-04T18:49:48.853Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415294ms] [ERROR] [2026-06-04T18:49:48.854Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415294ms] [ERROR] [2026-06-04T18:49:48.854Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415294ms] [ERROR] [2026-06-04T18:49:48.854Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415295ms] [INFO] [2026-06-04T18:49:48.854Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415297ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53415297ms] [WARNING] [2026-06-04T18:49:48.856Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415297ms] [ERROR] [2026-06-04T18:49:48.856Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415297ms] [ERROR] [2026-06-04T18:49:48.856Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415297ms] [ERROR] [2026-06-04T18:49:48.856Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415297ms] [ERROR] [2026-06-04T18:49:48.856Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415297ms] [INFO] [2026-06-04T18:49:48.857Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415299ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53415299ms] [WARNING] [2026-06-04T18:49:48.858Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415299ms] [ERROR] [2026-06-04T18:49:48.859Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415299ms] [ERROR] [2026-06-04T18:49:48.859Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415299ms] [ERROR] [2026-06-04T18:49:48.859Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53415299ms] [ERROR] [2026-06-04T18:49:48.859Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53420316ms] [INFO] [2026-06-04T18:49:53.876Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53422512ms] [INFO] [2026-06-04T18:49:56.071Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=zYJ1N7q7cCr4atJsMGh9YA. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53456701ms] [ERROR] [2026-06-04T18:50:30.260Z] Error: Connection disconnected with error 'Error: WebSocket closed with status code: 1006 (no reason given).'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53456707ms] [INFO] [2026-06-04T18:50:30.267Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53475789ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53475789ms] [WARNING] [2026-06-04T18:50:49.348Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53475789ms] [ERROR] [2026-06-04T18:50:49.349Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53475789ms] [ERROR] [2026-06-04T18:50:49.349Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53475789ms] [ERROR] [2026-06-04T18:50:49.349Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53475790ms] [ERROR] [2026-06-04T18:50:49.349Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53475790ms] [INFO] [2026-06-04T18:50:49.350Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53481885ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53481885ms] [WARNING] [2026-06-04T18:50:55.444Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53481885ms] [ERROR] [2026-06-04T18:50:55.444Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53481885ms] [ERROR] [2026-06-04T18:50:55.445Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53481885ms] [ERROR] [2026-06-04T18:50:55.445Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53481885ms] [ERROR] [2026-06-04T18:50:55.445Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53481885ms] [INFO] [2026-06-04T18:50:55.445Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53487988ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53487988ms] [WARNING] [2026-06-04T18:51:01.548Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53487988ms] [ERROR] [2026-06-04T18:51:01.548Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53487989ms] [ERROR] [2026-06-04T18:51:01.548Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53487989ms] [ERROR] [2026-06-04T18:51:01.548Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53487989ms] [ERROR] [2026-06-04T18:51:01.548Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53487989ms] [INFO] [2026-06-04T18:51:01.549Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53500095ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53500095ms] [WARNING] [2026-06-04T18:51:13.655Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53500096ms] [ERROR] [2026-06-04T18:51:13.655Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53500096ms] [ERROR] [2026-06-04T18:51:13.655Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53500096ms] [ERROR] [2026-06-04T18:51:13.655Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53500096ms] [ERROR] [2026-06-04T18:51:13.656Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53500096ms] [INFO] [2026-06-04T18:51:13.656Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53506199ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53506199ms] [WARNING] [2026-06-04T18:51:19.759Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53506199ms] [ERROR] [2026-06-04T18:51:19.759Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53506199ms] [ERROR] [2026-06-04T18:51:19.759Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53506199ms] [ERROR] [2026-06-04T18:51:19.759Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53506199ms] [ERROR] [2026-06-04T18:51:19.759Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53506200ms] [INFO] [2026-06-04T18:51:19.759Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53512297ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53512297ms] [WARNING] [2026-06-04T18:51:25.857Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53512298ms] [ERROR] [2026-06-04T18:51:25.857Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53512298ms] [ERROR] [2026-06-04T18:51:25.857Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53512298ms] [ERROR] [2026-06-04T18:51:25.857Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53512298ms] [ERROR] [2026-06-04T18:51:25.857Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53512298ms] [INFO] [2026-06-04T18:51:25.858Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53527391ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53527391ms] [WARNING] [2026-06-04T18:51:40.951Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53527392ms] [ERROR] [2026-06-04T18:51:40.951Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53527392ms] [ERROR] [2026-06-04T18:51:40.951Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53527392ms] [ERROR] [2026-06-04T18:51:40.951Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53527392ms] [ERROR] [2026-06-04T18:51:40.952Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53527392ms] [INFO] [2026-06-04T18:51:40.952Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53533482ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53533482ms] [WARNING] [2026-06-04T18:51:47.041Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53533482ms] [ERROR] [2026-06-04T18:51:47.041Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53533482ms] [ERROR] [2026-06-04T18:51:47.042Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53533482ms] [ERROR] [2026-06-04T18:51:47.042Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53533482ms] [ERROR] [2026-06-04T18:51:47.042Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53533482ms] [INFO] [2026-06-04T18:51:47.042Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53539575ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53539575ms] [WARNING] [2026-06-04T18:51:53.134Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53539575ms] [ERROR] [2026-06-04T18:51:53.134Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53539575ms] [ERROR] [2026-06-04T18:51:53.135Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53539575ms] [ERROR] [2026-06-04T18:51:53.135Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53539575ms] [ERROR] [2026-06-04T18:51:53.135Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53539576ms] [INFO] [2026-06-04T18:51:53.135Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53545672ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53545672ms] [WARNING] [2026-06-04T18:51:59.231Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53545672ms] [ERROR] [2026-06-04T18:51:59.231Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53545672ms] [ERROR] [2026-06-04T18:51:59.231Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53545672ms] [ERROR] [2026-06-04T18:51:59.231Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53545672ms] [ERROR] [2026-06-04T18:51:59.232Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53550678ms] [INFO] [2026-06-04T18:52:04.238Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53568806ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53568806ms] [WARNING] [2026-06-04T18:52:22.366Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53568806ms] [ERROR] [2026-06-04T18:52:22.366Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53568806ms] [ERROR] [2026-06-04T18:52:22.366Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53568806ms] [ERROR] [2026-06-04T18:52:22.366Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53568807ms] [ERROR] [2026-06-04T18:52:22.366Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53573822ms] [INFO] [2026-06-04T18:52:27.382Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53579928ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53579928ms] [WARNING] [2026-06-04T18:52:33.487Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53579928ms] [ERROR] [2026-06-04T18:52:33.488Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53579928ms] [ERROR] [2026-06-04T18:52:33.488Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53579928ms] [ERROR] [2026-06-04T18:52:33.488Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53579928ms] [ERROR] [2026-06-04T18:52:33.488Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53584937ms] [INFO] [2026-06-04T18:52:38.496Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53597051ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53597051ms] [WARNING] [2026-06-04T18:52:50.610Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53597051ms] [ERROR] [2026-06-04T18:52:50.610Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53597051ms] [ERROR] [2026-06-04T18:52:50.610Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53597051ms] [ERROR] [2026-06-04T18:52:50.611Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53597051ms] [ERROR] [2026-06-04T18:52:50.611Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53602073ms] [INFO] [2026-06-04T18:52:55.633Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53608186ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53608186ms] [WARNING] [2026-06-04T18:53:01.745Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53608186ms] [ERROR] [2026-06-04T18:53:01.746Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53608186ms] [ERROR] [2026-06-04T18:53:01.746Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53608186ms] [ERROR] [2026-06-04T18:53:01.746Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53608187ms] [ERROR] [2026-06-04T18:53:01.746Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53613202ms] [INFO] [2026-06-04T18:53:06.761Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53625304ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53625304ms] [WARNING] [2026-06-04T18:53:18.864Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53625304ms] [ERROR] [2026-06-04T18:53:18.864Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53625305ms] [ERROR] [2026-06-04T18:53:18.864Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53625305ms] [ERROR] [2026-06-04T18:53:18.864Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53625305ms] [ERROR] [2026-06-04T18:53:18.864Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53630322ms] [INFO] [2026-06-04T18:53:23.881Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53636422ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53636422ms] [WARNING] [2026-06-04T18:53:29.981Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53636422ms] [ERROR] [2026-06-04T18:53:29.981Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53636422ms] [ERROR] [2026-06-04T18:53:29.981Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53636422ms] [ERROR] [2026-06-04T18:53:29.982Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53636422ms] [ERROR] [2026-06-04T18:53:29.982Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53641447ms] [INFO] [2026-06-04T18:53:35.006Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53647544ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53647545ms] [WARNING] [2026-06-04T18:53:41.104Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53647545ms] [ERROR] [2026-06-04T18:53:41.104Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53647545ms] [ERROR] [2026-06-04T18:53:41.104Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53647545ms] [ERROR] [2026-06-04T18:53:41.104Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53647545ms] [ERROR] [2026-06-04T18:53:41.105Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53652556ms] [INFO] [2026-06-04T18:53:46.115Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53664667ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53664667ms] [WARNING] [2026-06-04T18:53:58.227Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53664667ms] [ERROR] [2026-06-04T18:53:58.227Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53664668ms] [ERROR] [2026-06-04T18:53:58.227Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53664668ms] [ERROR] [2026-06-04T18:53:58.227Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53664668ms] [ERROR] [2026-06-04T18:53:58.227Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53669679ms] [INFO] [2026-06-04T18:54:03.238Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53675788ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53675788ms] [WARNING] [2026-06-04T18:54:09.348Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53675788ms] [ERROR] [2026-06-04T18:54:09.348Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53675788ms] [ERROR] [2026-06-04T18:54:09.348Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53675789ms] [ERROR] [2026-06-04T18:54:09.348Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53675789ms] [ERROR] [2026-06-04T18:54:09.348Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53680805ms] [INFO] [2026-06-04T18:54:14.365Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53690881ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53690881ms] [WARNING] [2026-06-04T18:54:24.441Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53690881ms] [ERROR] [2026-06-04T18:54:24.441Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53690881ms] [ERROR] [2026-06-04T18:54:24.441Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53690881ms] [ERROR] [2026-06-04T18:54:24.441Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53690882ms] [ERROR] [2026-06-04T18:54:24.441Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53720964ms] [INFO] [2026-06-04T18:54:54.523Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53727063ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53727064ms] [WARNING] [2026-06-04T18:55:00.623Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53727064ms] [ERROR] [2026-06-04T18:55:00.623Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53727064ms] [ERROR] [2026-06-04T18:55:00.623Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53727064ms] [ERROR] [2026-06-04T18:55:00.623Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53727064ms] [ERROR] [2026-06-04T18:55:00.624Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53757144ms] [INFO] [2026-06-04T18:55:30.703Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53769257ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53769257ms] [WARNING] [2026-06-04T18:55:42.816Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53769257ms] [ERROR] [2026-06-04T18:55:42.816Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53769257ms] [ERROR] [2026-06-04T18:55:42.816Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53769257ms] [ERROR] [2026-06-04T18:55:42.816Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53769257ms] [ERROR] [2026-06-04T18:55:42.817Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53799357ms] [INFO] [2026-06-04T18:56:12.916Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53805458ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53805458ms] [WARNING] [2026-06-04T18:56:19.017Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53805458ms] [ERROR] [2026-06-04T18:56:19.017Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53805458ms] [ERROR] [2026-06-04T18:56:19.017Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53805458ms] [ERROR] [2026-06-04T18:56:19.018Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53805458ms] [ERROR] [2026-06-04T18:56:19.018Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53835554ms] [INFO] [2026-06-04T18:56:49.113Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53841670ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53841670ms] [WARNING] [2026-06-04T18:56:55.229Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53841670ms] [ERROR] [2026-06-04T18:56:55.229Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53841670ms] [ERROR] [2026-06-04T18:56:55.230Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53841670ms] [ERROR] [2026-06-04T18:56:55.230Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53841670ms] [ERROR] [2026-06-04T18:56:55.230Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53871745ms] [INFO] [2026-06-04T18:57:25.305Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53883847ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53883847ms] [WARNING] [2026-06-04T18:57:37.407Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53883847ms] [ERROR] [2026-06-04T18:57:37.407Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53883847ms] [ERROR] [2026-06-04T18:57:37.407Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53883847ms] [ERROR] [2026-06-04T18:57:37.407Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53883848ms] [ERROR] [2026-06-04T18:57:37.407Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53913936ms] [INFO] [2026-06-04T18:58:07.495Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53920042ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53920042ms] [WARNING] [2026-06-04T18:58:13.602Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53920042ms] [ERROR] [2026-06-04T18:58:13.602Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53920043ms] [ERROR] [2026-06-04T18:58:13.602Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53920043ms] [ERROR] [2026-06-04T18:58:13.602Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53920043ms] [ERROR] [2026-06-04T18:58:13.602Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53950133ms] [INFO] [2026-06-04T18:58:43.693Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53956231ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53956232ms] [WARNING] [2026-06-04T18:58:49.791Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53956232ms] [ERROR] [2026-06-04T18:58:49.791Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53956232ms] [ERROR] [2026-06-04T18:58:49.791Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53956232ms] [ERROR] [2026-06-04T18:58:49.791Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53956232ms] [ERROR] [2026-06-04T18:58:49.792Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53986320ms] [INFO] [2026-06-04T18:59:19.880Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53998442ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[53998442ms] [WARNING] [2026-06-04T18:59:32.002Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53998444ms] [ERROR] [2026-06-04T18:59:32.003Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53998444ms] [ERROR] [2026-06-04T18:59:32.004Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53998444ms] [ERROR] [2026-06-04T18:59:32.004Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[53998444ms] [ERROR] [2026-06-04T18:59:32.004Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[54028528ms] [INFO] [2026-06-04T19:00:02.087Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[54028534ms] [ERROR] Failed to load resource: net::ERR_NAME_NOT_RESOLVED @ https://game.codeanddice.ru/_blazor/negotiate?negotiateVersion=1:0 +[54028534ms] [WARNING] [2026-06-04T19:00:02.094Z] Warning: Error from HTTP request. TypeError: Failed to fetch. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[54028534ms] [ERROR] [2026-06-04T19:00:02.094Z] Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[54028534ms] [ERROR] [2026-06-04T19:00:02.094Z] Error: Failed to start the connection: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[54028535ms] [ERROR] [2026-06-04T19:00:02.094Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[54028535ms] [ERROR] [2026-06-04T19:00:02.094Z] Error: Error: Failed to complete negotiation with the server: TypeError: Failed to fetch @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[54058633ms] [INFO] [2026-06-04T19:00:32.193Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[54058736ms] [INFO] [2026-06-04T19:00:32.296Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=9I-gKfH9pr6sfhvLeV5vOw. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[56641867ms] [ERROR] [2026-06-04T19:43:35.427Z] Error: Connection disconnected with error 'Error: WebSocket closed with status code: 1006 (no reason given).'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[56641875ms] [INFO] [2026-06-04T19:43:35.435Z] Information: Normalizing '_blazor' to 'https://game.codeanddice.ru/_blazor'. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 +[56650577ms] [INFO] [2026-06-04T19:43:44.136Z] Information: WebSocket connected to wss://game.codeanddice.ru/_blazor?id=hLFIEFanSy0QPY-uSJJi8g. @ https://game.codeanddice.ru/_framework/blazor.web.ej96puwv3k.js:0 diff --git a/.playwright-mcp/page-2026-05-26T10-04-41-586Z.yml b/.playwright-mcp/page-2026-05-26T10-04-41-586Z.yml new file mode 100644 index 0000000..07d50c4 --- /dev/null +++ b/.playwright-mcp/page-2026-05-26T10-04-41-586Z.yml @@ -0,0 +1,154 @@ +- generic [active] [ref=e1]: + - generic [ref=e2]: + - navigation "Панель навигации" [ref=e3]: + - generic [ref=e4]: + - link "Главная" [ref=e5] [cursor=pointer]: + - /url: / + - img [ref=e6] + - link "Обзор" [ref=e7] [cursor=pointer]: + - /url: /explore/repos + - link "Помощь" [ref=e8] [cursor=pointer]: + - /url: https://docs.gitea.com + - generic [ref=e9]: + - link "Регистрация" [ref=e10] [cursor=pointer]: + - /url: /user/sign_up + - img [ref=e11] + - generic [ref=e13]: Регистрация + - link "Вход" [ref=e14] [cursor=pointer]: + - /url: /user/login + - img [ref=e15] + - generic [ref=e17]: Вход + - generic [ref=e18]: + - generic [ref=e19]: + - generic [ref=e21]: + - generic [ref=e22]: + - img [ref=e24] + - generic [ref=e27]: + - link "Toutsu" [ref=e28] [cursor=pointer]: + - /url: /Toutsu + - text: / + - link "GmRelayBot" [ref=e29] [cursor=pointer]: + - /url: /Toutsu/GmRelayBot + - generic [ref=e30]: + - link "RSS-лента" [ref=e31] [cursor=pointer]: + - /url: /Toutsu/GmRelayBot.rss + - img [ref=e32] + - generic "Войдите, чтобы следить за этим репозиторием." [ref=e35] [cursor=pointer]: + - button "Следить" [disabled]: + - img + - generic: Следить + - link "1" [ref=e36]: + - /url: /Toutsu/GmRelayBot/watchers + - generic "Войдите, чтобы добавить в избранное этот репозиторий." [ref=e38] [cursor=pointer]: + - button "В избранное" [disabled]: + - img + - generic: В избранное + - link "1" [ref=e39]: + - /url: /Toutsu/GmRelayBot/stars + - generic "Войдите, чтобы форкнуть репозиторий.": + - generic: + - img + - generic: Форкнуть + - link "0": + - /url: /Toutsu/GmRelayBot/forks + - navigation [ref=e41]: + - generic [ref=e42]: + - link "Код" [ref=e43] [cursor=pointer]: + - /url: /Toutsu/GmRelayBot/src/ + - img [ref=e44] + - generic [ref=e46]: Код + - link "Задачи 21" [ref=e47] [cursor=pointer]: + - /url: /Toutsu/GmRelayBot/issues + - img [ref=e48] + - generic [ref=e51]: Задачи + - generic [ref=e52]: "21" + - link "Запросы на слияние 7" [ref=e53] [cursor=pointer]: + - /url: /Toutsu/GmRelayBot/pulls + - img [ref=e54] + - generic [ref=e56]: Запросы на слияние + - generic [ref=e57]: "7" + - link "Действия 1" [ref=e58] [cursor=pointer]: + - /url: /Toutsu/GmRelayBot/actions + - img [ref=e59] + - generic [ref=e61]: Действия + - generic [ref=e62]: "1" + - link "Пакеты" [ref=e63] [cursor=pointer]: + - /url: /Toutsu/GmRelayBot/packages + - img [ref=e64] + - generic [ref=e66]: Пакеты + - link "Проекты" [ref=e67] [cursor=pointer]: + - /url: /Toutsu/GmRelayBot/projects + - img [ref=e68] + - generic [ref=e70]: Проекты + - link "Релизы 63" [ref=e71] [cursor=pointer]: + - /url: /Toutsu/GmRelayBot/releases + - img [ref=e72] + - generic [ref=e74]: Релизы + - generic [ref=e75]: "63" + - link "Вики" [ref=e76] [cursor=pointer]: + - /url: /Toutsu/GmRelayBot/wiki + - img [ref=e77] + - generic [ref=e79]: Вики + - link "Активность" [ref=e80] [cursor=pointer]: + - /url: /Toutsu/GmRelayBot/activity + - img [ref=e81] + - generic [ref=e83]: Активность + - generic [ref=e86]: + - generic [ref=e87]: + - generic: + - generic: + - heading [level=2] + - generic [ref=e88]: + - generic [ref=e89]: + - link: + - /url: "" + - text: ":" + - text: коммит + - link: + - /url: "" + - text: отправлено + - link: + - /url: "" + - generic [ref=e90]: + - generic [ref=e91]: + - link "Summary" [ref=e92] [cursor=pointer]: + - /url: "" + - img [ref=e93] + - generic [ref=e95]: Summary + - generic [ref=e97]: All jobs + - list + - generic [ref=e99]: Run Details + - list [ref=e100]: + - listitem [ref=e101]: + - link "Workflow file" [ref=e102] [cursor=pointer]: + - /url: /workflow + - img [ref=e103] + - generic [ref=e105]: Workflow file + - generic [ref=e108]: + - generic [ref=e109]: Triggered via • + - generic [ref=e110]: + - text: • + - generic [ref=e111]: "Total duration: –" + - group "Подвал" [ref=e112]: + - contentinfo "О программе" [ref=e113]: + - link "Работает на Gitea" [ref=e114] [cursor=pointer]: + - /url: https://about.gitea.com + - generic [ref=e115]: "Версия: 1.26.2" + - generic [ref=e116]: + - text: "Страница:" + - strong [ref=e117]: 31ms + - text: "Шаблон:" + - strong [ref=e118]: 8ms + - group "Ссылки" [ref=e119]: + - menu [ref=e120] [cursor=pointer]: + - generic [ref=e122]: + - img [ref=e123] + - text: Auto + - menu [ref=e125] [cursor=pointer]: + - generic [ref=e126]: + - img [ref=e127] + - text: Русский + - link "Лицензии" [ref=e129] [cursor=pointer]: + - /url: /assets/licenses.txt + - link "API" [ref=e130] [cursor=pointer]: + - /url: /api/swagger \ No newline at end of file diff --git a/.playwright-mcp/page-2026-06-03T19-00-02-776Z.yml b/.playwright-mcp/page-2026-06-03T19-00-02-776Z.yml new file mode 100644 index 0000000..91ae2e7 --- /dev/null +++ b/.playwright-mcp/page-2026-06-03T19-00-02-776Z.yml @@ -0,0 +1,19 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - link "GM-Relay GM-Relay" [ref=e5] [cursor=pointer]: + - /url: "" + - img "GM-Relay" [ref=e6] + - generic [ref=e7]: GM-Relay + - navigation [ref=e8]: + - link "Вход" [ref=e10] [cursor=pointer]: + - /url: login + - img [ref=e11] + - text: Вход + - article [ref=e15]: + - generic [ref=e17]: + - generic [ref=e18]: ⚠️ + - heading "Произошла ошибка" [active] [level=1] [ref=e19] + - paragraph [ref=e20]: При обработке вашего запроса что-то пошло не так. Пожалуйста, попробуйте снова. + - paragraph [ref=e21]: "ID запроса: 00-bd2866cc1c6901d4ea7638a3c0cec814-9fbe4a65ba1c42c7-01" + - link "← На главную" [ref=e22] [cursor=pointer]: + - /url: / \ No newline at end of file diff --git a/.playwright-mcp/page-2026-06-03T19-04-53-059Z.yml b/.playwright-mcp/page-2026-06-03T19-04-53-059Z.yml new file mode 100644 index 0000000..4350bb9 --- /dev/null +++ b/.playwright-mcp/page-2026-06-03T19-04-53-059Z.yml @@ -0,0 +1,42 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - link "GM-Relay GM-Relay" [ref=e5] [cursor=pointer]: + - /url: "" + - img "GM-Relay" [ref=e6] + - generic [ref=e7]: GM-Relay + - navigation [ref=e8]: + - generic [ref=e9]: + - link "Главная страница" [ref=e10] [cursor=pointer]: + - /url: "" + - img [ref=e11] + - text: Главная страница + - link "Шаблоны" [ref=e14] [cursor=pointer]: + - /url: templates + - img [ref=e15] + - text: Шаблоны + - link "Профиль" [ref=e17] [cursor=pointer]: + - /url: profile + - img [ref=e18] + - text: Профиль + - link "Мои клубы" [ref=e21] [cursor=pointer]: + - /url: profile/memberships + - img [ref=e22] + - text: Мои клубы + - generic [ref=e25]: + - generic [ref=e26]: + - generic [ref=e27]: А + - generic [ref=e28]: + - generic [ref=e29]: Алексей Салопаев + - generic [ref=e30]: Telegram + - button "Выход" [ref=e32] [cursor=pointer]: + - img [ref=e33] + - text: Выход + - generic [ref=e36]: v3.7.0 + - article [ref=e38]: + - generic [ref=e40]: + - generic [ref=e41]: ⚠️ + - heading "Произошла ошибка" [active] [level=1] [ref=e42] + - paragraph [ref=e43]: При обработке вашего запроса что-то пошло не так. Пожалуйста, попробуйте снова. + - paragraph [ref=e44]: "ID запроса: 00-ebc687b982f94f725e686bc3ba399317-d56ba477a3468726-01" + - link "← На главную" [ref=e45] [cursor=pointer]: + - /url: / \ No newline at end of file diff --git a/.playwright-mcp/page-2026-06-03T19-41-24-039Z.yml b/.playwright-mcp/page-2026-06-03T19-41-24-039Z.yml new file mode 100644 index 0000000..3bf60fb --- /dev/null +++ b/.playwright-mcp/page-2026-06-03T19-41-24-039Z.yml @@ -0,0 +1,108 @@ +- generic [ref=e2]: + - banner [ref=e3]: + - link "GM-Relay GM-Relay" [ref=e4] [cursor=pointer]: + - /url: / + - img "GM-Relay" [ref=e5] + - generic [ref=e6]: GM-Relay + - generic [ref=e7]: + - link "Клубы" [ref=e8] [cursor=pointer]: + - /url: /showcase + - link "Войти" [ref=e9] [cursor=pointer]: + - /url: /login + - main [ref=e10]: + - generic [ref=e11]: + - heading "Каталог игр" [level=1] [ref=e12] + - paragraph [ref=e13]: Найдите настольную ролевую игру по душе — ваншоты, кампании, онлайн и офлайн. + - generic [ref=e14]: + - generic [ref=e15]: + - generic [ref=e16]: Когда + - generic [ref=e17]: + - button "Сегодня" [ref=e18] [cursor=pointer] + - button "Завтра" [ref=e19] [cursor=pointer] + - button "На этой неделе" [ref=e20] [cursor=pointer] + - button "Все" [ref=e21] [cursor=pointer] + - generic [ref=e22]: + - generic [ref=e23]: Места + - generic [ref=e24]: + - button "Есть места" [ref=e25] [cursor=pointer] + - button "Лист ожидания" [ref=e26] [cursor=pointer] + - button "Любые" [ref=e27] [cursor=pointer] + - generic [ref=e28]: + - generic [ref=e29]: Система + - combobox "Система" [ref=e30]: + - option "Любая" [selected] + - option "D&D 5e" + - option "Pathfinder 2e" + - option "Call of Cthulhu 7e" + - option "Shadowdark" + - option "Old School Essentials" + - option "Dragonbane" + - option "Blades in the Dark" + - option "Daggerheart" + - option "Cyberpunk RED" + - option "Mothership" + - option "Alien RPG" + - option "Warhammer Fantasy" + - 'option "Vampire: The Masquerade 5e"' + - option "Star Wars (FFG)" + - option "Genesys" + - option "Savage Worlds" + - option "GURPS" + - option "Fate" + - option "Dungeon World" + - option "Ironsworn" + - option "Другое" + - generic [ref=e31]: + - generic [ref=e32]: Тип + - generic [ref=e33]: + - button "Ваншот" [ref=e34] [cursor=pointer] + - button "Кампания" [ref=e35] [cursor=pointer] + - button "Любое" [ref=e36] [cursor=pointer] + - generic [ref=e37]: + - generic [ref=e38]: Формат + - generic [ref=e39]: + - button "Онлайн" [ref=e40] [cursor=pointer] + - button "Офлайн" [ref=e41] [cursor=pointer] + - button "Гибрид" [ref=e42] [cursor=pointer] + - button "Любой" [ref=e43] [cursor=pointer] + - generic [ref=e44]: + - article [ref=e45]: + - generic [ref=e47]: + - heading "Кулаки рубинового феникса" [level=2] [ref=e48] + - generic [ref=e49]: 7 июня 2026, 12:00 + - generic [ref=e50]: 1/5 + - generic [ref=e51]: Кулаки рубинового феникса + - link "Алексей Салопаев" [ref=e53] [cursor=pointer]: + - /url: /gm/toutsu + - link "Подробнее" [ref=e55] [cursor=pointer]: + - /url: /s/c7336ee7-84f3-4b34-9d07-9bf82460bb97 + - article [ref=e56]: + - generic [ref=e58]: + - heading "Кулаки рубинового феникса" [level=2] [ref=e59] + - generic [ref=e60]: 14 июня 2026, 12:00 + - generic [ref=e61]: 1/5 + - generic [ref=e62]: Кулаки рубинового феникса + - link "Алексей Салопаев" [ref=e64] [cursor=pointer]: + - /url: /gm/toutsu + - link "Подробнее" [ref=e66] [cursor=pointer]: + - /url: /s/56b8db18-6c09-4386-bb12-536ec0dc09ec + - article [ref=e67]: + - generic [ref=e69]: + - heading "Кулаки рубинового феникса" [level=2] [ref=e70] + - generic [ref=e71]: 21 июня 2026, 12:00 + - generic [ref=e72]: 1/5 + - generic [ref=e73]: Кулаки рубинового феникса + - link "Алексей Салопаев" [ref=e75] [cursor=pointer]: + - /url: /gm/toutsu + - link "Подробнее" [ref=e77] [cursor=pointer]: + - /url: /s/71da7b07-debe-44a5-acbd-f61dd5873c5d + - article [ref=e78]: + - generic [ref=e80]: + - heading "Кулаки рубинового феникса" [level=2] [ref=e81] + - generic [ref=e82]: 28 июня 2026, 12:00 + - generic [ref=e83]: 1/5 + - generic [ref=e84]: Кулаки рубинового феникса + - link "Алексей Салопаев" [ref=e86] [cursor=pointer]: + - /url: /gm/toutsu + - link "Подробнее" [ref=e88] [cursor=pointer]: + - /url: /s/85f4d236-c32d-4cff-85ab-8f73e816a164 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-06-04T03-48-32-032Z.yml b/.playwright-mcp/page-2026-06-04T03-48-32-032Z.yml new file mode 100644 index 0000000..dd1dd72 --- /dev/null +++ b/.playwright-mcp/page-2026-06-04T03-48-32-032Z.yml @@ -0,0 +1,49 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - link "GM-Relay GM-Relay" [ref=e5] [cursor=pointer]: + - /url: "" + - img "GM-Relay" [ref=e6] + - generic [ref=e7]: GM-Relay + - navigation [ref=e8]: + - generic [ref=e9]: + - link "Главная страница" [ref=e10] [cursor=pointer]: + - /url: "" + - img [ref=e11] + - text: Главная страница + - link "Шаблоны" [ref=e14] [cursor=pointer]: + - /url: templates + - img [ref=e15] + - text: Шаблоны + - link "Профиль" [ref=e17] [cursor=pointer]: + - /url: profile + - img [ref=e18] + - text: Профиль + - link "Мои клубы" [ref=e21] [cursor=pointer]: + - /url: profile/memberships + - img [ref=e22] + - text: Мои клубы + - generic [ref=e25]: + - generic [ref=e26]: + - generic [ref=e27]: А + - generic [ref=e28]: + - generic [ref=e29]: Алексей Салопаев + - generic [ref=e30]: Telegram + - button "Выход" [ref=e32] [cursor=pointer]: + - img [ref=e33] + - text: Выход + - generic [ref=e36]: v3.7.1 + - article [ref=e38]: + - generic [ref=e39]: + - list [ref=e40]: + - listitem [ref=e41]: + - link "Главная" [ref=e42] [cursor=pointer]: + - /url: / + - listitem [ref=e43]: › Мои клубы + - generic [ref=e44]: + - heading "🏛 Мои клубы" [level=2] [ref=e45] + - paragraph [ref=e46]: Заявки и активные участия в приватных клубных витринах. + - generic [ref=e47]: + - heading "Вы пока не подавали заявок" [level=2] [ref=e48] + - paragraph [ref=e49]: Откройте публичную витрину клуба и нажмите «Подать заявку», чтобы стать участником. + - link "К каталогу клубов" [ref=e50] [cursor=pointer]: + - /url: /showcase \ No newline at end of file diff --git a/.playwright-mcp/page-2026-06-04T03-48-52-475Z.yml b/.playwright-mcp/page-2026-06-04T03-48-52-475Z.yml new file mode 100644 index 0000000..20d6002 --- /dev/null +++ b/.playwright-mcp/page-2026-06-04T03-48-52-475Z.yml @@ -0,0 +1,264 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - link "GM-Relay GM-Relay" [ref=e5] [cursor=pointer]: + - /url: "" + - img "GM-Relay" [ref=e6] + - generic [ref=e7]: GM-Relay + - navigation [ref=e8]: + - generic [ref=e9]: + - link "Главная страница" [ref=e10] [cursor=pointer]: + - /url: "" + - img [ref=e11] + - text: Главная страница + - link "Шаблоны" [ref=e14] [cursor=pointer]: + - /url: templates + - img [ref=e15] + - text: Шаблоны + - link "Профиль" [ref=e17] [cursor=pointer]: + - /url: profile + - img [ref=e18] + - text: Профиль + - link "Мои клубы" [ref=e21] [cursor=pointer]: + - /url: profile/memberships + - img [ref=e22] + - text: Мои клубы + - generic [ref=e25]: + - generic [ref=e26]: + - generic [ref=e27]: А + - generic [ref=e28]: + - generic [ref=e29]: Алексей Салопаев + - generic [ref=e30]: Telegram + - button "Выход" [ref=e32] [cursor=pointer]: + - img [ref=e33] + - text: Выход + - generic [ref=e36]: v3.7.1 + - article [ref=e38]: + - generic [ref=e39]: + - list [ref=e40]: + - listitem [ref=e41]: + - link "Главная" [ref=e42] [cursor=pointer]: + - /url: / + - listitem [ref=e43]: › Сессии группы + - heading "📅 Предстоящие игры" [level=2] [ref=e45] + - generic [ref=e46]: + - generic [ref=e47]: + - generic [ref=e48]: + - heading "Управление группой" [level=3] [ref=e49] + - paragraph [ref=e50]: Кулаки рубинового феникса · Owner + - generic [ref=e51]: Owner + - generic [ref=e52]: + - link "📊 Статистика" [ref=e53] [cursor=pointer]: + - /url: /groupstats/ca532457-702c-45d0-a949-7bc06e6169ac + - generic [ref=e54]: Owner · Алексей Салопаев · @Алексей Салопаев + - generic [ref=e55]: + - generic [ref=e56]: + - generic [ref=e57]: + - generic [ref=e58]: Telegram ID co-GM + - textbox [ref=e59] + - generic [ref=e60]: + - generic [ref=e61]: Имя + - textbox [ref=e62] + - generic [ref=e63]: + - generic [ref=e64]: Username + - textbox [ref=e65] + - button "➕ Добавить co-GM" [ref=e66] [cursor=pointer] + - generic [ref=e67]: + - generic [ref=e68]: + - generic [ref=e69]: + - heading "Публичная страница клуба" [level=3] [ref=e70] + - paragraph [ref=e71]: 4 опубликованных игр без состава игроков и приватных ссылок + - generic [ref=e72]: Включена + - generic [ref=e73]: + - generic [ref=e74]: + - generic [ref=e75]: + - generic [ref=e76]: + - checkbox "Включить публичное расписание" [checked] [ref=e77] + - generic [ref=e78]: Включить публичное расписание + - generic [ref=e79]: Если выключено, публичная страница и ссылки на сессии недоступны. + - generic [ref=e80]: + - generic [ref=e81]: Короткий адрес + - textbox [ref=e82]: kulaki + - generic [ref=e83]: "Латиница, цифры и дефисы, например `night-city-club`." + - generic [ref=e84]: + - button "Сохранить публикацию" [ref=e85] [cursor=pointer] + - link "Открыть публичную страницу" [ref=e86] [cursor=pointer]: + - /url: http://game.codeanddice.ru/club/kulaki + - generic [ref=e87]: + - generic [ref=e88]: Ссылка клуба + - link "http://game.codeanddice.ru/club/kulaki" [ref=e89] [cursor=pointer]: + - /url: http://game.codeanddice.ru/club/kulaki + - generic [ref=e90]: + - generic [ref=e91]: + - generic [ref=e92]: + - heading "Проведённые приключения" [level=3] [ref=e93] + - paragraph [ref=e94]: Черновики и опубликованные приключения для каталога мастера. + - button "➕ Создать" [ref=e95] [cursor=pointer] + - generic [ref=e96]: + - generic [ref=e97]: Приключений пока нет + - paragraph [ref=e98]: Создайте первый черновик и добавьте проведённые сессии. + - link "📜 Все проведённые сессии" [ref=e100] [cursor=pointer]: + - /url: /group/ca532457-702c-45d0-a949-7bc06e6169ac/completed + - generic [ref=e101]: + - generic [ref=e102]: + - generic [ref=e103]: + - heading "Применить шаблон" [level=3] [ref=e104] + - paragraph [ref=e105]: 1 доступных для этой группы + - link "⚙️ Управлять шаблонами" [ref=e106] [cursor=pointer]: + - /url: /templates + - generic [ref=e108]: + - generic [ref=e109]: + - heading "Кулаки" [level=3] [ref=e110] + - paragraph [ref=e111]: Кулаки рубинового феникса · 4 игр · каждые 7 дн. · 5 мест · группа и личка + - generic [ref=e112]: + - textbox [ref=e113]: 2026-06-11T06:50:13 + - button "📅 Создать batch" [ref=e114] [cursor=pointer] + - generic [ref=e116]: + - generic [ref=e117]: + - generic [ref=e118]: + - heading "Кулаки рубинового феникса" [level=3] [ref=e119] + - paragraph [ref=e120]: 4 игр · 7 июня 2026, 12:00 — 28 июня 2026, 12:00 + - generic [ref=e121]: Batch + - generic [ref=e122]: + - generic [ref=e123]: + - generic [ref=e124]: + - generic [ref=e125]: Общее название + - textbox [ref=e126]: Кулаки рубинового феникса + - generic [ref=e127]: + - generic [ref=e128]: Общая ссылка + - textbox [ref=e129]: https://www.codeanddice.ru + - generic [ref=e130]: + - generic [ref=e131]: Уведомления игрокам + - combobox [ref=e132]: + - option "В группе и в личку" [selected] + - option "Только в группе" + - button "💾 Обновить batch" [ref=e133] [cursor=pointer] + - generic [ref=e135]: + - generic [ref=e136]: + - generic [ref=e137]: + - generic [ref=e138]: Первая дата пачки (МСК, UTC+3) + - textbox [ref=e139]: 2026-06-07T12:00 + - generic [ref=e140]: + - generic [ref=e141]: Шаг между играми, дней + - spinbutton [ref=e142]: "7" + - button "📅 Перенести пачку" [ref=e143] [cursor=pointer] + - generic [ref=e144]: + - generic [ref=e145]: Все игры опубликованы + - combobox [ref=e146]: + - option "Скрыта" + - option "Каталог" + - option "Только участники" + - option "Каталог + клуб" [selected] + - generic [ref=e147]: + - combobox [ref=e148]: + - option "Следующая неделя" [selected] + - option "Следующий месяц" + - button "🧬 Клонировать" [ref=e149] [cursor=pointer] + - generic [ref=e150]: + - generic [ref=e151]: + - generic [ref=e152]: + - button "▶ Кулаки рубинового феникса" [ref=e153] [cursor=pointer] + - generic [ref=e154]: Запланировано + - generic [ref=e155]: + - generic [ref=e156]: + - generic [ref=e157]: 🕐 Время + - generic [ref=e158]: 7 июня 2026, 12:00 + - generic [ref=e159]: + - generic [ref=e160]: 👥 Места + - generic [ref=e161]: 1/5 + - generic [ref=e162]: + - generic [ref=e163]: 🔗 Ссылка + - link "Подключиться ↗" [ref=e164] [cursor=pointer]: + - /url: https://www.codeanddice.ru + - generic [ref=e165]: + - combobox [ref=e166]: + - option "Скрыта" + - option "Каталог" + - option "Только участники" + - option "Каталог + клуб" [selected] + - link "Публичная ссылка" [ref=e167] [cursor=pointer]: + - /url: http://game.codeanddice.ru/s/c7336ee7-84f3-4b34-9d07-9bf82460bb97 + - link "✏️ Изменить" [ref=e168] [cursor=pointer]: + - /url: /session/edit/c7336ee7-84f3-4b34-9d07-9bf82460bb97 + - link "📜 История" [ref=e169] [cursor=pointer]: + - /url: /session/c7336ee7-84f3-4b34-9d07-9bf82460bb97/history + - generic [ref=e170]: + - generic [ref=e171]: + - button "▶ Кулаки рубинового феникса" [ref=e172] [cursor=pointer] + - generic [ref=e173]: Запланировано + - generic [ref=e174]: + - generic [ref=e175]: + - generic [ref=e176]: 🕐 Время + - generic [ref=e177]: 14 июня 2026, 12:00 + - generic [ref=e178]: + - generic [ref=e179]: 👥 Места + - generic [ref=e180]: 1/5 + - generic [ref=e181]: + - generic [ref=e182]: 🔗 Ссылка + - link "Подключиться ↗" [ref=e183] [cursor=pointer]: + - /url: https://www.codeanddice.ru + - generic [ref=e184]: + - combobox [ref=e185]: + - option "Скрыта" + - option "Каталог" + - option "Только участники" + - option "Каталог + клуб" [selected] + - link "Публичная ссылка" [ref=e186] [cursor=pointer]: + - /url: http://game.codeanddice.ru/s/56b8db18-6c09-4386-bb12-536ec0dc09ec + - link "✏️ Изменить" [ref=e187] [cursor=pointer]: + - /url: /session/edit/56b8db18-6c09-4386-bb12-536ec0dc09ec + - link "📜 История" [ref=e188] [cursor=pointer]: + - /url: /session/56b8db18-6c09-4386-bb12-536ec0dc09ec/history + - generic [ref=e189]: + - generic [ref=e190]: + - button "▶ Кулаки рубинового феникса" [ref=e191] [cursor=pointer] + - generic [ref=e192]: Запланировано + - generic [ref=e193]: + - generic [ref=e194]: + - generic [ref=e195]: 🕐 Время + - generic [ref=e196]: 21 июня 2026, 12:00 + - generic [ref=e197]: + - generic [ref=e198]: 👥 Места + - generic [ref=e199]: 1/5 + - generic [ref=e200]: + - generic [ref=e201]: 🔗 Ссылка + - link "Подключиться ↗" [ref=e202] [cursor=pointer]: + - /url: https://www.codeanddice.ru + - generic [ref=e203]: + - combobox [ref=e204]: + - option "Скрыта" + - option "Каталог" + - option "Только участники" + - option "Каталог + клуб" [selected] + - link "Публичная ссылка" [ref=e205] [cursor=pointer]: + - /url: http://game.codeanddice.ru/s/71da7b07-debe-44a5-acbd-f61dd5873c5d + - link "✏️ Изменить" [ref=e206] [cursor=pointer]: + - /url: /session/edit/71da7b07-debe-44a5-acbd-f61dd5873c5d + - link "📜 История" [ref=e207] [cursor=pointer]: + - /url: /session/71da7b07-debe-44a5-acbd-f61dd5873c5d/history + - generic [ref=e208]: + - generic [ref=e209]: + - button "▶ Кулаки рубинового феникса" [ref=e210] [cursor=pointer] + - generic [ref=e211]: Запланировано + - generic [ref=e212]: + - generic [ref=e213]: + - generic [ref=e214]: 🕐 Время + - generic [ref=e215]: 28 июня 2026, 12:00 + - generic [ref=e216]: + - generic [ref=e217]: 👥 Места + - generic [ref=e218]: 1/5 + - generic [ref=e219]: + - generic [ref=e220]: 🔗 Ссылка + - link "Подключиться ↗" [ref=e221] [cursor=pointer]: + - /url: https://www.codeanddice.ru + - generic [ref=e222]: + - combobox [ref=e223]: + - option "Скрыта" + - option "Каталог" + - option "Только участники" + - option "Каталог + клуб" [selected] + - link "Публичная ссылка" [ref=e224] [cursor=pointer]: + - /url: http://game.codeanddice.ru/s/85f4d236-c32d-4cff-85ab-8f73e816a164 + - link "✏️ Изменить" [ref=e225] [cursor=pointer]: + - /url: /session/edit/85f4d236-c32d-4cff-85ab-8f73e816a164 + - link "📜 История" [ref=e226] [cursor=pointer]: + - /url: /session/85f4d236-c32d-4cff-85ab-8f73e816a164/history \ No newline at end of file diff --git a/.playwright-mcp/page-2026-06-04T03-50-03-746Z.yml b/.playwright-mcp/page-2026-06-04T03-50-03-746Z.yml new file mode 100644 index 0000000..3bf60fb --- /dev/null +++ b/.playwright-mcp/page-2026-06-04T03-50-03-746Z.yml @@ -0,0 +1,108 @@ +- generic [ref=e2]: + - banner [ref=e3]: + - link "GM-Relay GM-Relay" [ref=e4] [cursor=pointer]: + - /url: / + - img "GM-Relay" [ref=e5] + - generic [ref=e6]: GM-Relay + - generic [ref=e7]: + - link "Клубы" [ref=e8] [cursor=pointer]: + - /url: /showcase + - link "Войти" [ref=e9] [cursor=pointer]: + - /url: /login + - main [ref=e10]: + - generic [ref=e11]: + - heading "Каталог игр" [level=1] [ref=e12] + - paragraph [ref=e13]: Найдите настольную ролевую игру по душе — ваншоты, кампании, онлайн и офлайн. + - generic [ref=e14]: + - generic [ref=e15]: + - generic [ref=e16]: Когда + - generic [ref=e17]: + - button "Сегодня" [ref=e18] [cursor=pointer] + - button "Завтра" [ref=e19] [cursor=pointer] + - button "На этой неделе" [ref=e20] [cursor=pointer] + - button "Все" [ref=e21] [cursor=pointer] + - generic [ref=e22]: + - generic [ref=e23]: Места + - generic [ref=e24]: + - button "Есть места" [ref=e25] [cursor=pointer] + - button "Лист ожидания" [ref=e26] [cursor=pointer] + - button "Любые" [ref=e27] [cursor=pointer] + - generic [ref=e28]: + - generic [ref=e29]: Система + - combobox "Система" [ref=e30]: + - option "Любая" [selected] + - option "D&D 5e" + - option "Pathfinder 2e" + - option "Call of Cthulhu 7e" + - option "Shadowdark" + - option "Old School Essentials" + - option "Dragonbane" + - option "Blades in the Dark" + - option "Daggerheart" + - option "Cyberpunk RED" + - option "Mothership" + - option "Alien RPG" + - option "Warhammer Fantasy" + - 'option "Vampire: The Masquerade 5e"' + - option "Star Wars (FFG)" + - option "Genesys" + - option "Savage Worlds" + - option "GURPS" + - option "Fate" + - option "Dungeon World" + - option "Ironsworn" + - option "Другое" + - generic [ref=e31]: + - generic [ref=e32]: Тип + - generic [ref=e33]: + - button "Ваншот" [ref=e34] [cursor=pointer] + - button "Кампания" [ref=e35] [cursor=pointer] + - button "Любое" [ref=e36] [cursor=pointer] + - generic [ref=e37]: + - generic [ref=e38]: Формат + - generic [ref=e39]: + - button "Онлайн" [ref=e40] [cursor=pointer] + - button "Офлайн" [ref=e41] [cursor=pointer] + - button "Гибрид" [ref=e42] [cursor=pointer] + - button "Любой" [ref=e43] [cursor=pointer] + - generic [ref=e44]: + - article [ref=e45]: + - generic [ref=e47]: + - heading "Кулаки рубинового феникса" [level=2] [ref=e48] + - generic [ref=e49]: 7 июня 2026, 12:00 + - generic [ref=e50]: 1/5 + - generic [ref=e51]: Кулаки рубинового феникса + - link "Алексей Салопаев" [ref=e53] [cursor=pointer]: + - /url: /gm/toutsu + - link "Подробнее" [ref=e55] [cursor=pointer]: + - /url: /s/c7336ee7-84f3-4b34-9d07-9bf82460bb97 + - article [ref=e56]: + - generic [ref=e58]: + - heading "Кулаки рубинового феникса" [level=2] [ref=e59] + - generic [ref=e60]: 14 июня 2026, 12:00 + - generic [ref=e61]: 1/5 + - generic [ref=e62]: Кулаки рубинового феникса + - link "Алексей Салопаев" [ref=e64] [cursor=pointer]: + - /url: /gm/toutsu + - link "Подробнее" [ref=e66] [cursor=pointer]: + - /url: /s/56b8db18-6c09-4386-bb12-536ec0dc09ec + - article [ref=e67]: + - generic [ref=e69]: + - heading "Кулаки рубинового феникса" [level=2] [ref=e70] + - generic [ref=e71]: 21 июня 2026, 12:00 + - generic [ref=e72]: 1/5 + - generic [ref=e73]: Кулаки рубинового феникса + - link "Алексей Салопаев" [ref=e75] [cursor=pointer]: + - /url: /gm/toutsu + - link "Подробнее" [ref=e77] [cursor=pointer]: + - /url: /s/71da7b07-debe-44a5-acbd-f61dd5873c5d + - article [ref=e78]: + - generic [ref=e80]: + - heading "Кулаки рубинового феникса" [level=2] [ref=e81] + - generic [ref=e82]: 28 июня 2026, 12:00 + - generic [ref=e83]: 1/5 + - generic [ref=e84]: Кулаки рубинового феникса + - link "Алексей Салопаев" [ref=e86] [cursor=pointer]: + - /url: /gm/toutsu + - link "Подробнее" [ref=e88] [cursor=pointer]: + - /url: /s/85f4d236-c32d-4cff-85ab-8f73e816a164 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-06-04T03-50-36-972Z.yml b/.playwright-mcp/page-2026-06-04T03-50-36-972Z.yml new file mode 100644 index 0000000..77022fa --- /dev/null +++ b/.playwright-mcp/page-2026-06-04T03-50-36-972Z.yml @@ -0,0 +1,61 @@ +- generic [ref=e2]: + - banner [ref=e3]: + - link "GM-Relay GM-Relay" [ref=e4] [cursor=pointer]: + - /url: / + - img "GM-Relay" [ref=e5] + - generic [ref=e6]: GM-Relay + - generic [ref=e7]: + - link "Клубы" [ref=e8] [cursor=pointer]: + - /url: /showcase + - link "Войти" [ref=e9] [cursor=pointer]: + - /url: /login + - main [ref=e10]: + - generic [ref=e11]: + - generic [ref=e12]: Публичное расписание + - heading "Кулаки рубинового феникса" [level=1] [ref=e13] + - paragraph [ref=e14]: Открытые игры клуба без состава игроков, личных данных и приватных ссылок. + - generic [ref=e15]: + - text: Ссылка клуба + - link "http://game.codeanddice.ru/club/kulaki" [ref=e16] [cursor=pointer]: + - /url: http://game.codeanddice.ru/club/kulaki + - generic [ref=e17]: + - text: Мастер + - link "Алексей Салопаев" [ref=e18] [cursor=pointer]: + - /url: /gm/toutsu + - generic [ref=e19]: + - article [ref=e20]: + - generic [ref=e21]: + - generic [ref=e22]: Запланировано + - heading "Кулаки рубинового феникса" [level=2] [ref=e23] + - generic [ref=e24]: + - generic [ref=e25]: 7 июня 2026, 12:00 + - generic [ref=e26]: 1/5 + - link "Открыть" [ref=e27] [cursor=pointer]: + - /url: /s/c7336ee7-84f3-4b34-9d07-9bf82460bb97 + - article [ref=e28]: + - generic [ref=e29]: + - generic [ref=e30]: Запланировано + - heading "Кулаки рубинового феникса" [level=2] [ref=e31] + - generic [ref=e32]: + - generic [ref=e33]: 14 июня 2026, 12:00 + - generic [ref=e34]: 1/5 + - link "Открыть" [ref=e35] [cursor=pointer]: + - /url: /s/56b8db18-6c09-4386-bb12-536ec0dc09ec + - article [ref=e36]: + - generic [ref=e37]: + - generic [ref=e38]: Запланировано + - heading "Кулаки рубинового феникса" [level=2] [ref=e39] + - generic [ref=e40]: + - generic [ref=e41]: 21 июня 2026, 12:00 + - generic [ref=e42]: 1/5 + - link "Открыть" [ref=e43] [cursor=pointer]: + - /url: /s/71da7b07-debe-44a5-acbd-f61dd5873c5d + - article [ref=e44]: + - generic [ref=e45]: + - generic [ref=e46]: Запланировано + - heading "Кулаки рубинового феникса" [level=2] [ref=e47] + - generic [ref=e48]: + - generic [ref=e49]: 28 июня 2026, 12:00 + - generic [ref=e50]: 1/5 + - link "Открыть" [ref=e51] [cursor=pointer]: + - /url: /s/85f4d236-c32d-4cff-85ab-8f73e816a164 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-06-04T03-51-14-604Z.yml b/.playwright-mcp/page-2026-06-04T03-51-14-604Z.yml new file mode 100644 index 0000000..e3af71e --- /dev/null +++ b/.playwright-mcp/page-2026-06-04T03-51-14-604Z.yml @@ -0,0 +1,16 @@ +- generic [ref=e2]: + - banner [ref=e3]: + - link "GM-Relay GM-Relay" [ref=e4] [cursor=pointer]: + - /url: / + - img "GM-Relay" [ref=e5] + - generic [ref=e6]: GM-Relay + - generic [ref=e7]: + - link "Клубы" [ref=e8] [cursor=pointer]: + - /url: /showcase + - link "Войти" [ref=e9] [cursor=pointer]: + - /url: /login + - main [ref=e10]: + - generic [ref=e11]: + - generic [ref=e12]: Недоступно + - heading "Сессия не опубликована" [level=1] [ref=e13] + - paragraph [ref=e14]: Эта игра скрыта, отменена, уже прошла или клуб выключил публичное расписание. \ No newline at end of file diff --git a/.playwright-mcp/page-2026-06-04T03-52-16-997Z.yml b/.playwright-mcp/page-2026-06-04T03-52-16-997Z.yml new file mode 100644 index 0000000..fa1eeb9 --- /dev/null +++ b/.playwright-mcp/page-2026-06-04T03-52-16-997Z.yml @@ -0,0 +1,293 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - link "GM-Relay GM-Relay" [ref=e5] [cursor=pointer]: + - /url: "" + - img "GM-Relay" [ref=e6] + - generic [ref=e7]: GM-Relay + - navigation [ref=e8]: + - generic [ref=e9]: + - link "Главная страница" [ref=e10] [cursor=pointer]: + - /url: "" + - img [ref=e11] + - text: Главная страница + - link "Шаблоны" [ref=e14] [cursor=pointer]: + - /url: templates + - img [ref=e15] + - text: Шаблоны + - link "Профиль" [ref=e17] [cursor=pointer]: + - /url: profile + - img [ref=e18] + - text: Профиль + - link "Мои клубы" [ref=e21] [cursor=pointer]: + - /url: profile/memberships + - img [ref=e22] + - text: Мои клубы + - generic [ref=e25]: + - generic [ref=e26]: + - generic [ref=e27]: А + - generic [ref=e28]: + - generic [ref=e29]: Алексей Салопаев + - generic [ref=e30]: Telegram + - button "Выход" [ref=e32] [cursor=pointer]: + - img [ref=e33] + - text: Выход + - generic [ref=e36]: v3.7.1 + - article [ref=e38]: + - generic [ref=e39]: + - list [ref=e40]: + - listitem [ref=e41]: + - link "Главная" [ref=e42] [cursor=pointer]: + - /url: / + - listitem [ref=e43]: › Сессии группы + - heading "📅 Предстоящие игры" [level=2] [ref=e45] + - generic [ref=e46]: + - generic [ref=e47]: + - generic [ref=e48]: + - heading "Управление группой" [level=3] [ref=e49] + - paragraph [ref=e50]: Кулаки рубинового феникса · Owner + - generic [ref=e51]: Owner + - generic [ref=e52]: + - link "📊 Статистика" [ref=e53] [cursor=pointer]: + - /url: /groupstats/ca532457-702c-45d0-a949-7bc06e6169ac + - generic [ref=e54]: Owner · Алексей Салопаев · @Алексей Салопаев + - generic [ref=e55]: + - generic [ref=e56]: + - generic [ref=e57]: + - generic [ref=e58]: Telegram ID co-GM + - textbox [ref=e59] + - generic [ref=e60]: + - generic [ref=e61]: Имя + - textbox [ref=e62] + - generic [ref=e63]: + - generic [ref=e64]: Username + - textbox [ref=e65] + - button "➕ Добавить co-GM" [ref=e66] [cursor=pointer] + - generic [ref=e67]: + - generic [ref=e68]: + - generic [ref=e69]: + - heading "Публичная страница клуба" [level=3] [ref=e70] + - paragraph [ref=e71]: 4 опубликованных игр без состава игроков и приватных ссылок + - generic [ref=e72]: Включена + - generic [ref=e73]: + - generic [ref=e74]: + - generic [ref=e75]: + - generic [ref=e76]: + - checkbox "Включить публичное расписание" [checked] [ref=e77] + - generic [ref=e78]: Включить публичное расписание + - generic [ref=e79]: Если выключено, публичная страница и ссылки на сессии недоступны. + - generic [ref=e80]: + - generic [ref=e81]: Короткий адрес + - textbox [ref=e82]: kulaki + - generic [ref=e83]: "Латиница, цифры и дефисы, например `night-city-club`." + - generic [ref=e84]: + - button "Сохранить публикацию" [ref=e85] [cursor=pointer] + - link "Открыть публичную страницу" [ref=e86] [cursor=pointer]: + - /url: http://game.codeanddice.ru/club/kulaki + - generic [ref=e87]: + - generic [ref=e88]: Ссылка клуба + - link "http://game.codeanddice.ru/club/kulaki" [ref=e89] [cursor=pointer]: + - /url: http://game.codeanddice.ru/club/kulaki + - link "📨 Заявки участников (1) Рассмотреть заявки на участие в клубе" [ref=e90] [cursor=pointer]: + - /url: /group/ca532457-702c-45d0-a949-7bc06e6169ac/applications + - generic [ref=e91]: 📨 Заявки участников (1) + - text: Рассмотреть заявки на участие в клубе + - generic [ref=e92]: + - generic [ref=e93]: + - generic [ref=e94]: + - heading "Проведённые приключения" [level=3] [ref=e95] + - paragraph [ref=e96]: Черновики и опубликованные приключения для каталога мастера. + - button "➕ Создать" [ref=e97] [cursor=pointer] + - generic [ref=e98]: + - generic [ref=e99]: Приключений пока нет + - paragraph [ref=e100]: Создайте первый черновик и добавьте проведённые сессии. + - link "📜 Все проведённые сессии" [ref=e102] [cursor=pointer]: + - /url: /group/ca532457-702c-45d0-a949-7bc06e6169ac/completed + - generic [ref=e103]: + - generic [ref=e104]: + - generic [ref=e105]: + - heading "Применить шаблон" [level=3] [ref=e106] + - paragraph [ref=e107]: 1 доступных для этой группы + - link "⚙️ Управлять шаблонами" [ref=e108] [cursor=pointer]: + - /url: /templates + - generic [ref=e110]: + - generic [ref=e111]: + - heading "Кулаки" [level=3] [ref=e112] + - paragraph [ref=e113]: Кулаки рубинового феникса · 4 игр · каждые 7 дн. · 5 мест · группа и личка + - generic [ref=e114]: + - textbox [ref=e115]: 2026-06-11T06:53:37 + - button "📅 Создать batch" [ref=e116] [cursor=pointer] + - generic [ref=e118]: + - generic [ref=e119]: + - generic [ref=e120]: + - heading "Кулаки рубинового феникса" [level=3] [ref=e121] + - paragraph [ref=e122]: 5 игр · 7 июня 2026, 12:00 — 28 июня 2026, 12:00 + - generic [ref=e123]: Batch + - generic [ref=e124]: + - generic [ref=e125]: + - generic [ref=e126]: + - generic [ref=e127]: Общее название + - textbox [ref=e128]: Кулаки рубинового феникса + - generic [ref=e129]: + - generic [ref=e130]: Общая ссылка + - textbox [ref=e131]: https://www.codeanddice.ru + - generic [ref=e132]: + - generic [ref=e133]: Уведомления игрокам + - combobox [ref=e134]: + - option "В группе и в личку" [selected] + - option "Только в группе" + - button "💾 Обновить batch" [ref=e135] [cursor=pointer] + - generic [ref=e137]: + - generic [ref=e138]: + - generic [ref=e139]: + - generic [ref=e140]: Первая дата пачки (МСК, UTC+3) + - textbox [ref=e141]: 2026-06-07T12:00 + - generic [ref=e142]: + - generic [ref=e143]: Шаг между играми, дней + - spinbutton [ref=e144]: "2" + - button "📅 Перенести пачку" [ref=e145] [cursor=pointer] + - generic [ref=e146]: + - generic [ref=e147]: 4/5 опубликовано + - combobox [ref=e148]: + - option "Скрыта" + - option "Каталог" + - option "Только участники" + - option "Каталог + клуб" [selected] + - generic [ref=e149]: + - combobox [ref=e150]: + - option "Следующая неделя" [selected] + - option "Следующий месяц" + - button "🧬 Клонировать" [ref=e151] [cursor=pointer] + - generic [ref=e152]: + - generic [ref=e153]: + - generic [ref=e154]: + - button "▶ Кулаки рубинового феникса" [ref=e155] [cursor=pointer] + - generic [ref=e156]: Запланировано + - generic [ref=e157]: + - generic [ref=e158]: + - generic [ref=e159]: 🕐 Время + - generic [ref=e160]: 7 июня 2026, 12:00 + - generic [ref=e161]: + - generic [ref=e162]: 👥 Места + - generic [ref=e163]: 1/5 + - generic [ref=e164]: + - generic [ref=e165]: 🔗 Ссылка + - link "Подключиться ↗" [ref=e166] [cursor=pointer]: + - /url: https://www.codeanddice.ru + - generic [ref=e167]: + - combobox [ref=e168]: + - option "Скрыта" + - option "Каталог" + - option "Только участники" + - option "Каталог + клуб" [selected] + - link "Публичная ссылка" [ref=e169] [cursor=pointer]: + - /url: http://game.codeanddice.ru/s/c7336ee7-84f3-4b34-9d07-9bf82460bb97 + - link "✏️ Изменить" [ref=e170] [cursor=pointer]: + - /url: /session/edit/c7336ee7-84f3-4b34-9d07-9bf82460bb97 + - link "📜 История" [ref=e171] [cursor=pointer]: + - /url: /session/c7336ee7-84f3-4b34-9d07-9bf82460bb97/history + - generic [ref=e172]: + - generic [ref=e173]: + - button "▶ ClubOnly test" [ref=e174] [cursor=pointer] + - generic [ref=e175]: Запланировано + - generic [ref=e176]: + - generic [ref=e177]: + - generic [ref=e178]: 🕐 Время + - generic [ref=e179]: 9 июня 2026, 06:51 + - generic [ref=e180]: + - generic [ref=e181]: 👥 Места + - generic [ref=e182]: 0/4 + - generic [ref=e183]: + - generic [ref=e184]: 🔗 Ссылка + - link "Подключиться ↗" [ref=e185] [cursor=pointer]: + - /url: https://example.com/test-club-only + - generic [ref=e186]: + - combobox [ref=e187]: + - option "Скрыта" + - option "Каталог" + - option "Только участники" [selected] + - option "Каталог + клуб" + - link "✏️ Изменить" [ref=e188] [cursor=pointer]: + - /url: /session/edit/9ccf2793-15ce-4695-bdbb-a869eb360333 + - link "📜 История" [ref=e189] [cursor=pointer]: + - /url: /session/9ccf2793-15ce-4695-bdbb-a869eb360333/history + - generic [ref=e190]: + - generic [ref=e191]: + - button "▶ Кулаки рубинового феникса" [ref=e192] [cursor=pointer] + - generic [ref=e193]: Запланировано + - generic [ref=e194]: + - generic [ref=e195]: + - generic [ref=e196]: 🕐 Время + - generic [ref=e197]: 14 июня 2026, 12:00 + - generic [ref=e198]: + - generic [ref=e199]: 👥 Места + - generic [ref=e200]: 1/5 + - generic [ref=e201]: + - generic [ref=e202]: 🔗 Ссылка + - link "Подключиться ↗" [ref=e203] [cursor=pointer]: + - /url: https://www.codeanddice.ru + - generic [ref=e204]: + - combobox [ref=e205]: + - option "Скрыта" + - option "Каталог" + - option "Только участники" + - option "Каталог + клуб" [selected] + - link "Публичная ссылка" [ref=e206] [cursor=pointer]: + - /url: http://game.codeanddice.ru/s/56b8db18-6c09-4386-bb12-536ec0dc09ec + - link "✏️ Изменить" [ref=e207] [cursor=pointer]: + - /url: /session/edit/56b8db18-6c09-4386-bb12-536ec0dc09ec + - link "📜 История" [ref=e208] [cursor=pointer]: + - /url: /session/56b8db18-6c09-4386-bb12-536ec0dc09ec/history + - generic [ref=e209]: + - generic [ref=e210]: + - button "▶ Кулаки рубинового феникса" [ref=e211] [cursor=pointer] + - generic [ref=e212]: Запланировано + - generic [ref=e213]: + - generic [ref=e214]: + - generic [ref=e215]: 🕐 Время + - generic [ref=e216]: 21 июня 2026, 12:00 + - generic [ref=e217]: + - generic [ref=e218]: 👥 Места + - generic [ref=e219]: 1/5 + - generic [ref=e220]: + - generic [ref=e221]: 🔗 Ссылка + - link "Подключиться ↗" [ref=e222] [cursor=pointer]: + - /url: https://www.codeanddice.ru + - generic [ref=e223]: + - combobox [ref=e224]: + - option "Скрыта" + - option "Каталог" + - option "Только участники" + - option "Каталог + клуб" [selected] + - link "Публичная ссылка" [ref=e225] [cursor=pointer]: + - /url: http://game.codeanddice.ru/s/71da7b07-debe-44a5-acbd-f61dd5873c5d + - link "✏️ Изменить" [ref=e226] [cursor=pointer]: + - /url: /session/edit/71da7b07-debe-44a5-acbd-f61dd5873c5d + - link "📜 История" [ref=e227] [cursor=pointer]: + - /url: /session/71da7b07-debe-44a5-acbd-f61dd5873c5d/history + - generic [ref=e228]: + - generic [ref=e229]: + - button "▶ Кулаки рубинового феникса" [ref=e230] [cursor=pointer] + - generic [ref=e231]: Запланировано + - generic [ref=e232]: + - generic [ref=e233]: + - generic [ref=e234]: 🕐 Время + - generic [ref=e235]: 28 июня 2026, 12:00 + - generic [ref=e236]: + - generic [ref=e237]: 👥 Места + - generic [ref=e238]: 1/5 + - generic [ref=e239]: + - generic [ref=e240]: 🔗 Ссылка + - link "Подключиться ↗" [ref=e241] [cursor=pointer]: + - /url: https://www.codeanddice.ru + - generic [ref=e242]: + - combobox [ref=e243]: + - option "Скрыта" + - option "Каталог" + - option "Только участники" + - option "Каталог + клуб" [selected] + - link "Публичная ссылка" [ref=e244] [cursor=pointer]: + - /url: http://game.codeanddice.ru/s/85f4d236-c32d-4cff-85ab-8f73e816a164 + - link "✏️ Изменить" [ref=e245] [cursor=pointer]: + - /url: /session/edit/85f4d236-c32d-4cff-85ab-8f73e816a164 + - link "📜 История" [ref=e246] [cursor=pointer]: + - /url: /session/85f4d236-c32d-4cff-85ab-8f73e816a164/history \ No newline at end of file diff --git a/.playwright-mcp/page-2026-06-04T03-52-36-693Z.yml b/.playwright-mcp/page-2026-06-04T03-52-36-693Z.yml new file mode 100644 index 0000000..41e22ed --- /dev/null +++ b/.playwright-mcp/page-2026-06-04T03-52-36-693Z.yml @@ -0,0 +1,58 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - link "GM-Relay GM-Relay" [ref=e5] [cursor=pointer]: + - /url: "" + - img "GM-Relay" [ref=e6] + - generic [ref=e7]: GM-Relay + - navigation [ref=e8]: + - generic [ref=e9]: + - link "Главная страница" [ref=e10] [cursor=pointer]: + - /url: "" + - img [ref=e11] + - text: Главная страница + - link "Шаблоны" [ref=e14] [cursor=pointer]: + - /url: templates + - img [ref=e15] + - text: Шаблоны + - link "Профиль" [ref=e17] [cursor=pointer]: + - /url: profile + - img [ref=e18] + - text: Профиль + - link "Мои клубы" [ref=e21] [cursor=pointer]: + - /url: profile/memberships + - img [ref=e22] + - text: Мои клубы + - generic [ref=e25]: + - generic [ref=e26]: + - generic [ref=e27]: А + - generic [ref=e28]: + - generic [ref=e29]: Алексей Салопаев + - generic [ref=e30]: Telegram + - button "Выход" [ref=e32] [cursor=pointer]: + - img [ref=e33] + - text: Выход + - generic [ref=e36]: v3.7.1 + - article [ref=e38]: + - generic [ref=e39]: + - list [ref=e40]: + - listitem [ref=e41]: + - link "Главная" [ref=e42] [cursor=pointer]: + - /url: / + - listitem [ref=e43]: + - text: › + - link "Группа" [ref=e44] [cursor=pointer]: + - /url: /group/ca532457-702c-45d0-a949-7bc06e6169ac + - listitem [ref=e45]: › Заявки + - generic [ref=e46]: + - heading "📨 Заявки участников" [level=2] [ref=e47] + - paragraph [ref=e48]: Одобряйте или отклоняйте заявки на участие в клубе. + - list [ref=e49]: + - listitem [ref=e50]: + - generic [ref=e51]: + - strong [ref=e52]: Тестовый Участник + - generic [ref=e53]: Telegram + - text: test_member04.06.2026 03:53 + - paragraph [ref=e54]: «Прошу принять в клуб, опыт 5 лет в D&D» + - generic [ref=e55]: + - button "✅ Одобрить" [ref=e56] [cursor=pointer] + - button "❌ Отклонить" [ref=e57] [cursor=pointer] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-06-04T03-52-53-271Z.yml b/.playwright-mcp/page-2026-06-04T03-52-53-271Z.yml new file mode 100644 index 0000000..ef134c6 --- /dev/null +++ b/.playwright-mcp/page-2026-06-04T03-52-53-271Z.yml @@ -0,0 +1,51 @@ +- generic [ref=e58]: + - complementary [ref=e59]: + - link "GM-Relay GM-Relay" [ref=e61] [cursor=pointer]: + - /url: "" + - img "GM-Relay" [ref=e62] + - generic [ref=e63]: GM-Relay + - navigation [ref=e64]: + - generic [ref=e65]: + - link "Главная страница" [ref=e66] [cursor=pointer]: + - /url: "" + - img [ref=e67] + - text: Главная страница + - link "Шаблоны" [ref=e70] [cursor=pointer]: + - /url: templates + - img [ref=e71] + - text: Шаблоны + - link "Профиль" [ref=e73] [cursor=pointer]: + - /url: profile + - img [ref=e74] + - text: Профиль + - link "Мои клубы" [ref=e77] [cursor=pointer]: + - /url: profile/memberships + - img [ref=e78] + - text: Мои клубы + - generic [ref=e81]: + - generic [ref=e82]: + - generic [ref=e83]: А + - generic [ref=e84]: + - generic [ref=e85]: Алексей Салопаев + - generic [ref=e86]: Telegram + - button "Выход" [ref=e88] [cursor=pointer]: + - img [ref=e89] + - text: Выход + - generic [ref=e92]: v3.7.1 + - article [ref=e94]: + - generic [ref=e95]: + - list [ref=e96]: + - listitem [ref=e97]: + - link "Главная" [ref=e98] [cursor=pointer]: + - /url: / + - listitem [ref=e99]: + - text: › + - link "Группа" [ref=e100] [cursor=pointer]: + - /url: /group/ca532457-702c-45d0-a949-7bc06e6169ac + - listitem [ref=e101]: › Заявки + - generic [ref=e102]: + - heading "📨 Заявки участников" [level=2] [ref=e103] + - paragraph [ref=e104]: Одобряйте или отклоняйте заявки на участие в клубе. + - generic [ref=e114]: + - heading "Новых заявок нет" [level=2] [ref=e115] + - paragraph [ref=e116]: Когда игроки подадут заявку на участие в клубе, она появится здесь. \ No newline at end of file diff --git a/.playwright-mcp/page-2026-06-04T03-57-40-151Z.yml b/.playwright-mcp/page-2026-06-04T03-57-40-151Z.yml new file mode 100644 index 0000000..dd1dd72 --- /dev/null +++ b/.playwright-mcp/page-2026-06-04T03-57-40-151Z.yml @@ -0,0 +1,49 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - link "GM-Relay GM-Relay" [ref=e5] [cursor=pointer]: + - /url: "" + - img "GM-Relay" [ref=e6] + - generic [ref=e7]: GM-Relay + - navigation [ref=e8]: + - generic [ref=e9]: + - link "Главная страница" [ref=e10] [cursor=pointer]: + - /url: "" + - img [ref=e11] + - text: Главная страница + - link "Шаблоны" [ref=e14] [cursor=pointer]: + - /url: templates + - img [ref=e15] + - text: Шаблоны + - link "Профиль" [ref=e17] [cursor=pointer]: + - /url: profile + - img [ref=e18] + - text: Профиль + - link "Мои клубы" [ref=e21] [cursor=pointer]: + - /url: profile/memberships + - img [ref=e22] + - text: Мои клубы + - generic [ref=e25]: + - generic [ref=e26]: + - generic [ref=e27]: А + - generic [ref=e28]: + - generic [ref=e29]: Алексей Салопаев + - generic [ref=e30]: Telegram + - button "Выход" [ref=e32] [cursor=pointer]: + - img [ref=e33] + - text: Выход + - generic [ref=e36]: v3.7.1 + - article [ref=e38]: + - generic [ref=e39]: + - list [ref=e40]: + - listitem [ref=e41]: + - link "Главная" [ref=e42] [cursor=pointer]: + - /url: / + - listitem [ref=e43]: › Мои клубы + - generic [ref=e44]: + - heading "🏛 Мои клубы" [level=2] [ref=e45] + - paragraph [ref=e46]: Заявки и активные участия в приватных клубных витринах. + - generic [ref=e47]: + - heading "Вы пока не подавали заявок" [level=2] [ref=e48] + - paragraph [ref=e49]: Откройте публичную витрину клуба и нажмите «Подать заявку», чтобы стать участником. + - link "К каталогу клубов" [ref=e50] [cursor=pointer]: + - /url: /showcase \ No newline at end of file diff --git a/.playwright-mcp/page-2026-06-04T03-58-18-624Z.yml b/.playwright-mcp/page-2026-06-04T03-58-18-624Z.yml new file mode 100644 index 0000000..f2a25fa --- /dev/null +++ b/.playwright-mcp/page-2026-06-04T03-58-18-624Z.yml @@ -0,0 +1,72 @@ +- generic [ref=e2]: + - banner [ref=e3]: + - link "GM-Relay GM-Relay" [ref=e4] [cursor=pointer]: + - /url: / + - img "GM-Relay" [ref=e5] + - generic [ref=e6]: GM-Relay + - generic [ref=e7]: + - link "Клубы" [ref=e8] [cursor=pointer]: + - /url: /showcase + - link "Войти" [ref=e9] [cursor=pointer]: + - /url: /login + - main [ref=e10]: + - generic [ref=e11]: + - generic [ref=e12]: Публичное расписание + - heading "Кулаки рубинового феникса" [level=1] [ref=e13] + - paragraph [ref=e14]: Открытые игры клуба без состава игроков, личных данных и приватных ссылок. + - generic [ref=e15]: + - text: Ссылка клуба + - link "http://game.codeanddice.ru/club/kulaki" [ref=e16] [cursor=pointer]: + - /url: http://game.codeanddice.ru/club/kulaki + - generic [ref=e17]: + - text: Мастер + - link "Алексей Салопаев" [ref=e18] [cursor=pointer]: + - /url: /gm/toutsu + - generic [ref=e19]: + - article [ref=e20]: + - generic [ref=e21]: + - generic [ref=e22]: Запланировано + - heading "Кулаки рубинового феникса" [level=2] [ref=e23] + - generic [ref=e24]: + - generic [ref=e25]: 7 июня 2026, 12:00 + - generic [ref=e26]: 1/5 + - link "Открыть" [ref=e27] [cursor=pointer]: + - /url: /s/c7336ee7-84f3-4b34-9d07-9bf82460bb97 + - article [ref=e28]: + - generic [ref=e29]: + - generic [ref=e30]: Запланировано + - heading "Кулаки рубинового феникса" [level=2] [ref=e31] + - generic [ref=e32]: + - generic [ref=e33]: 14 июня 2026, 12:00 + - generic [ref=e34]: 1/5 + - link "Открыть" [ref=e35] [cursor=pointer]: + - /url: /s/56b8db18-6c09-4386-bb12-536ec0dc09ec + - article [ref=e36]: + - generic [ref=e37]: + - generic [ref=e38]: Запланировано + - heading "Кулаки рубинового феникса" [level=2] [ref=e39] + - generic [ref=e40]: + - generic [ref=e41]: 21 июня 2026, 12:00 + - generic [ref=e42]: 1/5 + - link "Открыть" [ref=e43] [cursor=pointer]: + - /url: /s/71da7b07-debe-44a5-acbd-f61dd5873c5d + - article [ref=e44]: + - generic [ref=e45]: + - generic [ref=e46]: Запланировано + - heading "Кулаки рубинового феникса" [level=2] [ref=e47] + - generic [ref=e48]: + - generic [ref=e49]: 28 июня 2026, 12:00 + - generic [ref=e50]: 1/5 + - link "Открыть" [ref=e51] [cursor=pointer]: + - /url: /s/85f4d236-c32d-4cff-85ab-8f73e816a164 + - generic [ref=e52]: + - heading "Игры для участников клуба" [level=2] [ref=e53] + - article [ref=e55]: + - generic [ref=e56]: + - generic [ref=e57]: Только для участников + - heading "ClubOnly test" [level=2] [ref=e58] + - generic [ref=e59]: + - generic [ref=e60]: 9 июня 2026, 06:51 + - generic [ref=e61]: 0/4 + - link "Открыть" [ref=e62] [cursor=pointer]: + - /url: /s/9ccf2793-15ce-4695-bdbb-a869eb360333 \ No newline at end of file diff --git a/.playwright-mcp/page-2026-06-04T03-59-14-551Z.yml b/.playwright-mcp/page-2026-06-04T03-59-14-551Z.yml new file mode 100644 index 0000000..dd1dd72 --- /dev/null +++ b/.playwright-mcp/page-2026-06-04T03-59-14-551Z.yml @@ -0,0 +1,49 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - link "GM-Relay GM-Relay" [ref=e5] [cursor=pointer]: + - /url: "" + - img "GM-Relay" [ref=e6] + - generic [ref=e7]: GM-Relay + - navigation [ref=e8]: + - generic [ref=e9]: + - link "Главная страница" [ref=e10] [cursor=pointer]: + - /url: "" + - img [ref=e11] + - text: Главная страница + - link "Шаблоны" [ref=e14] [cursor=pointer]: + - /url: templates + - img [ref=e15] + - text: Шаблоны + - link "Профиль" [ref=e17] [cursor=pointer]: + - /url: profile + - img [ref=e18] + - text: Профиль + - link "Мои клубы" [ref=e21] [cursor=pointer]: + - /url: profile/memberships + - img [ref=e22] + - text: Мои клубы + - generic [ref=e25]: + - generic [ref=e26]: + - generic [ref=e27]: А + - generic [ref=e28]: + - generic [ref=e29]: Алексей Салопаев + - generic [ref=e30]: Telegram + - button "Выход" [ref=e32] [cursor=pointer]: + - img [ref=e33] + - text: Выход + - generic [ref=e36]: v3.7.1 + - article [ref=e38]: + - generic [ref=e39]: + - list [ref=e40]: + - listitem [ref=e41]: + - link "Главная" [ref=e42] [cursor=pointer]: + - /url: / + - listitem [ref=e43]: › Мои клубы + - generic [ref=e44]: + - heading "🏛 Мои клубы" [level=2] [ref=e45] + - paragraph [ref=e46]: Заявки и активные участия в приватных клубных витринах. + - generic [ref=e47]: + - heading "Вы пока не подавали заявок" [level=2] [ref=e48] + - paragraph [ref=e49]: Откройте публичную витрину клуба и нажмите «Подать заявку», чтобы стать участником. + - link "К каталогу клубов" [ref=e50] [cursor=pointer]: + - /url: /showcase \ No newline at end of file diff --git a/.playwright-mcp/page-2026-06-04T03-59-33-699Z.yml b/.playwright-mcp/page-2026-06-04T03-59-33-699Z.yml new file mode 100644 index 0000000..65bd9a9 --- /dev/null +++ b/.playwright-mcp/page-2026-06-04T03-59-33-699Z.yml @@ -0,0 +1,264 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - link "GM-Relay GM-Relay" [ref=e5] [cursor=pointer]: + - /url: "" + - img "GM-Relay" [ref=e6] + - generic [ref=e7]: GM-Relay + - navigation [ref=e8]: + - generic [ref=e9]: + - link "Главная страница" [ref=e10] [cursor=pointer]: + - /url: "" + - img [ref=e11] + - text: Главная страница + - link "Шаблоны" [ref=e14] [cursor=pointer]: + - /url: templates + - img [ref=e15] + - text: Шаблоны + - link "Профиль" [ref=e17] [cursor=pointer]: + - /url: profile + - img [ref=e18] + - text: Профиль + - link "Мои клубы" [ref=e21] [cursor=pointer]: + - /url: profile/memberships + - img [ref=e22] + - text: Мои клубы + - generic [ref=e25]: + - generic [ref=e26]: + - generic [ref=e27]: А + - generic [ref=e28]: + - generic [ref=e29]: Алексей Салопаев + - generic [ref=e30]: Telegram + - button "Выход" [ref=e32] [cursor=pointer]: + - img [ref=e33] + - text: Выход + - generic [ref=e36]: v3.7.1 + - article [ref=e38]: + - generic [ref=e39]: + - list [ref=e40]: + - listitem [ref=e41]: + - link "Главная" [ref=e42] [cursor=pointer]: + - /url: / + - listitem [ref=e43]: › Сессии группы + - heading "📅 Предстоящие игры" [level=2] [ref=e45] + - generic [ref=e46]: + - generic [ref=e47]: + - generic [ref=e48]: + - heading "Управление группой" [level=3] [ref=e49] + - paragraph [ref=e50]: Кулаки рубинового феникса · Owner + - generic [ref=e51]: Owner + - generic [ref=e52]: + - link "📊 Статистика" [ref=e53] [cursor=pointer]: + - /url: /groupstats/ca532457-702c-45d0-a949-7bc06e6169ac + - generic [ref=e54]: Owner · Алексей Салопаев · Telegram 158169580 + - generic [ref=e55]: + - generic [ref=e56]: + - generic [ref=e57]: + - generic [ref=e58]: Telegram ID co-GM + - textbox [ref=e59] + - generic [ref=e60]: + - generic [ref=e61]: Имя + - textbox [ref=e62] + - generic [ref=e63]: + - generic [ref=e64]: Username + - textbox [ref=e65] + - button "➕ Добавить co-GM" [ref=e66] [cursor=pointer] + - generic [ref=e67]: + - generic [ref=e68]: + - generic [ref=e69]: + - heading "Публичная страница клуба" [level=3] [ref=e70] + - paragraph [ref=e71]: 4 опубликованных игр без состава игроков и приватных ссылок + - generic [ref=e72]: Включена + - generic [ref=e73]: + - generic [ref=e74]: + - generic [ref=e75]: + - generic [ref=e76]: + - checkbox "Включить публичное расписание" [checked] [ref=e77] + - generic [ref=e78]: Включить публичное расписание + - generic [ref=e79]: Если выключено, публичная страница и ссылки на сессии недоступны. + - generic [ref=e80]: + - generic [ref=e81]: Короткий адрес + - textbox [ref=e82]: kulaki + - generic [ref=e83]: "Латиница, цифры и дефисы, например `night-city-club`." + - generic [ref=e84]: + - button "Сохранить публикацию" [ref=e85] [cursor=pointer] + - link "Открыть публичную страницу" [ref=e86] [cursor=pointer]: + - /url: http://game.codeanddice.ru/club/kulaki + - generic [ref=e87]: + - generic [ref=e88]: Ссылка клуба + - link "http://game.codeanddice.ru/club/kulaki" [ref=e89] [cursor=pointer]: + - /url: http://game.codeanddice.ru/club/kulaki + - generic [ref=e90]: + - generic [ref=e91]: + - generic [ref=e92]: + - heading "Проведённые приключения" [level=3] [ref=e93] + - paragraph [ref=e94]: Черновики и опубликованные приключения для каталога мастера. + - button "➕ Создать" [ref=e95] [cursor=pointer] + - generic [ref=e96]: + - generic [ref=e97]: Приключений пока нет + - paragraph [ref=e98]: Создайте первый черновик и добавьте проведённые сессии. + - link "📜 Все проведённые сессии" [ref=e100] [cursor=pointer]: + - /url: /group/ca532457-702c-45d0-a949-7bc06e6169ac/completed + - generic [ref=e101]: + - generic [ref=e102]: + - generic [ref=e103]: + - heading "Применить шаблон" [level=3] [ref=e104] + - paragraph [ref=e105]: 1 доступных для этой группы + - link "⚙️ Управлять шаблонами" [ref=e106] [cursor=pointer]: + - /url: /templates + - generic [ref=e108]: + - generic [ref=e109]: + - heading "Кулаки" [level=3] [ref=e110] + - paragraph [ref=e111]: Кулаки рубинового феникса · 4 игр · каждые 7 дн. · 5 мест · группа и личка + - generic [ref=e112]: + - textbox [ref=e113]: 2026-06-11T07:00:54 + - button "📅 Создать batch" [ref=e114] [cursor=pointer] + - generic [ref=e116]: + - generic [ref=e117]: + - generic [ref=e118]: + - heading "Кулаки рубинового феникса" [level=3] [ref=e119] + - paragraph [ref=e120]: 4 игр · 7 июня 2026, 12:00 — 28 июня 2026, 12:00 + - generic [ref=e121]: Batch + - generic [ref=e122]: + - generic [ref=e123]: + - generic [ref=e124]: + - generic [ref=e125]: Общее название + - textbox [ref=e126]: Кулаки рубинового феникса + - generic [ref=e127]: + - generic [ref=e128]: Общая ссылка + - textbox [ref=e129]: https://www.codeanddice.ru + - generic [ref=e130]: + - generic [ref=e131]: Уведомления игрокам + - combobox [ref=e132]: + - option "В группе и в личку" [selected] + - option "Только в группе" + - button "💾 Обновить batch" [ref=e133] [cursor=pointer] + - generic [ref=e135]: + - generic [ref=e136]: + - generic [ref=e137]: + - generic [ref=e138]: Первая дата пачки (МСК, UTC+3) + - textbox [ref=e139]: 2026-06-07T12:00 + - generic [ref=e140]: + - generic [ref=e141]: Шаг между играми, дней + - spinbutton [ref=e142]: "7" + - button "📅 Перенести пачку" [ref=e143] [cursor=pointer] + - generic [ref=e144]: + - generic [ref=e145]: Все игры опубликованы + - combobox [ref=e146]: + - option "Скрыта" + - option "Каталог" + - option "Только участники" + - option "Каталог + клуб" [selected] + - generic [ref=e147]: + - combobox [ref=e148]: + - option "Следующая неделя" [selected] + - option "Следующий месяц" + - button "🧬 Клонировать" [ref=e149] [cursor=pointer] + - generic [ref=e150]: + - generic [ref=e151]: + - generic [ref=e152]: + - button "▶ Кулаки рубинового феникса" [ref=e153] [cursor=pointer] + - generic [ref=e154]: Запланировано + - generic [ref=e155]: + - generic [ref=e156]: + - generic [ref=e157]: 🕐 Время + - generic [ref=e158]: 7 июня 2026, 12:00 + - generic [ref=e159]: + - generic [ref=e160]: 👥 Места + - generic [ref=e161]: 1/5 + - generic [ref=e162]: + - generic [ref=e163]: 🔗 Ссылка + - link "Подключиться ↗" [ref=e164] [cursor=pointer]: + - /url: https://www.codeanddice.ru + - generic [ref=e165]: + - combobox [ref=e166]: + - option "Скрыта" + - option "Каталог" + - option "Только участники" + - option "Каталог + клуб" [selected] + - link "Публичная ссылка" [ref=e167] [cursor=pointer]: + - /url: http://game.codeanddice.ru/s/c7336ee7-84f3-4b34-9d07-9bf82460bb97 + - link "✏️ Изменить" [ref=e168] [cursor=pointer]: + - /url: /session/edit/c7336ee7-84f3-4b34-9d07-9bf82460bb97 + - link "📜 История" [ref=e169] [cursor=pointer]: + - /url: /session/c7336ee7-84f3-4b34-9d07-9bf82460bb97/history + - generic [ref=e170]: + - generic [ref=e171]: + - button "▶ Кулаки рубинового феникса" [ref=e172] [cursor=pointer] + - generic [ref=e173]: Запланировано + - generic [ref=e174]: + - generic [ref=e175]: + - generic [ref=e176]: 🕐 Время + - generic [ref=e177]: 14 июня 2026, 12:00 + - generic [ref=e178]: + - generic [ref=e179]: 👥 Места + - generic [ref=e180]: 1/5 + - generic [ref=e181]: + - generic [ref=e182]: 🔗 Ссылка + - link "Подключиться ↗" [ref=e183] [cursor=pointer]: + - /url: https://www.codeanddice.ru + - generic [ref=e184]: + - combobox [ref=e185]: + - option "Скрыта" + - option "Каталог" + - option "Только участники" + - option "Каталог + клуб" [selected] + - link "Публичная ссылка" [ref=e186] [cursor=pointer]: + - /url: http://game.codeanddice.ru/s/56b8db18-6c09-4386-bb12-536ec0dc09ec + - link "✏️ Изменить" [ref=e187] [cursor=pointer]: + - /url: /session/edit/56b8db18-6c09-4386-bb12-536ec0dc09ec + - link "📜 История" [ref=e188] [cursor=pointer]: + - /url: /session/56b8db18-6c09-4386-bb12-536ec0dc09ec/history + - generic [ref=e189]: + - generic [ref=e190]: + - button "▶ Кулаки рубинового феникса" [ref=e191] [cursor=pointer] + - generic [ref=e192]: Запланировано + - generic [ref=e193]: + - generic [ref=e194]: + - generic [ref=e195]: 🕐 Время + - generic [ref=e196]: 21 июня 2026, 12:00 + - generic [ref=e197]: + - generic [ref=e198]: 👥 Места + - generic [ref=e199]: 1/5 + - generic [ref=e200]: + - generic [ref=e201]: 🔗 Ссылка + - link "Подключиться ↗" [ref=e202] [cursor=pointer]: + - /url: https://www.codeanddice.ru + - generic [ref=e203]: + - combobox [ref=e204]: + - option "Скрыта" + - option "Каталог" + - option "Только участники" + - option "Каталог + клуб" [selected] + - link "Публичная ссылка" [ref=e205] [cursor=pointer]: + - /url: http://game.codeanddice.ru/s/71da7b07-debe-44a5-acbd-f61dd5873c5d + - link "✏️ Изменить" [ref=e206] [cursor=pointer]: + - /url: /session/edit/71da7b07-debe-44a5-acbd-f61dd5873c5d + - link "📜 История" [ref=e207] [cursor=pointer]: + - /url: /session/71da7b07-debe-44a5-acbd-f61dd5873c5d/history + - generic [ref=e208]: + - generic [ref=e209]: + - button "▶ Кулаки рубинового феникса" [ref=e210] [cursor=pointer] + - generic [ref=e211]: Запланировано + - generic [ref=e212]: + - generic [ref=e213]: + - generic [ref=e214]: 🕐 Время + - generic [ref=e215]: 28 июня 2026, 12:00 + - generic [ref=e216]: + - generic [ref=e217]: 👥 Места + - generic [ref=e218]: 1/5 + - generic [ref=e219]: + - generic [ref=e220]: 🔗 Ссылка + - link "Подключиться ↗" [ref=e221] [cursor=pointer]: + - /url: https://www.codeanddice.ru + - generic [ref=e222]: + - combobox [ref=e223]: + - option "Скрыта" + - option "Каталог" + - option "Только участники" + - option "Каталог + клуб" [selected] + - link "Публичная ссылка" [ref=e224] [cursor=pointer]: + - /url: http://game.codeanddice.ru/s/85f4d236-c32d-4cff-85ab-8f73e816a164 + - link "✏️ Изменить" [ref=e225] [cursor=pointer]: + - /url: /session/edit/85f4d236-c32d-4cff-85ab-8f73e816a164 + - link "📜 История" [ref=e226] [cursor=pointer]: + - /url: /session/85f4d236-c32d-4cff-85ab-8f73e816a164/history \ No newline at end of file diff --git a/.superpowers/brainstorm/1868-1780546273/content/approaches.html b/.superpowers/brainstorm/1868-1780546273/content/approaches.html new file mode 100644 index 0000000..7965145 --- /dev/null +++ b/.superpowers/brainstorm/1868-1780546273/content/approaches.html @@ -0,0 +1,23 @@ +

Два подхода к архитектуре wizard-а

+

Уже решено: черновик в БД с TTL 24ч, линейный wizard, пул = один batch_id. Выбираем, как организовать код.

+ +
+
+
+

A. Центральный Wizard-сервис

+

GameCreationWizard — один сервис, держит в БД таблицу wizard_drafts (chat_id, step, payload jsonb, updated_at). Маршрутизация в UpdateRouter проверяет наличие активного черновика при любом апдейте и делегирует ему.

+

Плюсы: вся логика wizard-а в одном месте, легко тестировать, единая точка для TTL и таймаутов.

+

Минусы: UpdateRouter разрастается, нужен чёткий контракт «черновик активен → текст идёт в wizard» vs. свободный режим.

+
+
+
+
+

B. Per-feature диалоги

+

В каждой feature (CreateSession, ShowCase, и т.д.) — свой маленький handler для wizard-а, использующий ConversationStateService (state machine + storage). UpdateRouter делегирует в активный диалог через IDialogDispatcher.

+

Плюсы: масштабируется на будущие wizard-ы (для других фич), UpdateRouter остаётся тонким, модульные тесты на диалог.

+

Минусы: больше абстракций, нужно продумать контракт IDialog и dispatcher; для одной фичи это может быть overkill.

+
+
+
+ +

Кликните, чтобы выбрать. По умолчанию рекомендую A — мы делаем только один wizard, лишний слой абстракции не оправдан.

diff --git a/.superpowers/brainstorm/1868-1780546273/content/pool-steps-v2.html b/.superpowers/brainstorm/1868-1780546273/content/pool-steps-v2.html new file mode 100644 index 0000000..aebbc9d --- /dev/null +++ b/.superpowers/brainstorm/1868-1780546273/content/pool-steps-v2.html @@ -0,0 +1,88 @@ +

Шаги wizard-а: пул игр (v2)

+

Система и длительность — общие на весь пул. Мини-wizard слота: только дата + лимит/waitlist.

+ +
+
Шаги 1–5 — общие параметры пула
+
+
+1. Тип создания            → [Одну / Пул]
+2. Название пула           → ввод
+3. Описание (опц.)         → ввод или «-»
+4. Обложка (опц.)          → фото/URL или «-»
+5. Система + длительность  → [D&D 5e 4ч] [PF2e 4ч] [CoC 3ч] …
+
+[ ⬅️ Назад ]  [ ❌ Отмена ]
+
+

На шаге 5 — пара кнопок «Система + длительность» (сначала выбираешь систему, потом длительность), или сразу готовые пресеты. Пресеты — самый быстрый путь.

+
+
+ +
+
Шаг 6 — видимость (issue #110)
+
+
+🔒 Видимость пула
+
+[ 🌐 Публичная в общем showcase ]
+[ 🏠 Публичная в витрине клуба ]
+[ 🔐 Только для членов клуба  ]
+[ 🏷 Выбрать клуб…              ]
+
+[ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Шаг 7 — добавить слоты
+
+
+📅 Слоты пула «Сага о Багровом Караване»
+
+Сейчас в пуле: 0 слотов.
+Параметры пула: D&D 5e, 4 часа.
+
+[ ➕ Добавить слот     ]
+[ ✅ Готово, к превью ]
+
+[ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Мини-wizard слота
+
+
+Слот 1 — D&D 5e, 4 часа
+
+📅 Дата/время: ввод ДД.ММ.ГГГГ ЧЧ:ММ
+👥 Мест + waitlist: ввод + кнопка
+
+[ ✅ Готово, добавить слот ]  [ ⬅️ Назад ]  [ ❌ Отмена ]
+
+

После «Готово» возврат на шаг 7 с обновлённым счётчиком.

+
+
+ +
+
Шаг 8 — превью и подтверждение
+
+
+👀 Проверьте пул перед созданием
+
+📝 Сага о Багровом Караване
+📄 …
+🎲 D&D 5e, 4 часа
+🖼 [превью обложки]
+🔒 Публичная в общем showcase
+
+Слоты (3):
+  • 15.06.2026 19:30 — мест 4, waitlist
+  • 22.06.2026 19:30 — мест 4, waitlist
+  • 29.06.2026 19:30 — мест 4, waitlist
+
+[ ✅ Создать пул ]  [ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
diff --git a/.superpowers/brainstorm/1868-1780546273/content/pool-steps.html b/.superpowers/brainstorm/1868-1780546273/content/pool-steps.html new file mode 100644 index 0000000..a306e44 --- /dev/null +++ b/.superpowers/brainstorm/1868-1780546273/content/pool-steps.html @@ -0,0 +1,128 @@ +

Шаги wizard-а: пул игр

+

Только общие параметры пула: название, описание, обложка, видимость/клуб. Даты и игровые параметры слотов — отдельный мини-wizard на следующем шаге.

+ +
+
Шаг 1 — тип создания
+
+
+🎲 Создание новой игровой сессии
+
+[ 🎯 Одну игру          ]
+[ 📅 Пул игр (несколько) ]
+[ ❌ Отмена              ]
+
+
+
+ +
+
Шаг 2 — название пула
+
+
+📝 Название пула
+
+Введите название одним сообщением. Например:
+  • «Сага о Багровом Караване — серия ваншотов»
+  • «D&D 5e: Tyranny of Dragons, 4 вечера»
+
+[ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Шаг 3 — описание пула (опционально)
+
+
+📄 Описание пула
+
+Общий сеттинг/правила серии. Можно пропустить — отправьте «-».
+
+[ ⏭ Пропустить ]  [ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Шаг 4 — обложка пула (опционально)
+
+
+🖼 Обложка
+
+Пришлите картинку или URL. Можно пропустить.
+
+[ ⏭ Пропустить ]  [ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Шаг 5 — видимость пула (issue #110)
+
+
+🔒 Видимость пула
+
+[ 🌐 Публичная в общем showcase ]
+[ 🏠 Публичная в витрине клуба ]
+[ 🔐 Только для членов клуба  ]
+[ 🏷 Выбрать клуб…              ]
+
+[ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Шаг 6 — добавить слоты (мини-wizard)
+
+
+📅 Слоты пула «Сага о Багровом Караване»
+
+Сейчас в пуле: 0 слотов.
+
+Что дальше?
+[ ➕ Добавить слот     ]  — войти в мини-wizard для слота
+[ ✅ Готово, перейти к превью ]
+
+[ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Мини-wizard слота (повторяется)
+
+
+Слот 1 из пула «Сага о Багровом Караване»
+
+📅 Дата: ДД.ММ.ГГГГ ЧЧ:ММ  →  ввод
+🎲 Система: [ кнопки систем ]
+⏱ Длительность: [ кнопки часов ]
+👥 Мест + waitlist: ввод
+[ ✅ Готово, добавить слот ]  [ ⬅️ Назад ]  [ ❌ Отмена ]
+
+

После «Готово» возвращаемся на шаг 6 с обновлённым счётчиком. Можно добавить ещё или перейти к превью.

+
+
+ +
+
Шаг 7 — превью и подтверждение пула
+
+
+👀 Проверьте пул перед созданием
+
+📝 Сага о Багровом Караване — серия ваншотов
+📄 Сеттинг: магический караван идёт через пустоши…
+🖼 [превью обложки]
+🔒 Публичная в общем showcase
+
+Слоты (3):
+  • 15.06.2026 19:30 — D&D 5e, 4 часа, мест 4
+  • 22.06.2026 19:30 — D&D 5e, 4 часа, мест 4
+  • 29.06.2026 19:30 — D&D 5e, 4 часа, мест 4
+
+[ ✅ Создать пул ]  [ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +

После «Создать пул» всё идёт в БД одним batch_id — переиспользуем существующий CreateSessionHandler.

diff --git a/.superpowers/brainstorm/1868-1780546273/content/single-game-steps-v2.html b/.superpowers/brainstorm/1868-1780546273/content/single-game-steps-v2.html new file mode 100644 index 0000000..1433d9e --- /dev/null +++ b/.superpowers/brainstorm/1868-1780546273/content/single-game-steps-v2.html @@ -0,0 +1,167 @@ +

Шаги wizard-а: одиночная игра

+

Линейный поток. На каждом шаге inline-кнопки для выбора + текст для свободного ввода. Назад/Отмена на каждом экране.

+ +
+
Шаг 1 — тип создания
+
+
+🎲 Создание новой игровой сессии
+
+Выберите, что вы хотите создать:
+
+[ 🎯 Одну игру          ]
+[ 📅 Пул игр (несколько) ]
+[ ❌ Отмена              ]
+
+
+
+ +
+
Шаг 2 — название
+
+
+📝 Название игры
+
+Введите название одним сообщением. Например:
+  • «Вечер ужасов»
+  • «D&D 5e: Hoard of the Dragon Queen»
+
+[ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Шаг 3 — описание (опционально)
+
+
+📄 Описание
+
+Кратко: сеттинг, ожидания, что взять с собой.
+Можно пропустить — отправьте «-».
+
+[ ⏭ Пропустить ]  [ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Шаг 4 — обложка (опционально)
+
+
+🖼 Обложка
+
+Пришлите картинку как вложение (фото) или отправьте URL.
+Можно пропустить — нажмите кнопку.
+
+[ ⏭ Пропустить ]  [ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Шаг 5 — система/формат
+
+
+🎲 Система / формат
+
+[ D&D 5e     ]  [ Pathfinder 2e ]
+[ Call of Cth ]  [ GURPS         ]
+[ Другое… ✏️ ]  [ ⏭ Пропустить   ]
+
+[ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Шаг 6 — длительность
+
+
+⏱ Длительность
+
+[ 3 часа  ]  [ 4 часа  ]  [ 5 часов ]
+[ 6 часов ]  [ Другое ✏️ ]  [ ⏭ Пропустить ]
+
+[ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Шаг 7 — дата/время
+
+
+📅 Дата и время
+
+Введите дату и время в формате ДД.ММ.ГГГГ ЧЧ:ММ (Москва).
+Например: 15.06.2026 19:30
+
+[ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Шаг 8 — лимит мест и waitlist
+
+
+👥 Лимит мест
+
+Введите целое число больше 0. Например: 4
+Waitlist — лист ожидания сверх лимита?
+
+[ ✅ Waitlist вкл ]  [ ❌ Без waitlist ]
+[ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Шаг 9 — клуб/видимость (issue #110)
+
+
+🔒 Видимость
+
+[ 🌐 Публичная в общем showcase ]
+[ 🏠 Публичная в витрине клуба ]
+[ 🔐 Только для членов клуба  ]
+[ 🏷 Выбрать клуб…              ]
+
+[ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Шаг 10 — публикация в витрине
+
+
+✨ Публикация
+
+Опубликовать в витрине сейчас?
+
+[ ✅ Опубликовать ]  [ 📝 Только в чате ]
+[ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Шаг 11 — превью и подтверждение
+
+
+👀 Проверьте перед созданием
+
+🎲 Вечер ужасов
+📄 Тёмная атмосфера, pre-made персонажи
+🖼 [превью картинки]
+🎲 Call of Cthulhu, 4 часа
+📅 15.06.2026 19:30 (МСК)
+👥 Мест: 4, waitlist вкл
+🔒 Публичная в общем showcase
+
+[ ✅ Создать ]  [ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
diff --git a/.superpowers/brainstorm/1868-1780546273/content/single-game-steps.html b/.superpowers/brainstorm/1868-1780546273/content/single-game-steps.html new file mode 100644 index 0000000..5a87f71 --- /dev/null +++ b/.superpowers/brainstorm/1868-1780546273/content/single-game-steps.html @@ -0,0 +1,152 @@ +

Шаги wizard-а: одиночная игра

+

Линейный поток. На каждом шаге inline-кнопки для выбора + текст для свободного ввода. Назад/Отмена на каждом экране.

+ +
+
Шаг 1 — тип создания
+
+
+🎲 Создание новой игровой сессии
+
+Выберите, что вы хотите создать:
+
+[ 🎯 Одну игру          ]
+[ 📅 Пул игр (несколько) ]
+[ ❌ Отмена              ]
+
+
+
+ +
+
Шаг 2 — название
+
+
+📝 Название игры
+
+Введите название одним сообщением. Например:
+  • «Вечер ужасов»
+  • «D&D 5e: Hoard of the Dragon Queen»
+
+[ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Шаг 3 — описание (опционально)
+
+
+📄 Описание
+
+Кратко: сеттинг, ожидания, что взять с собой.
+Можно пропустить — отправьте «-».
+
+[ ⏭ Пропустить ]  [ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Шаг 4 — система/формат
+
+
+🎲 Система / формат
+
+[ D&D 5e     ]  [ Pathfinder 2e ]
+[ Call of Cth ]  [ GURPS         ]
+[ Другое… ✏️ ]  [ ⏭ Пропустить   ]
+
+[ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Шаг 5 — длительность
+
+
+⏱ Длительность
+
+[ 3 часа  ]  [ 4 часа  ]  [ 5 часов ]
+[ 6 часов ]  [ Другое ✏️ ]  [ ⏭ Пропустить ]
+
+[ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Шаг 6 — дата/время
+
+
+📅 Дата и время
+
+Введите дату и время в формате ДД.ММ.ГГГГ ЧЧ:ММ (Москва).
+Например: 15.06.2026 19:30
+
+[ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Шаг 7 — лимит мест и waitlist
+
+
+👥 Лимит мест
+
+Введите целое число больше 0. Например: 4
+Waitlist — лист ожидания сверх лимита?
+
+[ ✅ Waitlist вкл ]  [ ❌ Без waitlist ]
+[ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Шаг 8 — клуб/видимость (issue #110)
+
+
+🔒 Видимость
+
+[ 🌐 Публичная в общем showcase ]
+[ 🏠 Публичная в витрине клуба ]
+[ 🔐 Только для членов клуба  ]
+[ 🏷 Выбрать клуб…              ]
+
+[ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Шаг 9 — публикация в витрине
+
+
+✨ Публикация
+
+Опубликовать в витрине сейчас?
+
+[ ✅ Опубликовать ]  [ 📝 Только в чате ]
+[ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
+ +
+
Шаг 10 — превью и подтверждение
+
+
+👀 Проверьте перед созданием
+
+🎲 Вечер ужаров
+📄 Тёмная атмосфера, pre-made персонажи
+🎲 Call of Cthulhu, 4 часа
+📅 15.06.2026 19:30 (МСК)
+👥 Мест: 4, waitlist вкл
+🔒 Публичная в общем showcase
+
+[ ✅ Создать ]  [ ⬅️ Назад ]  [ ❌ Отмена ]
+
+
+
diff --git a/.superpowers/brainstorm/1868-1780546273/state/server-stopped b/.superpowers/brainstorm/1868-1780546273/state/server-stopped new file mode 100644 index 0000000..108cb6a --- /dev/null +++ b/.superpowers/brainstorm/1868-1780546273/state/server-stopped @@ -0,0 +1 @@ +{"reason":"idle timeout","timestamp":1780549154324} diff --git a/.superpowers/brainstorm/1868-1780546273/state/server.pid b/.superpowers/brainstorm/1868-1780546273/state/server.pid new file mode 100644 index 0000000..e4cda12 --- /dev/null +++ b/.superpowers/brainstorm/1868-1780546273/state/server.pid @@ -0,0 +1 @@ +1868 diff --git a/.superpowers/brainstorm/waiting.html b/.superpowers/brainstorm/waiting.html new file mode 100644 index 0000000..ef07652 --- /dev/null +++ b/.superpowers/brainstorm/waiting.html @@ -0,0 +1,3 @@ +
+

Continuing in terminal...

+
diff --git a/Directory.Build.props b/Directory.Build.props index 03a7089..dc23532 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,6 +1,6 @@ - 3.9.1 + 3.9.2 net10.0 preview enable diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index f3c6a86..c55dfa9 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,4 +1,24 @@ -## 🐞 Patch 3.9.1 — Hotfix: Telegram-визард мёртв после 3.9.0 +## 🐞 Patch 3.9.2 — Hotfix: club-picker молча падал на шаге «Видимость» (3.9.1 неполный) + +В 3.9.1 был починен только `WizardDraftRepository` (самый частый путь). Тот же баг с `(CommandDefinition)`-оверлоадом Dapper остался в 4 клуб-пикерах / permission-локапах — Wizard доходил до шага «Видимость», и при выборе «Публичная в витрине клуба» / «Только для членов клуба» `PersistAndRenderAsync` дёргал `_messenger.GetOwnerClubsAsync` → `PlatformNotSupportedException` → `GameCreationWizard` глотал исключение → кнопка `ack` отправлялась с тостом «⚠️ Ошибка», но нового шага пользователь не видел. Privacy «не цеплялась». + +### 🩹 Что починено +- `src/GmRelay.Bot/Features/Sessions/CreateSession/Wizard/TelegramWizardMessenger.cs::GetOwnerClubsAsync` — `new CommandDefinition(...)` → прямой `QueryAsync(sql, params)`. +- `src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordWizardMessenger.cs::GetOwnerClubsAsync` — то же. +- `src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordWizardInteractionModule.cs::WizardClubLookup.LoadClubsAsync` — то же. +- `src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordPermissionLookup.cs::LoadManagerUserIdsAsync` — то же. +- `src/GmRelay.DiscordBot/GmRelay.DiscordBot.csproj` — добавлен `$(InterceptorsPreviewNamespaces);Dapper.AOT` (раньше был только в Shared и Bot). Без этого `Dapper.AOT`-генератор не сканировал DiscordBot, и `new CommandDefinition`-вызовы в DiscordBot падали бы в рантайме даже после фикса сигнатур. +- `src/GmRelay.DiscordBot/Program.cs` — добавлен `[module: Dapper.DapperAot]` (раньше только в Bot и Shared). +- `Directory.Build.props` / `compose.yaml` / `.gitea/workflows/deploy.yml` / `NavMenu.razor` — бамп 3.9.1 → 3.9.2. +- `tests/.../WizardDraftRepositoryAotShapeTests.cs` — расширены `ClubPickerAndPermissionLookups_ShouldNotUseCommandDefinition` на 4 inline-cases + опциональный `containingClass` для дизамбигуации одинаковых имён методов в DiscordWizardInteractionModule. + +### ⚠️ Известные ограничения +- Web-проект не под NativeAOT (Blazor Server), там `Dapper.AOT` не подключён и используется обычный Dapper; регрессия его не касается. + +### 🧪 Тесты +- 592/594 passed (2 pre-existing skipped), `dotnet format` clean, `dotnet build` 0 warnings/errors, AOT-генератор эмитит интерсепторы для всех 4 клуб-пикеров + `WizardDraftRepository` (всего 5 файлов: 4 в Bot/DiscordBot/DiscordBot + 1 в Shared). + +## 🐞 Patch 3.9.1 — Hotfix: Telegram-визард мёртв после 3.9.0 Регрессия в `WizardDraftRepository` (NativeAOT). В Telegram **не реагировали кнопки** и **не создавались игры**, потому что Dapper.AOT 1.0.48 не генерирует интерсепторы для оверлоада `(CommandDefinition)` — рантайм падал в `CreateParamInfoGenerator` → `PlatformNotSupportedException` на каждом апдейте, `TelegramBotService` глотал исключение и апдейт терялся. diff --git a/compose.yaml b/compose.yaml index 2b1f870..4934bf3 100644 --- a/compose.yaml +++ b/compose.yaml @@ -49,7 +49,7 @@ services: crond -f bot: - image: git.codeanddice.ru/toutsu/gmrelay-bot:3.9.1 + image: git.codeanddice.ru/toutsu/gmrelay-bot:3.9.2 restart: always depends_on: db: @@ -67,7 +67,7 @@ services: retries: 3 discord: - image: git.codeanddice.ru/toutsu/gmrelay-discord-bot:3.9.1 + image: git.codeanddice.ru/toutsu/gmrelay-discord-bot:3.9.2 restart: always depends_on: db: @@ -86,7 +86,7 @@ services: retries: 3 web: - image: git.codeanddice.ru/toutsu/gmrelay-web:3.9.1 + image: git.codeanddice.ru/toutsu/gmrelay-web:3.9.2 restart: always depends_on: db: diff --git a/deploy_log.txt b/deploy_log.txt new file mode 100644 index 0000000..0a85ede --- /dev/null +++ b/deploy_log.txt @@ -0,0 +1,251 @@ +2026-05-27T12:31:20.9150057Z dc165ce2739a(version:v0.6.1) received task 453 of job deploy, be triggered by event: push +2026-05-27T12:31:20.9154727Z workflow prepared +2026-05-27T12:31:20.9155579Z evaluating expression 'success()' +2026-05-27T12:31:20.9156854Z expression 'success()' evaluated to 'true' +2026-05-27T12:31:20.9157004Z 'runs-on' key not defined in Deploy Telegram Bot/scan-images +2026-05-27T12:31:20.9157122Z No steps found +2026-05-27T12:31:20.9157932Z evaluating expression 'success()' +2026-05-27T12:31:20.9158268Z expression 'success()' evaluated to 'true' +2026-05-27T12:31:20.9158454Z 🚀 Start image=docker.gitea.com/runner-images:ubuntu-latest +2026-05-27T12:31:20.9232647Z 🐳 docker pull image=docker.gitea.com/runner-images:ubuntu-latest platform= username= forcePull=false +2026-05-27T12:31:20.9232951Z 🐳 docker pull docker.gitea.com/runner-images:ubuntu-latest +2026-05-27T12:31:20.9534403Z Image exists? true +2026-05-27T12:31:21.0197676Z 🐳 docker create image=docker.gitea.com/runner-images:ubuntu-latest platform= entrypoint=["/bin/sleep" "10800"] cmd=[] network="gitea_default" +2026-05-27T12:31:21.7100260Z Created container name=GITEA-ACTIONS-TASK-453-WORKFLOW-Deploy-Telegram-Bot-JOB-deploy-d83f1b579bedd11c2782d7f1919238f60ddf77f43a8e03915eb9d8e80d2bbb26 id=2ef2c153515e6ef325ee6b60f4596383df921c64e5b2b33c08dffe59dfefb4ac from image docker.gitea.com/runner-images:ubuntu-latest (platform: ) +2026-05-27T12:31:21.7100732Z ENV ==> [RUNNER_TOOL_CACHE=/opt/hostedtoolcache RUNNER_OS=Linux RUNNER_ARCH=ARM64 RUNNER_TEMP=/tmp LANG=C.UTF-8] +2026-05-27T12:31:21.7100922Z 🐳 docker run image=docker.gitea.com/runner-images:ubuntu-latest platform= entrypoint=["/bin/sleep" "10800"] cmd=[] network="gitea_default" +2026-05-27T12:31:21.7101095Z Starting container: 2ef2c153515e6ef325ee6b60f4596383df921c64e5b2b33c08dffe59dfefb4ac +2026-05-27T12:31:22.0384820Z Started container: 2ef2c153515e6ef325ee6b60f4596383df921c64e5b2b33c08dffe59dfefb4ac +2026-05-27T12:31:22.1543381Z Writing entry to tarball workflow/event.json len:13215 +2026-05-27T12:31:22.1544742Z Writing entry to tarball workflow/envs.txt len:0 +2026-05-27T12:31:22.1545422Z Extracting content to '/var/run/act/' +2026-05-27T12:31:22.1741277Z ☁ git clone 'https://github.com/actions/checkout' # ref=v4 +2026-05-27T12:31:22.1741713Z cloning https://github.com/actions/checkout to /root/.cache/act/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab +2026-05-27T12:31:23.7121575Z Unable to pull refs/heads/v4: non-fast-forward update +2026-05-27T12:31:23.7122130Z Cloned https://github.com/actions/checkout to /root/.cache/act/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab +2026-05-27T12:31:23.7296881Z Checked out v4 +2026-05-27T12:31:23.7525015Z evaluating expression '' +2026-05-27T12:31:23.7525903Z expression '' evaluated to 'true' +2026-05-27T12:31:23.7526070Z ⭐ Run Main Checkout repository +2026-05-27T12:31:23.7526358Z Writing entry to tarball workflow/outputcmd.txt len:0 +2026-05-27T12:31:23.7526601Z Writing entry to tarball workflow/statecmd.txt len:0 +2026-05-27T12:31:23.7526762Z Writing entry to tarball workflow/pathcmd.txt len:0 +2026-05-27T12:31:23.7526907Z Writing entry to tarball workflow/envs.txt len:0 +2026-05-27T12:31:23.7527034Z Writing entry to tarball workflow/SUMMARY.md len:0 +2026-05-27T12:31:23.7527188Z Extracting content to '/var/run/act' +2026-05-27T12:31:23.7557058Z ::group::Run Checkout repository +2026-05-27T12:31:24.4741797Z ::add-matcher::/run/act/actions/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/dist/problem-matcher.json +2026-05-27T12:31:24.4744274Z Syncing repository: Toutsu/GmRelayBot +2026-05-27T12:31:24.4748425Z ::group::Getting Git version info +2026-05-27T12:31:24.4749378Z Working directory is '/workspace/Toutsu/GmRelayBot' +2026-05-27T12:31:24.4790805Z [command]/usr/bin/git version +2026-05-27T12:31:24.4835547Z git version 2.54.0 +2026-05-27T12:31:24.4862495Z ::endgroup:: +2026-05-27T12:31:24.4879544Z Temporarily overriding HOME='/tmp/a60d3fec-45fb-4b13-b0ca-04bc1b8de005' before making global git config changes +2026-05-27T12:31:24.4887842Z Adding repository directory to the temporary git global config as a safe directory +2026-05-27T12:31:24.4888234Z [command]/usr/bin/git config --global --add safe.directory /workspace/Toutsu/GmRelayBot +2026-05-27T12:31:24.4924724Z Deleting the contents of '/workspace/Toutsu/GmRelayBot' +2026-05-27T12:31:24.4930476Z ::group::Initializing the repository +2026-05-27T12:31:24.4936199Z [command]/usr/bin/git init /workspace/Toutsu/GmRelayBot +2026-05-27T12:31:24.5059384Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-05-27T12:31:24.5060021Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-05-27T12:31:24.5060235Z hint: to use in all of your new repositories, which will suppress this warning, +2026-05-27T12:31:24.5060553Z hint: call: +2026-05-27T12:31:24.5060691Z hint: +2026-05-27T12:31:24.5060817Z hint: git config --global init.defaultBranch +2026-05-27T12:31:24.5060949Z hint: +2026-05-27T12:31:24.5061063Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-05-27T12:31:24.5061204Z hint: 'development'. The just-created branch can be renamed via this command: +2026-05-27T12:31:24.5061343Z hint: +2026-05-27T12:31:24.5061468Z hint: git branch -m +2026-05-27T12:31:24.5061589Z hint: +2026-05-27T12:31:24.5061698Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-05-27T12:31:24.5063799Z Initialized empty Git repository in /workspace/Toutsu/GmRelayBot/.git/ +2026-05-27T12:31:24.5076231Z [command]/usr/bin/git remote add origin http://gitea:3000/Toutsu/GmRelayBot +2026-05-27T12:31:24.5140670Z ::endgroup:: +2026-05-27T12:31:24.5141042Z ::group::Disabling automatic garbage collection +2026-05-27T12:31:24.5147017Z [command]/usr/bin/git config --local gc.auto 0 +2026-05-27T12:31:24.5179162Z ::endgroup:: +2026-05-27T12:31:24.5179540Z ::group::Setting up auth +2026-05-27T12:31:24.5190050Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-05-27T12:31:24.5231986Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-05-27T12:31:24.5450389Z [command]/usr/bin/git config --local --name-only --get-regexp http\.http\:\/\/gitea\:3000\/\.extraheader +2026-05-27T12:31:24.5483121Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.http\:\/\/gitea\:3000\/\.extraheader' && git config --local --unset-all 'http.http://gitea:3000/.extraheader' || :" +2026-05-27T12:31:24.5691181Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-05-27T12:31:24.5726805Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-05-27T12:31:24.5942281Z [command]/usr/bin/git config --local http.http://gitea:3000/.extraheader AUTHORIZATION: basic *** +2026-05-27T12:31:24.6005539Z ::endgroup:: +2026-05-27T12:31:24.6005966Z ::group::Fetching the repository +2026-05-27T12:31:24.6016647Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +a0df94fc91f1dc0c9171bc34e953e377a29bd0ae:refs/remotes/origin/main +2026-05-27T12:31:25.4331090Z From http://gitea:3000/Toutsu/GmRelayBot +2026-05-27T12:31:25.4331938Z * [new ref] a0df94fc91f1dc0c9171bc34e953e377a29bd0ae -> origin/main +2026-05-27T12:31:25.4354023Z ::endgroup:: +2026-05-27T12:31:25.4354355Z ::group::Determining the checkout info +2026-05-27T12:31:25.4357865Z ::endgroup:: +2026-05-27T12:31:25.4363915Z [command]/usr/bin/git sparse-checkout disable +2026-05-27T12:31:25.4434433Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +2026-05-27T12:31:25.4462591Z ::group::Checking out the ref +2026-05-27T12:31:25.4468059Z [command]/usr/bin/git checkout --progress --force -B main refs/remotes/origin/main +2026-05-27T12:31:25.4937718Z Switched to a new branch 'main' +2026-05-27T12:31:25.4939587Z branch 'main' set up to track 'origin/main'. +2026-05-27T12:31:25.4946643Z ::endgroup:: +2026-05-27T12:31:25.4987441Z [command]/usr/bin/git log -1 --format=%H +2026-05-27T12:31:25.5011670Z a0df94fc91f1dc0c9171bc34e953e377a29bd0ae +2026-05-27T12:31:25.5030011Z ::remove-matcher owner=checkout-git:: +2026-05-27T12:31:25.5097115Z ::endgroup:: +2026-05-27T12:31:25.6581867Z ::group::Run echo "TELEGRAM_BOT_TOKEN=***" > .env +2026-05-27T12:31:25.6582466Z echo "TELEGRAM_BOT_TOKEN=***" > .env +2026-05-27T12:31:25.6582640Z echo "POSTGRES_PASSWORD=***" >> .env +2026-05-27T12:31:25.6582771Z echo "DISCORD_BOT_TOKEN=***" >> .env +2026-05-27T12:31:25.6582907Z echo "TELEGRAM_BOT_USERNAME=***" >> .env +2026-05-27T12:31:25.6583033Z echo "TELEGRAM_MINI_APP_URL=***" >> .env +2026-05-27T12:31:25.6583193Z echo "DISCORD_CLIENT_ID=***" >> .env +2026-05-27T12:31:25.6583329Z echo "DISCORD_CLIENT_SECRET=***" >> .env +2026-05-27T12:31:25.6583452Z echo "DISCORD_REDIRECT_URI=***" >> .env +2026-05-27T12:31:25.6583581Z shell: bash --noprofile --norc -e -o pipefail {0} +2026-05-27T12:31:25.6583724Z ::endgroup:: +2026-05-27T12:31:25.7912990Z ::group::Run # Авторизуемся локальным докером в нашей Gitea +2026-05-27T12:31:25.7913637Z # Авторизуемся локальным докером в нашей Gitea +2026-05-27T12:31:25.7913804Z docker login git.codeanddice.ru/ -u toutsu -p *** +2026-05-27T12:31:25.7913958Z +2026-05-27T12:31:25.7914058Z # Pull гарантирует, что мы получили нужную версию. +2026-05-27T12:31:25.7914193Z docker compose pull bot discord web +2026-05-27T12:31:25.7914317Z +2026-05-27T12:31:25.7914413Z # Запускаем! Флаг -d оставит их работать в фоне. +2026-05-27T12:31:25.7914550Z docker compose up -d +2026-05-27T12:31:25.7914665Z +2026-05-27T12:31:25.7914767Z # Ждём, пока сервисы перейдут в healthy или упадут +2026-05-27T12:31:25.7914905Z SERVICES="bot discord web" +2026-05-27T12:31:25.7915013Z MAX_WAIT=40 +2026-05-27T12:31:25.7915119Z INTERVAL=5 +2026-05-27T12:31:25.7915221Z ELAPSED=0 +2026-05-27T12:31:25.7915320Z +2026-05-27T12:31:25.7915421Z while [ $ELAPSED -lt $MAX_WAIT ]; do +2026-05-27T12:31:25.7915528Z NOT_HEALTHY=0 +2026-05-27T12:31:25.7915953Z for svc in $SERVICES; do +2026-05-27T12:31:25.7916171Z HEALTH=$(docker compose ps $svc --format="{{.Health}}" 2>/dev/null | head -n1) +2026-05-27T12:31:25.7916311Z if [ "$HEALTH" != "healthy" ]; then +2026-05-27T12:31:25.7916849Z STATE=$(docker compose ps $svc --format="{{.State}}" 2>/dev/null | head -n1) +2026-05-27T12:31:25.7917006Z echo "❌ $svc not healthy yet (state: ${STATE:-unknown})" +2026-05-27T12:31:25.7917126Z NOT_HEALTHY=$((NOT_HEALTHY + 1)) +2026-05-27T12:31:25.7917235Z fi +2026-05-27T12:31:25.7917335Z done +2026-05-27T12:31:25.7917451Z +2026-05-27T12:31:25.7917548Z if [ $NOT_HEALTHY -eq 0 ]; then +2026-05-27T12:31:25.7917663Z echo "✅ All services are healthy!" +2026-05-27T12:31:25.7917776Z exit 0 +2026-05-27T12:31:25.7917877Z fi +2026-05-27T12:31:25.7917972Z +2026-05-27T12:31:25.7918064Z sleep $INTERVAL +2026-05-27T12:31:25.7918169Z ELAPSED=$((ELAPSED + INTERVAL)) +2026-05-27T12:31:25.7918272Z done +2026-05-27T12:31:25.7918453Z +2026-05-27T12:31:25.7918566Z echo "⏰ Timed out waiting for services to become healthy" +2026-05-27T12:31:25.7918684Z docker compose ps +2026-05-27T12:31:25.7918786Z exit 1 +2026-05-27T12:31:25.7918897Z shell: bash --noprofile --norc -e -o pipefail {0} +2026-05-27T12:31:25.7919053Z ::endgroup:: +2026-05-27T12:31:25.9111229Z WARNING! Using --password via the CLI is insecure. Use --password-stdin. +2026-05-27T12:31:26.1423828Z +2026-05-27T12:31:26.1424466Z WARNING! Your credentials are stored unencrypted in '/root/.docker/config.json'. +2026-05-27T12:31:26.1424671Z Configure a credential helper to remove this warning. See +2026-05-27T12:31:26.1424807Z https://docs.docker.com/go/credential-store/ +2026-05-27T12:31:26.1424955Z +2026-05-27T12:31:26.1425102Z Login Succeeded +2026-05-27T12:31:26.2946506Z time="2026-05-27T12:31:26Z" level=warning msg="The \"TMPFILE\" variable is not set. Defaulting to a blank string." +2026-05-27T12:31:26.2947091Z time="2026-05-27T12:31:26Z" level=warning msg="The \"TMPFILE\" variable is not set. Defaulting to a blank string." +2026-05-27T12:31:26.2947262Z time="2026-05-27T12:31:26Z" level=warning msg="The \"TMPFILE\" variable is not set. Defaulting to a blank string." +2026-05-27T12:31:26.2947425Z time="2026-05-27T12:31:26Z" level=warning msg="The \"BACKUP_RETENTION_DAYS\" variable is not set. Defaulting to a blank string." +2026-05-27T12:31:26.3470650Z Image git.codeanddice.ru/toutsu/gmrelay-discord-bot:3.2.0 Pulling +2026-05-27T12:31:26.3471259Z Image git.codeanddice.ru/toutsu/gmrelay-web:3.2.0 Pulling +2026-05-27T12:31:26.3472764Z Image git.codeanddice.ru/toutsu/gmrelay-bot:3.2.0 Pulling +2026-05-27T12:31:28.3164132Z Image git.codeanddice.ru/toutsu/gmrelay-bot:3.2.0 Pulled +2026-05-27T12:31:29.1490701Z Image git.codeanddice.ru/toutsu/gmrelay-discord-bot:3.2.0 Pulled +2026-05-27T12:31:29.2027513Z Image git.codeanddice.ru/toutsu/gmrelay-web:3.2.0 Pulled +2026-05-27T12:31:29.3097123Z time="2026-05-27T12:31:29Z" level=warning msg="The \"TMPFILE\" variable is not set. Defaulting to a blank string." +2026-05-27T12:31:29.3097743Z time="2026-05-27T12:31:29Z" level=warning msg="The \"TMPFILE\" variable is not set. Defaulting to a blank string." +2026-05-27T12:31:29.3097938Z time="2026-05-27T12:31:29Z" level=warning msg="The \"TMPFILE\" variable is not set. Defaulting to a blank string." +2026-05-27T12:31:29.3098106Z time="2026-05-27T12:31:29Z" level=warning msg="The \"BACKUP_RETENTION_DAYS\" variable is not set. Defaulting to a blank string." +2026-05-27T12:31:29.4149375Z time="2026-05-27T12:31:29Z" level=warning msg="volume \"game_pgdata\" already exists but was created for project \"game\" (expected \"gmrelaybot\"). Use `external: true` to use an existing volume" +2026-05-27T12:31:29.4708413Z Container gmrelaybot-db-1 Running +2026-05-27T12:31:29.4709051Z Container gmrelaybot-db-backup-1 Running +2026-05-27T12:31:29.4709241Z Container gmrelaybot-bot-1 Recreate +2026-05-27T12:31:29.4709496Z Container gmrelaybot-discord-1 Recreate +2026-05-27T12:31:29.4709673Z Container gmrelaybot-web-1 Recreate +2026-05-27T12:31:35.5862707Z Container gmrelaybot-bot-1 Recreated +2026-05-27T12:31:35.6260776Z Container gmrelaybot-discord-1 Recreated +2026-05-27T12:31:35.7328880Z Container gmrelaybot-web-1 Recreated +2026-05-27T12:31:35.7581285Z Container gmrelaybot-db-1 Waiting +2026-05-27T12:31:35.7581820Z Container gmrelaybot-db-1 Waiting +2026-05-27T12:31:35.7581965Z Container gmrelaybot-db-1 Waiting +2026-05-27T12:31:35.7582184Z Container gmrelaybot-db-1 Waiting +2026-05-27T12:31:36.2594583Z Container gmrelaybot-db-1 Healthy +2026-05-27T12:31:36.2595123Z Container gmrelaybot-db-1 Healthy +2026-05-27T12:31:36.2595274Z Container gmrelaybot-bot-1 Starting +2026-05-27T12:31:36.2597841Z Container gmrelaybot-db-1 Healthy +2026-05-27T12:31:36.2598562Z Container gmrelaybot-discord-1 Starting +2026-05-27T12:31:36.2603680Z Container gmrelaybot-db-1 Healthy +2026-05-27T12:31:36.2604164Z Container gmrelaybot-web-1 Starting +2026-05-27T12:31:36.8921481Z Container gmrelaybot-bot-1 Started +2026-05-27T12:31:37.1271441Z Container gmrelaybot-web-1 Started +2026-05-27T12:31:37.1869826Z Container gmrelaybot-discord-1 Started +2026-05-27T12:31:37.9576517Z ❌ bot not healthy yet (state: running) +2026-05-27T12:31:38.4931876Z ❌ discord not healthy yet (state: running) +2026-05-27T12:31:38.9020060Z ❌ web not healthy yet (state: running) +2026-05-27T12:31:44.7197603Z ❌ bot not healthy yet (state: running) +2026-05-27T12:31:44.9254483Z ❌ discord not healthy yet (state: running) +2026-05-27T12:31:45.1193773Z ❌ web not healthy yet (state: running) +2026-05-27T12:31:50.2787401Z ❌ bot not healthy yet (state: restarting) +2026-05-27T12:31:55.6104976Z ❌ bot not healthy yet (state: restarting) +2026-05-27T12:32:00.9894605Z ❌ bot not healthy yet (state: restarting) +2026-05-27T12:32:06.3687624Z ❌ bot not healthy yet (state: restarting) +2026-05-27T12:32:11.7126620Z ❌ bot not healthy yet (state: restarting) +2026-05-27T12:32:17.0631102Z ❌ bot not healthy yet (state: restarting) +2026-05-27T12:32:22.2260904Z ⏰ Timed out waiting for services to become healthy +2026-05-27T12:32:22.2866510Z time="2026-05-27T12:32:22Z" level=warning msg="The \"TMPFILE\" variable is not set. Defaulting to a blank string." +2026-05-27T12:32:22.2867214Z time="2026-05-27T12:32:22Z" level=warning msg="The \"TMPFILE\" variable is not set. Defaulting to a blank string." +2026-05-27T12:32:22.2867430Z time="2026-05-27T12:32:22Z" level=warning msg="The \"TMPFILE\" variable is not set. Defaulting to a blank string." +2026-05-27T12:32:22.2867625Z time="2026-05-27T12:32:22Z" level=warning msg="The \"BACKUP_RETENTION_DAYS\" variable is not set. Defaulting to a blank string." +2026-05-27T12:32:22.3471237Z NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS +2026-05-27T12:32:22.3471969Z gmrelaybot-bot-1 git.codeanddice.ru/toutsu/gmrelay-bot:3.2.0 "./GmRelay.Bot" bot 53 seconds ago Restarting (133) 14 seconds ago +2026-05-27T12:32:22.3472217Z gmrelaybot-db-1 postgres:17-alpine "docker-entrypoint.s…" db 4 weeks ago Up 4 days (healthy) 5432/tcp +2026-05-27T12:32:22.3472627Z gmrelaybot-db-backup-1 postgres:17-alpine "sh -c 'cat > /usr/l…" db-backup 2 weeks ago Up 4 days 5432/tcp +2026-05-27T12:32:22.3472855Z gmrelaybot-discord-1 git.codeanddice.ru/toutsu/gmrelay-discord-bot:3.2.0 "dotnet GmRelay.Disc…" discord 53 seconds ago Up 45 seconds (healthy) +2026-05-27T12:32:22.3473121Z gmrelaybot-web-1 git.codeanddice.ru/toutsu/gmrelay-web:3.2.0 "dotnet GmRelay.Web.…" web 53 seconds ago Up 45 seconds (healthy) 0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp +2026-05-27T12:32:22.3506808Z ❌ Failure - Main Deploy Containers +2026-05-27T12:32:22.3659183Z exitcode '1': failure +2026-05-27T12:32:22.4179841Z evaluating expression 'always()' +2026-05-27T12:32:22.4180475Z expression 'always()' evaluated to 'true' +2026-05-27T12:32:22.4180644Z ⭐ Run Post Checkout repository +2026-05-27T12:32:22.4180889Z Writing entry to tarball workflow/outputcmd.txt len:0 +2026-05-27T12:32:22.4181121Z Writing entry to tarball workflow/statecmd.txt len:0 +2026-05-27T12:32:22.4181275Z Writing entry to tarball workflow/pathcmd.txt len:0 +2026-05-27T12:32:22.4181420Z Writing entry to tarball workflow/envs.txt len:0 +2026-05-27T12:32:22.4181541Z Writing entry to tarball workflow/SUMMARY.md len:0 +2026-05-27T12:32:22.4181695Z Extracting content to '/var/run/act' +2026-05-27T12:32:22.4604690Z run post step for 'Checkout repository' +2026-05-27T12:32:22.4605792Z executing remote job container: [node /var/run/act/actions/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/dist/index.js] +2026-05-27T12:32:22.4606126Z 🐳 docker exec cmd=[node /var/run/act/actions/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/dist/index.js] user= workdir= +2026-05-27T12:32:22.4606316Z Exec command '[node /var/run/act/actions/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/dist/index.js]' +2026-05-27T12:32:22.4606934Z Working directory '/workspace/Toutsu/GmRelayBot' +2026-05-27T12:32:22.6647803Z [command]/usr/bin/git version +2026-05-27T12:32:22.6727033Z git version 2.54.0 +2026-05-27T12:32:22.6774964Z *** +2026-05-27T12:32:22.6807524Z Temporarily overriding HOME='/tmp/4ec8afb7-03f4-4354-83ae-115d63ae77ff' before making global git config changes +2026-05-27T12:32:22.6810231Z Adding repository directory to the temporary git global config as a safe directory +2026-05-27T12:32:22.6826437Z [command]/usr/bin/git config --global --add safe.directory /workspace/Toutsu/GmRelayBot +2026-05-27T12:32:22.6895821Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-05-27T12:32:22.7015489Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-05-27T12:32:22.7328848Z [command]/usr/bin/git config --local --name-only --get-regexp http\.http\:\/\/gitea\:3000\/\.extraheader +2026-05-27T12:32:22.7360331Z http.http://gitea:3000/.extraheader +2026-05-27T12:32:22.7391146Z [command]/usr/bin/git config --local --unset-all http.http://gitea:3000/.extraheader +2026-05-27T12:32:22.7437569Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.http\:\/\/gitea\:3000\/\.extraheader' && git config --local --unset-all 'http.http://gitea:3000/.extraheader' || :" +2026-05-27T12:32:22.7672661Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-05-27T12:32:22.7718069Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-05-27T12:32:22.8046203Z ✅ Success - Post Checkout repository +2026-05-27T12:32:22.8167150Z Cleaning up container for job deploy +2026-05-27T12:32:23.4944574Z Removed container: 2ef2c153515e6ef325ee6b60f4596383df921c64e5b2b33c08dffe59dfefb4ac +2026-05-27T12:32:23.4954580Z 🐳 docker volume rm GITEA-ACTIONS-TASK-453-WORKFLOW-Deploy-Telegram-Bot-JOB-deploy-d83f1b579bedd11c2782d7f1919238f60ddf77f43a8e03915eb9d8e80d2bbb26 +2026-05-27T12:32:23.5097896Z 🐳 docker volume rm GITEA-ACTIONS-TASK-453-WORKFLOW-Deploy-Telegram-Bot-JOB-deploy-d83f1b579bedd11c2782d7f1919238f60ddf77f43a8e03915eb9d8e80d2bbb26-env +2026-05-27T12:32:23.6036865Z 🏁 Job failed +2026-05-27T12:32:23.6108110Z Job 'deploy' failed diff --git a/showcase-500.png b/showcase-500.png new file mode 100644 index 0000000..e0f397d Binary files /dev/null and b/showcase-500.png differ diff --git a/src/GmRelay.Bot/Dockerfile.test b/src/GmRelay.Bot/Dockerfile.test new file mode 100644 index 0000000..5b17fa7 --- /dev/null +++ b/src/GmRelay.Bot/Dockerfile.test @@ -0,0 +1,42 @@ +# Этап 1: Сборка с использованием .NET SDK +FROM mcr.microsoft.com/dotnet/sdk:10.0-noble AS build + +# Установка зависимостей для Native AOT-компиляции (clang и zlib) +RUN apt-get update && apt-get install -y --no-install-recommends \ + clang zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /src + +# Копирование проектов +COPY ["src/GmRelay.Bot/GmRelay.Bot.csproj", "src/GmRelay.Bot/"] +COPY ["src/GmRelay.ServiceDefaults/GmRelay.ServiceDefaults.csproj", "src/GmRelay.ServiceDefaults/"] + +# Восстановление зависимостей с учетом архитектуры +RUN dotnet restore "src/GmRelay.Bot/GmRelay.Bot.csproj" -a amd64 + +# Копирование остального исходного кода +COPY src/ src/ + +WORKDIR /src/src/GmRelay.Bot + +# Публикация AOT-бинарного файла +RUN dotnet publish "GmRelay.Bot.csproj" -c Release -a amd64 -o /app/publish + +# Этап 2: Runtime (runtime-deps содержит только ОС-зависимости, без .NET Runtime) +FROM mcr.microsoft.com/dotnet/runtime-deps:10.0-noble AS final +WORKDIR /app + +# Устанавливаем wget для healthcheck +RUN apt-get update && apt-get install -y --no-install-recommends wget \ + && rm -rf /var/lib/apt/lists/* + +# Копируем только AOT-результаты из билда +COPY --from=build /app/publish . + +EXPOSE 8081 + +USER $APP_UID + +# Запуск скомпилированного AOT бинарного файла напрямую +ENTRYPOINT ["./GmRelay.Bot"] diff --git a/src/GmRelay.Bot/Features/Sessions/CreateSession/Wizard/TelegramWizardMessenger.cs b/src/GmRelay.Bot/Features/Sessions/CreateSession/Wizard/TelegramWizardMessenger.cs index 3aec26f..3b76aa3 100644 --- a/src/GmRelay.Bot/Features/Sessions/CreateSession/Wizard/TelegramWizardMessenger.cs +++ b/src/GmRelay.Bot/Features/Sessions/CreateSession/Wizard/TelegramWizardMessenger.cs @@ -82,6 +82,14 @@ public sealed class TelegramWizardMessenger( // and game_groups has no `club_id` FK). The picker therefore returns the // game_groups the owner manages as a GM (via group_managers), matching // the WizardClubOption contract (UUID id, name) used downstream. + // + // NativeAOT: Dapper.AOT 1.0.48 only generates interceptors for the + // (sql, object?) extension overload — not the (CommandDefinition) overload. + // The wizard reaches this method on the PickClub visibility step + // (issue #112 follow-up); using CommandDefinition here would fall back + // to Dapper.SqlMapper.CreateParamInfoGenerator, which uses Reflection.Emit + // and throws PlatformNotSupportedException on AOT. Same root cause as + // WizardDraftRepository.GetActiveAsync in v3.9.0, same fix pattern. const string sql = """ SELECT g.id AS ClubId, g.name AS Name @@ -95,10 +103,8 @@ public sealed class TelegramWizardMessenger( """; await using var connection = await dataSource.OpenConnectionAsync(ct); var rows = await connection.QueryAsync( - new CommandDefinition( - sql, - new { Platform = "Telegram", ExternalId = ownerId }, - cancellationToken: ct)); + sql, + new { Platform = "Telegram", ExternalId = ownerId }); return rows.AsList(); } diff --git a/src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordPermissionLookup.cs b/src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordPermissionLookup.cs index c5b603c..ecd08b0 100644 --- a/src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordPermissionLookup.cs +++ b/src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordPermissionLookup.cs @@ -31,8 +31,10 @@ internal static class DiscordPermissionLookup """; await using var connection = await dataSource.OpenConnectionAsync(cancellationToken); + // NativeAOT: direct overload — see TelegramWizardMessenger. var rows = await connection.QueryAsync( - new CommandDefinition(sql, new { GuildId = guildId.ToString() }, cancellationToken: cancellationToken)); + sql, + new { GuildId = guildId.ToString() }); return rows.ToList(); } } diff --git a/src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordWizardInteractionModule.cs b/src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordWizardInteractionModule.cs index daf128d..1d6d33b 100644 --- a/src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordWizardInteractionModule.cs +++ b/src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordWizardInteractionModule.cs @@ -537,11 +537,10 @@ internal static class WizardClubLookup ORDER BY g.name """; await using var conn = await dataSource.OpenConnectionAsync(ct); + // NativeAOT: direct overload — see TelegramWizardMessenger. var rows = await conn.QueryAsync( - new CommandDefinition( - sql, - new { Platform = "Discord", OwnerId = ownerId }, - cancellationToken: ct)); + sql, + new { Platform = "Discord", OwnerId = ownerId }); return rows.AsList(); } } diff --git a/src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordWizardMessenger.cs b/src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordWizardMessenger.cs index 8485ef3..73ec670 100644 --- a/src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordWizardMessenger.cs +++ b/src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordWizardMessenger.cs @@ -164,11 +164,11 @@ public sealed class DiscordWizardMessenger : IWizardMessenger ORDER BY g.name """; await using var conn = await _dataSource.OpenConnectionAsync(ct); + // NativeAOT: direct (sql, params) overload — see + // TelegramWizardMessenger.GetOwnerClubsAsync for why. var rows = await conn.QueryAsync( - new CommandDefinition( - sql, - new { Platform = "Discord", ExternalId = ownerId }, - cancellationToken: ct)); + sql, + new { Platform = "Discord", ExternalId = ownerId }); return rows.AsList(); } diff --git a/src/GmRelay.DiscordBot/GmRelay.DiscordBot.csproj b/src/GmRelay.DiscordBot/GmRelay.DiscordBot.csproj index b56e7c0..af935c2 100644 --- a/src/GmRelay.DiscordBot/GmRelay.DiscordBot.csproj +++ b/src/GmRelay.DiscordBot/GmRelay.DiscordBot.csproj @@ -8,6 +8,7 @@ dotnet-GmRelay.DiscordBot-issue-26 $(NoWarn);DAP005 + $(InterceptorsPreviewNamespaces);Dapper.AOT diff --git a/src/GmRelay.DiscordBot/Program.cs b/src/GmRelay.DiscordBot/Program.cs index 7989a7b..aeb5b41 100644 --- a/src/GmRelay.DiscordBot/Program.cs +++ b/src/GmRelay.DiscordBot/Program.cs @@ -27,6 +27,8 @@ using NetCord.Services.ApplicationCommands; using NetCord.Services.ComponentInteractions; using Npgsql; +[module: Dapper.DapperAot] + var builder = Host.CreateApplicationBuilder(args); builder.AddServiceDefaults(); diff --git a/src/GmRelay.Web/Components/Layout/NavMenu.razor b/src/GmRelay.Web/Components/Layout/NavMenu.razor index 86cb6a3..2af1975 100644 --- a/src/GmRelay.Web/Components/Layout/NavMenu.razor +++ b/src/GmRelay.Web/Components/Layout/NavMenu.razor @@ -82,7 +82,7 @@ - + diff --git a/test_output.txt b/test_output.txt new file mode 100644 index 0000000..5be87f4 --- /dev/null +++ b/test_output.txt @@ -0,0 +1,365 @@ +Сборка начата 28.05.2026 16:39:58. + 1>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" в узле 1 (целевые объекты Restore). + 1>_GetAllRestoreProjectPathItems: + Определение проектов для восстановления... + 1>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1) выполняет сборку "D:\Projects\Game\src\GmRelay.Bot\GmRelay.Bot.csproj" (2:4) в узле 1 (целевые объекты _GenerateProjectRestoreGraph). + 2>AddPrunePackageReferences: + Loading prune package data from PrunePackageData folder + Failed to load prune package data from PrunePackageData folder, loading from targeting packs instead + Looking for targeting packs in C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref + Pack directories found: C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.5 + 1>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1) выполняет сборку "D:\Projects\Game\src\GmRelay.Web\GmRelay.Web.csproj" (5:4) в узле 2 (целевые объекты _GenerateProjectRestoreGraph). + 5>AddPrunePackageReferences: + Loading prune package data from PrunePackageData folder + Failed to load prune package data from PrunePackageData folder, loading from targeting packs instead + 1>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1) выполняет сборку "D:\Projects\Game\src\GmRelay.Shared\GmRelay.Shared.csproj" (6:6) в узле 4 (целевые объекты _GenerateProjectRestoreGraph). + 6>AddPrunePackageReferences: + Loading prune package data from PrunePackageData folder + 1>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1) выполняет сборку "D:\Projects\Game\src\GmRelay.DiscordBot\GmRelay.DiscordBot.csproj" (4:4) в узле 3 (целевые объекты _GenerateProjectRestoreGraph). + 4>AddPrunePackageReferences: + Loading prune package data from PrunePackageData folder + 6>AddPrunePackageReferences: + Failed to load prune package data from PrunePackageData folder, loading from targeting packs instead + 4>AddPrunePackageReferences: + Failed to load prune package data from PrunePackageData folder, loading from targeting packs instead + 5>AddPrunePackageReferences: + Looking for targeting packs in C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref + 2>AddPrunePackageReferences: + Found package overrides file C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.5\data\PackageOverrides.txt + 5>AddPrunePackageReferences: + Pack directories found: C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.5 + 4>AddPrunePackageReferences: + Looking for targeting packs in C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref + 6>AddPrunePackageReferences: + Looking for targeting packs in C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref + 4>AddPrunePackageReferences: + Pack directories found: C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.5 + 6>AddPrunePackageReferences: + Pack directories found: C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.5 + 5>AddPrunePackageReferences: + Found package overrides file C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.5\data\PackageOverrides.txt + 6>AddPrunePackageReferences: + Found package overrides file C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.5\data\PackageOverrides.txt + 4>AddPrunePackageReferences: + Found package overrides file C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.5\data\PackageOverrides.txt + 5>AddPrunePackageReferences: + Loading prune package data from PrunePackageData folder + Failed to load prune package data from PrunePackageData folder, loading from targeting packs instead + Looking for targeting packs in C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref + Pack directories found: C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\10.0.5 + Found package overrides file C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\10.0.5\data\PackageOverrides.txt + 2>Сборка проекта "D:\Projects\Game\src\GmRelay.Bot\GmRelay.Bot.csproj" завершена (целевые объекты _GenerateProjectRestoreGraph). + 1>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1) выполняет сборку "D:\Projects\Game\src\GmRelay.ServiceDefaults\GmRelay.ServiceDefaults.csproj" (3:6) в узле 1 (целевые объекты _GenerateProjectRestoreGraph). + 3>AddPrunePackageReferences: + Loading prune package data from PrunePackageData folder + Failed to load prune package data from PrunePackageData folder, loading from targeting packs instead + Looking for targeting packs in C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref + Pack directories found: C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.5 + Found package overrides file C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.5\data\PackageOverrides.txt + 6>Сборка проекта "D:\Projects\Game\src\GmRelay.Shared\GmRelay.Shared.csproj" завершена (целевые объекты _GenerateProjectRestoreGraph). + 3>AddPrunePackageReferences: + Loading prune package data from PrunePackageData folder + Failed to load prune package data from PrunePackageData folder, loading from targeting packs instead + Looking for targeting packs in C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref + Pack directories found: C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\10.0.5 + Found package overrides file C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\10.0.5\data\PackageOverrides.txt + 4>Сборка проекта "D:\Projects\Game\src\GmRelay.DiscordBot\GmRelay.DiscordBot.csproj" завершена (целевые объекты _GenerateProjectRestoreGraph). + 5>Сборка проекта "D:\Projects\Game\src\GmRelay.Web\GmRelay.Web.csproj" завершена (целевые объекты _GenerateProjectRestoreGraph). + 3>Сборка проекта "D:\Projects\Game\src\GmRelay.ServiceDefaults\GmRelay.ServiceDefaults.csproj" завершена (целевые объекты _GenerateProjectRestoreGraph). + 1>Restore: + При проверке цепочки сертификатов X.509 будет использоваться хранилище доверия по умолчанию, выбранное .NET для подписывания кода. + При проверке цепочки сертификатов X.509 будет использоваться хранилище доверия по умолчанию, выбранное .NET для установки метки времени. + Файл ресурсов не был изменен. Пропуск записи файла ресурсов. Путь: D:\Projects\Game\src\GmRelay.Shared\obj\project.assets.json + Файл ресурсов не был изменен. Пропуск записи файла ресурсов. Путь: D:\Projects\Game\src\GmRelay.Web\obj\project.assets.json + Файл ресурсов не был изменен. Пропуск записи файла ресурсов. Путь: D:\Projects\Game\src\GmRelay.ServiceDefaults\obj\project.assets.json + Файл ресурсов не был изменен. Пропуск записи файла ресурсов. Путь: D:\Projects\Game\src\GmRelay.DiscordBot\obj\project.assets.json + Файл ресурсов не был изменен. Пропуск записи файла ресурсов. Путь: D:\Projects\Game\src\GmRelay.Bot\obj\project.assets.json + Файл ресурсов не был изменен. Пропуск записи файла ресурсов. Путь: D:\Projects\Game\tests\GmRelay.Bot.Tests\obj\project.assets.json + Восстановлен D:\Projects\Game\src\GmRelay.Bot\GmRelay.Bot.csproj (за 49 мс). + Восстановлен D:\Projects\Game\src\GmRelay.Shared\GmRelay.Shared.csproj (за 49 мс). + Восстановлен D:\Projects\Game\src\GmRelay.ServiceDefaults\GmRelay.ServiceDefaults.csproj (за 49 мс). + Восстановлен D:\Projects\Game\src\GmRelay.Web\GmRelay.Web.csproj (за 49 мс). + Восстановлен D:\Projects\Game\src\GmRelay.DiscordBot\GmRelay.DiscordBot.csproj (за 49 мс). + Восстановлен D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj (за 49 мс). + + Использованные файлы конфигурации NuGet: + C:\Users\hegin\AppData\Roaming\NuGet\NuGet.Config + + Использованные веб-каналы: + https://api.nuget.org/v3/index.json + Все проекты обновлены для восстановления. + 1>Сборка проекта "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" завершена (целевые объекты Restore). + 1:7>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" в узле 3 (целевые объекты VSTest). + 1>BuildProject: + Сборка начата, подождите... + 1:7>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1:7) выполняет сборку "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1:8) в узле 3 (целевые объекты по умолчанию). + 1:8>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1:8) выполняет сборку "D:\Projects\Game\src\GmRelay.ServiceDefaults\GmRelay.ServiceDefaults.csproj" (3:8) в узле 1 (целевые объекты по умолчанию). + 3>GenerateTargetFrameworkMonikerAttribute: + Целевой объект "GenerateTargetFrameworkMonikerAttribute" пропускается, так как все выходные файлы актуальны по отношению к входным. + 1:8>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1:8) выполняет сборку "D:\Projects\Game\src\GmRelay.Shared\GmRelay.Shared.csproj" (6:8) в узле 5 (целевые объекты по умолчанию). + 6>GenerateTargetFrameworkMonikerAttribute: + Целевой объект "GenerateTargetFrameworkMonikerAttribute" пропускается, так как все выходные файлы актуальны по отношению к входным. + 3>CoreGenerateAssemblyInfo: + Целевой объект "CoreGenerateAssemblyInfo" пропускается, так как все выходные файлы актуальны по отношению к входным. + 6>CoreGenerateAssemblyInfo: + Целевой объект "CoreGenerateAssemblyInfo" пропускается, так как все выходные файлы актуальны по отношению к входным. + 3>_GenerateSourceLinkFile: + Source Link пуст, файл "obj\Debug\net10.0\GmRelay.ServiceDefaults.sourcelink.json" не существует. + 6>_GenerateSourceLinkFile: + Source Link пуст, файл "obj\Debug\net10.0\GmRelay.Shared.sourcelink.json" не существует. + 3>CoreCompile: + Целевой объект "CoreCompile" пропускается, так как все выходные файлы актуальны по отношению к входным. + 6>CoreCompile: + Целевой объект "CoreCompile" пропускается, так как все выходные файлы актуальны по отношению к входным. + GenerateBuildDependencyFile: + Целевой объект "GenerateBuildDependencyFile" пропускается, так как все выходные файлы актуальны по отношению к входным. + 3>GenerateBuildDependencyFile: + Целевой объект "GenerateBuildDependencyFile" пропускается, так как все выходные файлы актуальны по отношению к входным. + 6>CopyFilesToOutputDirectory: + GmRelay.Shared -> D:\Projects\Game\src\GmRelay.Shared\bin\Debug\net10.0\GmRelay.Shared.dll + 3>CopyFilesToOutputDirectory: + GmRelay.ServiceDefaults -> D:\Projects\Game\src\GmRelay.ServiceDefaults\bin\Debug\net10.0\GmRelay.ServiceDefaults.dll + 6>Сборка проекта "D:\Projects\Game\src\GmRelay.Shared\GmRelay.Shared.csproj" завершена (целевые объекты по умолчанию). + 3>Сборка проекта "D:\Projects\Game\src\GmRelay.ServiceDefaults\GmRelay.ServiceDefaults.csproj" завершена (целевые объекты по умолчанию). + 1:8>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1:8) выполняет сборку "D:\Projects\Game\src\GmRelay.Bot\GmRelay.Bot.csproj" (2:6) в узле 2 (целевые объекты по умолчанию). + 2>GenerateTargetFrameworkMonikerAttribute: + Целевой объект "GenerateTargetFrameworkMonikerAttribute" пропускается, так как все выходные файлы актуальны по отношению к входным. + 1:8>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1:8) выполняет сборку "D:\Projects\Game\src\GmRelay.DiscordBot\GmRelay.DiscordBot.csproj" (4:6) в узле 4 (целевые объекты по умолчанию). + 4>GenerateTargetFrameworkMonikerAttribute: + Целевой объект "GenerateTargetFrameworkMonikerAttribute" пропускается, так как все выходные файлы актуальны по отношению к входным. + 2>CoreGenerateAssemblyInfo: + Целевой объект "CoreGenerateAssemblyInfo" пропускается, так как все выходные файлы актуальны по отношению к входным. + 4>CoreGenerateAssemblyInfo: + Целевой объект "CoreGenerateAssemblyInfo" пропускается, так как все выходные файлы актуальны по отношению к входным. + 2>_GenerateSourceLinkFile: + Source Link пуст, файл "obj\Debug\net10.0\GmRelay.Bot.sourcelink.json" не существует. + 1:8>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1:8) выполняет сборку "D:\Projects\Game\src\GmRelay.Web\GmRelay.Web.csproj" (5:6) в узле 3 (целевые объекты по умолчанию). + 5>GenerateTargetFrameworkMonikerAttribute: + Целевой объект "GenerateTargetFrameworkMonikerAttribute" пропускается, так как все выходные файлы актуальны по отношению к входным. + 4>_GenerateSourceLinkFile: + Source Link пуст, файл "obj\Debug\net10.0\GmRelay.DiscordBot.sourcelink.json" не существует. + 2>CoreCompile: + Целевой объект "CoreCompile" пропускается, так как все выходные файлы актуальны по отношению к входным. + _CreateAppHost: + Целевой объект "_CreateAppHost" пропускается, так как все выходные файлы актуальны по отношению к входным. + 4>CoreCompile: + Целевой объект "CoreCompile" пропускается, так как все выходные файлы актуальны по отношению к входным. + _CreateAppHost: + Целевой объект "_CreateAppHost" пропускается, так как все выходные файлы актуальны по отношению к входным. + 2>_CopyOutOfDateSourceItemsToOutputDirectory: + Целевой объект "_CopyOutOfDateSourceItemsToOutputDirectory" пропускается, так как все выходные файлы актуальны по отношению к входным. + 4>_CopyOutOfDateSourceItemsToOutputDirectory: + Целевой объект "_CopyOutOfDateSourceItemsToOutputDirectory" пропускается, так как все выходные файлы актуальны по отношению к входным. + GenerateBuildDependencyFile: + Целевой объект "GenerateBuildDependencyFile" пропускается, так как все выходные файлы актуальны по отношению к входным. + 2>GenerateBuildDependencyFile: + Целевой объект "GenerateBuildDependencyFile" пропускается, так как все выходные файлы актуальны по отношению к входным. + 4>GenerateBuildRuntimeConfigurationFiles: + Целевой объект "GenerateBuildRuntimeConfigurationFiles" пропускается, так как все выходные файлы актуальны по отношению к входным. + 2>GenerateBuildRuntimeConfigurationFiles: + Целевой объект "GenerateBuildRuntimeConfigurationFiles" пропускается, так как все выходные файлы актуальны по отношению к входным. + 4>CopyFilesToOutputDirectory: + GmRelay.DiscordBot -> D:\Projects\Game\src\GmRelay.DiscordBot\bin\Debug\net10.0\GmRelay.DiscordBot.dll + 2>CopyFilesToOutputDirectory: + GmRelay.Bot -> D:\Projects\Game\src\GmRelay.Bot\bin\Debug\net10.0\GmRelay.Bot.dll + 2>Сборка проекта "D:\Projects\Game\src\GmRelay.Bot\GmRelay.Bot.csproj" завершена (целевые объекты по умолчанию). + 4>Сборка проекта "D:\Projects\Game\src\GmRelay.DiscordBot\GmRelay.DiscordBot.csproj" завершена (целевые объекты по умолчанию). + 5>CoreGenerateAssemblyInfo: + Целевой объект "CoreGenerateAssemblyInfo" пропускается, так как все выходные файлы актуальны по отношению к входным. + _DiscoverMvcApplicationParts: + Целевой объект "_DiscoverMvcApplicationParts" пропускается, так как все выходные файлы актуальны по отношению к входным. + _GenerateSourceLinkFile: + Source Link пуст, файл "obj\Debug\net10.0\GmRelay.Web.sourcelink.json" не существует. + CoreCompile: + Целевой объект "CoreCompile" пропускается, так как все выходные файлы актуальны по отношению к входным. + _CreateAppHost: + Целевой объект "_CreateAppHost" пропускается, так как все выходные файлы актуальны по отношению к входным. + _ProcessScopedCssFiles: + Целевой объект "_ProcessScopedCssFiles" пропускается, так как все выходные файлы актуальны по отношению к входным. + ResolveBuildCompressedStaticWebAssetsConfiguration: + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\4csigzgafp-{0}-hi2qlyauic-hi2qlyauic.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\app.css'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\bh8hdo3x56-{0}-bqjiyaj88i-bqjiyaj88i.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-grid.css'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\9tpymki44d-{0}-c2jlpeoesf-c2jlpeoesf.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-grid.css.map'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\3ufhluhukt-{0}-erw9l3u2r3-erw9l3u2r3.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-grid.min.css'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\owh24a5pu2-{0}-aexeepp0ev-aexeepp0ev.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-grid.min.css.map'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\ssb8lybfmv-{0}-d7shbmvgxk-d7shbmvgxk.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-grid.rtl.css'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\7o3n22bkis-{0}-ausgxo2sd3-ausgxo2sd3.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-grid.rtl.css.map'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\c4n23llmfm-{0}-k8d9w2qqmf-k8d9w2qqmf.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-grid.rtl.min.css'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\oo0k97obxs-{0}-cosvhxvwiu-cosvhxvwiu.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-grid.rtl.min.css.map'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\3ni2ce7d6r-{0}-ub07r2b239-ub07r2b239.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.css'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\0yd6yduj13-{0}-fvhpjtyr6v-fvhpjtyr6v.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.css.map'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\qgg7tqg96t-{0}-b7pk76d08c-b7pk76d08c.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.min.css'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\mne9upwpwm-{0}-fsbi9cje9m-fsbi9cje9m.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.min.css.map'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\225pf96br9-{0}-rzd6atqjts-rzd6atqjts.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.rtl.css'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\35i9ucq04c-{0}-ee0r1s7dh0-ee0r1s7dh0.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.rtl.css.map'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\8lfmzdik84-{0}-dxx9fxp4il-dxx9fxp4il.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.rtl.min.css'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\1jt5owwcfx-{0}-jd9uben2k1-jd9uben2k1.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.rtl.min.css.map'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\hstlxvezy9-{0}-khv3u5hwcm-khv3u5hwcm.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.css'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\oca58j0tw7-{0}-r4e9w2rdcm-r4e9w2rdcm.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.css.map'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\0v3sv147pt-{0}-lcd1t2u6c8-lcd1t2u6c8.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.min.css'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\0a5wgpyil0-{0}-c2oey78nd0-c2oey78nd0.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.min.css.map'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\9g3ujgh8kz-{0}-tdbxkamptv-tdbxkamptv.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.rtl.css'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\iuy63rf0bu-{0}-j5mq2jizvt-j5mq2jizvt.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.rtl.css.map'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\wk8zc7ryz6-{0}-06098lyss8-06098lyss8.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.rtl.min.css'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\jb2rkjvbkn-{0}-nvvlpmu67g-nvvlpmu67g.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.rtl.min.css.map'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\8myuzh4jcv-{0}-s35ty4nyc5-s35ty4nyc5.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap.css'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\qon4yozyga-{0}-pj5nd1wqec-pj5nd1wqec.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap.css.map'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\bksh7yp01k-{0}-46ein0sx1k-46ein0sx1k.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap.min.css'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\97kp90co2m-{0}-v0zj4ognzu-v0zj4ognzu.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap.min.css.map'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\ed5dpbkcmp-{0}-37tfw0ft22-37tfw0ft22.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap.rtl.css'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\4w2hlgqons-{0}-hrwsygsryq-hrwsygsryq.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap.rtl.css.map'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\1gnwh3bc5f-{0}-pk9g2wxc8p-pk9g2wxc8p.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap.rtl.min.css'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\1hju2kjsnm-{0}-ft3s53vfgj-ft3s53vfgj.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap.rtl.min.css.map'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\j3osi24043-{0}-6cfz1n2cew-6cfz1n2cew.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.js'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\px5jz4gn2k-{0}-6pdc2jztkx-6pdc2jztkx.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.js.map'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\qmfc455bqd-{0}-493y06b0oq-493y06b0oq.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.min.js'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\93uy6jgo2d-{0}-iovd86k7lj-iovd86k7lj.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.min.js.map'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\2x6q1594r6-{0}-vr1egmr9el-vr1egmr9el.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.esm.js'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\ung2txg4o1-{0}-kbrnm935zg-kbrnm935zg.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.esm.js.map'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\u3jewzt1vl-{0}-jj8uyg4cgr-jj8uyg4cgr.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.esm.min.js'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\79xbwypaqj-{0}-y7v9cxd14o-y7v9cxd14o.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.esm.min.js.map'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\tkhsoyr1gw-{0}-notf2xhcfb-notf2xhcfb.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.js'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\k7ns0ox31a-{0}-h1s4sie4z3-h1s4sie4z3.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.js.map'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\doe31mxljt-{0}-63fj8s7r0e-63fj8s7r0e.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.min.js'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\m4sfs0go6y-{0}-0j3bgjxly4-0j3bgjxly4.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.min.js.map'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\3ej8wiykds-{0}-abdmv1u4y3-abdmv1u4y3.gz' for 'D:\Projects\Game\src\GmRelay.Web\Components\Layout\ReconnectModal.razor.js'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\am1eegk6vr-{0}-b9228eflpl-b9228eflpl.gz' for 'C:\Users\hegin\.nuget\packages\microsoft.aspnetcore.app.internal.assets\10.0.5\_framework\blazor.web.js'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\2sew0bael6-{0}-2tj1sjhksk-2tj1sjhksk.gz' for 'C:\Users\hegin\.nuget\packages\microsoft.aspnetcore.app.internal.assets\10.0.5\_framework\blazor.server.js'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\str9rlkncy-{0}-q1j99dsq8o-q1j99dsq8o.gz' for 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\scopedcss\bundle\GmRelay.Web.styles.css'. + Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\zbvq0bdneu-{0}-q1j99dsq8o-q1j99dsq8o.gz' for 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\scopedcss\projectbundle\GmRelay.Web.bundle.scp.css'. + Resolved 50 compressed assets for 50 candidate assets. + ResolveBuildCompressedStaticWebAssets: + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\str9rlkncy-{0}-q1j99dsq8o-q1j99dsq8o.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\bh8hdo3x56-{0}-bqjiyaj88i-bqjiyaj88i.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\9tpymki44d-{0}-c2jlpeoesf-c2jlpeoesf.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\3ufhluhukt-{0}-erw9l3u2r3-erw9l3u2r3.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\owh24a5pu2-{0}-aexeepp0ev-aexeepp0ev.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\ssb8lybfmv-{0}-d7shbmvgxk-d7shbmvgxk.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\7o3n22bkis-{0}-ausgxo2sd3-ausgxo2sd3.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\c4n23llmfm-{0}-k8d9w2qqmf-k8d9w2qqmf.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\oo0k97obxs-{0}-cosvhxvwiu-cosvhxvwiu.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\3ni2ce7d6r-{0}-ub07r2b239-ub07r2b239.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\0yd6yduj13-{0}-fvhpjtyr6v-fvhpjtyr6v.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\qgg7tqg96t-{0}-b7pk76d08c-b7pk76d08c.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\mne9upwpwm-{0}-fsbi9cje9m-fsbi9cje9m.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\225pf96br9-{0}-rzd6atqjts-rzd6atqjts.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\35i9ucq04c-{0}-ee0r1s7dh0-ee0r1s7dh0.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\8lfmzdik84-{0}-dxx9fxp4il-dxx9fxp4il.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\1jt5owwcfx-{0}-jd9uben2k1-jd9uben2k1.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\hstlxvezy9-{0}-khv3u5hwcm-khv3u5hwcm.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\oca58j0tw7-{0}-r4e9w2rdcm-r4e9w2rdcm.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\0v3sv147pt-{0}-lcd1t2u6c8-lcd1t2u6c8.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\0a5wgpyil0-{0}-c2oey78nd0-c2oey78nd0.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\9g3ujgh8kz-{0}-tdbxkamptv-tdbxkamptv.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\iuy63rf0bu-{0}-j5mq2jizvt-j5mq2jizvt.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\wk8zc7ryz6-{0}-06098lyss8-06098lyss8.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\jb2rkjvbkn-{0}-nvvlpmu67g-nvvlpmu67g.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\8myuzh4jcv-{0}-s35ty4nyc5-s35ty4nyc5.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\qon4yozyga-{0}-pj5nd1wqec-pj5nd1wqec.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\bksh7yp01k-{0}-46ein0sx1k-46ein0sx1k.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\97kp90co2m-{0}-v0zj4ognzu-v0zj4ognzu.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\ed5dpbkcmp-{0}-37tfw0ft22-37tfw0ft22.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\4w2hlgqons-{0}-hrwsygsryq-hrwsygsryq.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\1gnwh3bc5f-{0}-pk9g2wxc8p-pk9g2wxc8p.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\1hju2kjsnm-{0}-ft3s53vfgj-ft3s53vfgj.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\j3osi24043-{0}-6cfz1n2cew-6cfz1n2cew.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\px5jz4gn2k-{0}-6pdc2jztkx-6pdc2jztkx.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\qmfc455bqd-{0}-493y06b0oq-493y06b0oq.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\93uy6jgo2d-{0}-iovd86k7lj-iovd86k7lj.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\2x6q1594r6-{0}-vr1egmr9el-vr1egmr9el.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\ung2txg4o1-{0}-kbrnm935zg-kbrnm935zg.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\u3jewzt1vl-{0}-jj8uyg4cgr-jj8uyg4cgr.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\79xbwypaqj-{0}-y7v9cxd14o-y7v9cxd14o.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\tkhsoyr1gw-{0}-notf2xhcfb-notf2xhcfb.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\k7ns0ox31a-{0}-h1s4sie4z3-h1s4sie4z3.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\doe31mxljt-{0}-63fj8s7r0e-63fj8s7r0e.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\m4sfs0go6y-{0}-0j3bgjxly4-0j3bgjxly4.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\3ej8wiykds-{0}-abdmv1u4y3-abdmv1u4y3.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\am1eegk6vr-{0}-b9228eflpl-b9228eflpl.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\2sew0bael6-{0}-2tj1sjhksk-2tj1sjhksk.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\zbvq0bdneu-{0}-q1j99dsq8o-q1j99dsq8o.gz + Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\4csigzgafp-{0}-hi2qlyauic-hi2qlyauic.gz + _BuildCopyStaticWebAssetsPreserveNewest: + Целевой объект "_BuildCopyStaticWebAssetsPreserveNewest" пропускается из-за отсутствия выходных файлов. + _CopyOutOfDateSourceItemsToOutputDirectory: + Целевой объект "_CopyOutOfDateSourceItemsToOutputDirectory" пропускается, так как все выходные файлы актуальны по отношению к входным. + GenerateBuildDependencyFile: + Целевой объект "GenerateBuildDependencyFile" пропускается, так как все выходные файлы актуальны по отношению к входным. + GenerateBuildRuntimeConfigurationFiles: + Целевой объект "GenerateBuildRuntimeConfigurationFiles" пропускается, так как все выходные файлы актуальны по отношению к входным. + CopyFilesToOutputDirectory: + GmRelay.Web -> D:\Projects\Game\src\GmRelay.Web\bin\Debug\net10.0\GmRelay.Web.dll + 5>Сборка проекта "D:\Projects\Game\src\GmRelay.Web\GmRelay.Web.csproj" завершена (целевые объекты по умолчанию). + 1>GenerateTargetFrameworkMonikerAttribute: + Целевой объект "GenerateTargetFrameworkMonikerAttribute" пропускается, так как все выходные файлы актуальны по отношению к входным. + CoreGenerateAssemblyInfo: + Целевой объект "CoreGenerateAssemblyInfo" пропускается, так как все выходные файлы актуальны по отношению к входным. + _GenerateSourceLinkFile: + Source Link пуст, файл "obj\Debug\net10.0\GmRelay.Bot.Tests.sourcelink.json" не существует. + CoreCompile: + Целевой объект "CoreCompile" пропускается, так как все выходные файлы актуальны по отношению к входным. + _CopyOutOfDateSourceItemsToOutputDirectory: + Частичное создание целевого объекта "_CopyOutOfDateSourceItemsToOutputDirectory", так как некоторые выходные файлы устарели по отношению к входным. + Копирование файла из "D:\Projects\Game\tests\GmRelay.Bot.Tests\obj\Debug\net10.0\MvcTestingAppManifest.json" в "D:\Projects\Game\tests\GmRelay.Bot.Tests\bin\Debug\net10.0\MvcTestingAppManifest.json". + GenerateBuildDependencyFile: + Целевой объект "GenerateBuildDependencyFile" пропускается, так как все выходные файлы актуальны по отношению к входным. + GenerateBuildRuntimeConfigurationFiles: + Целевой объект "GenerateBuildRuntimeConfigurationFiles" пропускается, так как все выходные файлы актуальны по отношению к входным. + CopyFilesToOutputDirectory: + GmRelay.Bot.Tests -> D:\Projects\Game\tests\GmRelay.Bot.Tests\bin\Debug\net10.0\GmRelay.Bot.Tests.dll + _MvcCopyDependencyFiles: + Копирование файла из "D:\Projects\Game\src\GmRelay.Bot\bin\Debug\net10.0\GmRelay.Bot.deps.json" в "D:\Projects\Game\tests\GmRelay.Bot.Tests\bin\Debug\net10.0\GmRelay.Bot.deps.json". + Копирование файла из "D:\Projects\Game\src\GmRelay.DiscordBot\bin\Debug\net10.0\GmRelay.DiscordBot.deps.json" в "D:\Projects\Game\tests\GmRelay.Bot.Tests\bin\Debug\net10.0\GmRelay.DiscordBot.deps.json". + Копирование файла из "D:\Projects\Game\src\GmRelay.ServiceDefaults\bin\Debug\net10.0\GmRelay.ServiceDefaults.deps.json" в "D:\Projects\Game\tests\GmRelay.Bot.Tests\bin\Debug\net10.0\GmRelay.ServiceDefaults.deps.json". + Копирование файла из "D:\Projects\Game\src\GmRelay.Shared\bin\Debug\net10.0\GmRelay.Shared.deps.json" в "D:\Projects\Game\tests\GmRelay.Bot.Tests\bin\Debug\net10.0\GmRelay.Shared.deps.json". + Копирование файла из "D:\Projects\Game\src\GmRelay.Web\bin\Debug\net10.0\GmRelay.Web.deps.json" в "D:\Projects\Game\tests\GmRelay.Bot.Tests\bin\Debug\net10.0\GmRelay.Web.deps.json". + 1>Сборка проекта "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" завершена (целевые объекты по умолчанию). + 1>BuildProject: + Сборка выполнена. + +Тестовый запуск для D:\Projects\Game\tests\GmRelay.Bot.Tests\bin\Debug\net10.0\GmRelay.Bot.Tests.dll (.NETCoreApp,Version=v10.0) +Общее количество тестовых файлов (1), соответствующих указанному шаблону. +[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v3.1.4+50e68bbb8b (64-bit .NET 10.0.5) +[xUnit.net 00:00:00.10] Discovering: GmRelay.Bot.Tests +[xUnit.net 00:00:00.19] Discovered: GmRelay.Bot.Tests +[xUnit.net 00:00:00.22] Starting: GmRelay.Bot.Tests + Пройден GmRelay.Bot.Tests.Features.Sessions.CreateSession.SessionCapacityRulesTests.DecideJoinStatus_ShouldReturnActive_WhenUnlimitedSeats [5 ms] + Пройден GmRelay.Bot.Tests.Features.Sessions.CreateSession.SessionCapacityRulesTests.ShouldPromoteAfterParticipantLeaves_ShouldOnlyPromoteAfterActiveParticipantLeaves [< 1 ms] + Пройден GmRelay.Bot.Tests.Features.Sessions.CreateSession.SessionCapacityRulesTests.CanPromoteWaitlistedPlayer_ShouldRequireWaitlistAndFreeSeat [< 1 ms] + Пройден GmRelay.Bot.Tests.Features.Sessions.CreateSession.SessionCapacityRulesTests.DecideJoinStatus_ShouldReturnActive_WhenZeroActiveAndPositiveMax [< 1 ms] + Пройден GmRelay.Bot.Tests.Features.Sessions.CreateSession.SessionCapacityRulesTests.DecideJoinStatus_ShouldReturnWaitlisted_WhenSessionReachedLimit [< 1 ms] + Пройден GmRelay.Bot.Tests.Features.Sessions.CreateSession.SessionCapacityRulesTests.DecideJoinStatus_ShouldReturnWaitlisted_WhenOverCapacity [< 1 ms] + Пройден GmRelay.Bot.Tests.Features.Sessions.CreateSession.SessionCapacityRulesTests.DecideJoinStatus_ShouldReturnActive_WhenSessionHasFreeSeats [< 1 ms] + Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.ToDisplayName_ShouldReturnExpectedName(system: Other, expected: "Другое") [12 ms] + Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.ToDisplayName_ShouldReturnExpectedName(system: Pathfinder2e, expected: "Pathfinder 2e") [< 1 ms] + Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.ToDisplayName_ShouldReturnExpectedName(system: Shadowdark, expected: "Shadowdark") [< 1 ms] + Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.ToDisplayName_ShouldReturnExpectedName(system: Dnd5e, expected: "D&D 5e") [< 1 ms] + Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.ToDisplayName_ShouldReturnExpectedName(system: 999, expected: "Другое") [< 1 ms] + Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldReturnOtherForUnmatchedCyrillicInput(input: "днд") [4 ms] + Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldReturnOtherForUnmatchedCyrillicInput(input: "колова") [< 1 ms] + Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldMapInputToExpectedSystem(input: "D&D 5e", expected: Dnd5e) [< 1 ms] + Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldMapInputToExpectedSystem(input: "shadow", expected: Shadowdark) [< 1 ms] + Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldMapInputToExpectedSystem(input: "dark", expected: Shadowdark) [< 1 ms] + Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldMapInputToExpectedSystem(input: "dnd5e", expected: Dnd5e) [< 1 ms] +[xUnit.net 00:00:00.31] Finished: GmRelay.Bot.Tests + Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldMapInputToExpectedSystem(input: "call of cthulhu", expected: CallOfCthulhu7e) [< 1 ms] + Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldMapInputToExpectedSystem(input: "Dnd5e", expected: Dnd5e) [< 1 ms] + Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldMapInputToExpectedSystem(input: "unknown xyz", expected: Other) [< 1 ms] + Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldMapInputToExpectedSystem(input: "D&D", expected: Dnd5e) [< 1 ms] + Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldMapInputToExpectedSystem(input: " dnd5e ", expected: Dnd5e) [< 1 ms] + Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldMapInputToExpectedSystem(input: "pathfinder", expected: Pathfinder2e) [< 1 ms] + Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldReturnNullForNullInput [< 1 ms] + Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldReturnNullForEmptyOrWhitespaceInput(input: "") [< 1 ms] + Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldReturnNullForEmptyOrWhitespaceInput(input: " ") [< 1 ms] + +Тестовый запуск выполнен. +Всего тестов: 27 + Пройдено: 27 + Общее время: 0,8554 Секунды + 1>Сборка проекта "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" завершена (целевые объекты VSTest). + +Сборка успешно завершена. + Предупреждений: 0 + Ошибок: 0 + +Прошло времени 00:00:04.60 diff --git a/tests/GmRelay.Bot.Tests/Features/Sessions/CreateSession/Wizard/WizardDraftRepositoryAotShapeTests.cs b/tests/GmRelay.Bot.Tests/Features/Sessions/CreateSession/Wizard/WizardDraftRepositoryAotShapeTests.cs index 06c1246..b359d89 100644 --- a/tests/GmRelay.Bot.Tests/Features/Sessions/CreateSession/Wizard/WizardDraftRepositoryAotShapeTests.cs +++ b/tests/GmRelay.Bot.Tests/Features/Sessions/CreateSession/Wizard/WizardDraftRepositoryAotShapeTests.cs @@ -28,7 +28,7 @@ public sealed class WizardDraftRepositoryAotShapeTests "Wizard", "WizardDraftRepository.cs")); - var getActive = ExtractMethodBody(source, "GetActiveAsync"); + var getActive = ExtractMethodBody(source, "GetActiveAsync", ""); Assert.DoesNotContain("new CommandDefinition", getActive, StringComparison.Ordinal); } @@ -49,7 +49,29 @@ public sealed class WizardDraftRepositoryAotShapeTests "Wizard", "WizardDraftRepository.cs")); - var body = ExtractMethodBody(source, methodName); + var body = ExtractMethodBody(source, methodName, ""); + Assert.DoesNotContain("new CommandDefinition", body, StringComparison.Ordinal); + } + + /// + /// WizardDraftRepository was the only AOT-fatal site in v3.9.0, but the + /// same pattern (CommandDefinition on a Dapper extension that the AOT + /// generator cannot reach) is repeated in 4 club-picker / permission + /// lookups across Telegram and Discord messengers. v3.9.2 hotfix + /// converted them all to the direct (sql, params) overload. Lock the + /// regression so the next refactor doesn't reintroduce it. + /// + [Theory] + [InlineData("src/GmRelay.Bot/Features/Sessions/CreateSession/Wizard/TelegramWizardMessenger.cs", "GetOwnerClubsAsync", "")] + [InlineData("src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordWizardMessenger.cs", "GetOwnerClubsAsync", "")] + [InlineData("src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordWizardInteractionModule.cs", "LoadClubsAsync", "internal static class WizardClubLookup")] + [InlineData("src/GmRelay.DiscordBot/Features/Sessions/Wizard/DiscordPermissionLookup.cs", "LoadManagerUserIdsAsync", "")] + public void ClubPickerAndPermissionLookups_ShouldNotUseCommandDefinition(string relativePath, string methodName, string containingClass) + { + var repoRoot = FindRepositoryRoot(); + var source = File.ReadAllText(Path.Combine(repoRoot, relativePath.Replace('/', Path.DirectorySeparatorChar))); + + var body = ExtractMethodBody(source, methodName, containingClass); Assert.DoesNotContain("new CommandDefinition", body, StringComparison.Ordinal); } @@ -82,9 +104,24 @@ public sealed class WizardDraftRepositoryAotShapeTests Assert.DoesNotContain("public DateTimeOffset ExpiresAt", source, StringComparison.Ordinal); } - private static string ExtractMethodBody(string source, string methodName) + private static string ExtractMethodBody(string source, string methodName, string containingClass) { var searchFrom = source.IndexOf(methodName, StringComparison.Ordinal); + + // If a containing class is given (non-empty), narrow the search + // to the first occurrence AFTER the class declaration. This is + // needed when the same method name is used as a call site + // elsewhere in the file. + if (!string.IsNullOrEmpty(containingClass)) + { + var classIdx = source.IndexOf(containingClass, StringComparison.Ordinal); + if (classIdx < 0) + { + throw new InvalidOperationException($"Could not locate class {containingClass} in source."); + } + searchFrom = source.IndexOf(methodName, classIdx, StringComparison.Ordinal); + } + if (searchFrom < 0) { throw new InvalidOperationException($"Could not locate {methodName} in source."); @@ -92,9 +129,11 @@ public sealed class WizardDraftRepositoryAotShapeTests // Accept any return type: `public async Task` (no result) or // `public async Task` (with result). Search for the keyword - // "Task" right before the method name. - var idx = source.IndexOf("Task", searchFrom - 16, StringComparison.Ordinal); - if (idx < 0 || !source.Substring(idx, 4).StartsWith("Task", StringComparison.Ordinal)) + // "Task" in a 60-char window before the method name so we also + // pick up `public static async Task>`. + var windowStart = Math.Max(0, searchFrom - 60); + var idx = source.IndexOf("Task", windowStart, StringComparison.Ordinal); + if (idx < 0 || idx >= searchFrom) { throw new InvalidOperationException($"Could not locate {methodName} declaration in source."); } diff --git a/tests/GmRelay.Bot.Tests/Web/CampaignTemplatesNavigationTests.cs b/tests/GmRelay.Bot.Tests/Web/CampaignTemplatesNavigationTests.cs index efbd201..ed9195d 100644 --- a/tests/GmRelay.Bot.Tests/Web/CampaignTemplatesNavigationTests.cs +++ b/tests/GmRelay.Bot.Tests/Web/CampaignTemplatesNavigationTests.cs @@ -15,7 +15,7 @@ public sealed class CampaignTemplatesNavigationTests public async Task NavMenu_ShouldExposeCurrentProjectVersion() { var navMenu = await File.ReadAllTextAsync(FindRepositoryFile("src/GmRelay.Web/Components/Layout/NavMenu.razor")); - Assert.Contains("v3.9.1", navMenu, StringComparison.Ordinal); + Assert.Contains("v3.9.2", navMenu, StringComparison.Ordinal); } [Fact]