From 3824cd7c5f9ad1c89c7534209c46e48df5985dad Mon Sep 17 00:00:00 2001 From: Fedorov Vladimir Date: Sat, 17 Oct 2026 16:00:33 +0700 Subject: [PATCH] up --- README.md | 11 ++++++++++- docs/agent/COMPLETED_TASKS.md | 14 ++++++++++++++ prod | 2 +- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 57899c8..fc00290 100644 --- a/README.md +++ b/README.md @@ -134,7 +134,16 @@ make stop при создании в последние 24 часа до игры или при первом игровом действии. Для дополнительных операторов используйте отдельные локальные email и пароли в `.env` и снова выполните `make venue` (старые аккаунты сохраняются). -Используйте только тестовые игры до реализации возврата результатов онлайн. + +На основном сервере в настройках игры, в блоке «Передача игры на площадку», +кнопка «Сбросить локальный режим» снимает офлайн-отметку после подтверждения. +Данные игры сохраняются; скачанный пакет продолжает работать на площадке, +его результаты можно загрузить позже. «Подготовить новый пакет» доступна при +любом статусе игры и предыдущего экспорта: новый снимок содержит актуальные +материалы, команды и настройки для игры с нуля, без ходов, ответов и баллов. +Статус и прогресс исходной игры не меняются. Новая подготовка отменяет предыдущую +незавершённую попытку; готовые архивы сохраняются для возврата результатов. +Импорт нового пакета не заменяет уже импортированную игру автоматически. Проверки для разработчика находятся в `tests/venue/` и не нужны для запуска площадки. `deploy.py` проверяет сценарии запуска без Docker; `smoke.py` проверяет diff --git a/docs/agent/COMPLETED_TASKS.md b/docs/agent/COMPLETED_TASKS.md index ece0dde..33cb8a5 100644 --- a/docs/agent/COMPLETED_TASKS.md +++ b/docs/agent/COMPLETED_TASKS.md @@ -2,6 +2,20 @@ Архив задач, переведённых в статус `DONE`. +### ED-047 — Сброс локального режима и повторная подготовка пакета + +- Статус: `DONE` +- Репозитории: `evening_detective_server`, `evening_detective_frontend`. +- Цель: вернуть игру на prod из локального режима с подтверждением без загрузки результатов; разрешить новый пакет при любом статусе игры и экспорта. +- Решение: сохранять готовые экспорты для последующей загрузки результатов; новый пакет — актуальная подготовка к игре с нуля, без изменения исходного прогресса. Отменять устаревшую незавершённую подготовку. +- Критерии: подтверждение/отмена, исчезновение отметок и подсказки игроку, защита от устаревшего сброса, новый пакет для всех статусов и форматов, старые результаты принимаются. +- Проверка: PostgreSQL-тесты экспорта/возврата и миграции, `go test ./...`, генерация API, type-check, оба линтера, сборка фронтенда, браузерный smoke, ревью стандартов. +- Ограничения: без экспорта из venue, переноса прогресса, автоматической замены импортированной игры, commit/push. +- Результат: добавлены RPC/REST сброса с ожидаемым ID экспорта, модальное подтверждение и блокировка повторной отправки. Снятие режима сохраняется в `released_at`; карточка, страница управления и подсказка игрока обновляются через существующее чтение. Готовые архивы доступны для поздних результатов; незавершённые попытки отменяются с fencing worker-а. Каждая подготовка создаёт новый снимок при любом статусе/формате игры; пакет нормализуется в черновик без прогресса. Обновлены protobuf-клиенты, README и тестовые схемы. +- Проверено: `make generate`, `npm run proto:gen`, `go test ./...` с отдельным PostgreSQL на порту 55447, `go test -race ./internal/repos/game_exports_repo ./internal/services/game_export_service`, `npm run type-check`, `npm run lint`, `npm run lint:css`, `npm run build`, `git diff --check` — успешно. Миграция проверена вперёд/назад; откат с несовместимой историей готовых пакетов отказывает без потери данных. Diff вручную проверен по обоим стандартам; новые тесты используют публичные методы сервисов/репозиториев. +- Браузерный smoke Firefox с тестовым API: desktop/mobile, подтверждение/отмена, ошибка/повтор, блокировка кнопок, сохранение сброса после перезагрузки, новая подготовка для всех статусов игры и экспорта, список игр и обновление подсказки игрока поллингом, скрытие операций в venue — успешно. PostgreSQL-тесты подтверждают реальный импорт черновика, неизменность исходной игры, поздние результаты и конкуренцию сброса/замены/возврата. +- Не проверено: развёртывание и ручной сценарий на рабочей площадке. Перед запуском нового backend требуется миграция `20261017120000_release_game_exports.sql`. Commit/push не выполнялись. + ### ED-046 — Подсказка игроку о локальной сети - Статус: `DONE` diff --git a/prod b/prod index c12448a..d21525e 160000 --- a/prod +++ b/prod @@ -1 +1 @@ -Subproject commit c12448afc8307c0562ed37e23d4d7921cab88f77 +Subproject commit d21525efa4898b55d05465a7689c5190e41c38ea