21 KiB
21 KiB
Завершённые задачи
Архив задач, переведённых в статус DONE.
ED-030 — Индикатор среды сервиса в интерфейсе
- Статус:
DONE - Репозитории:
evening_detective_server,evening_detective_frontend. - Связь: дополнение к ED-029; не требует готовности DNS/HTTPS и Cudy.
- Цель: пользователь видит, к какой среде подключён интерфейс:
PRODилиVENUE. - Решение: показывать компактную подпись среды в общем интерфейсе рядом с навигацией; получать среду от подключённого бэкенда по фактическому режиму запуска (
APP_MODE=venue— площадка, штатный онлайн-режим — production). - Критерии: подпись видна на компьютере и телефоне; PROD и VENUE различаются текстом, а не только цветом; среда определяется сервером, а не адресом сайта или настройкой сборки фронтенда; при загрузке или ошибке получения среды интерфейс не показывает неподтверждённый PROD/VENUE.
- Ограничения: без переключения серверов, изменения игровых правил, показа секретов, новых зависимостей и изменения папки
prod; использовать существующую навигацию, API и стандарты обоих репозиториев. - Проверка: ручной прогон обоих режимов и недоступного API; Go-тесты; frontend type-check, lint, lint:css и build; при изменении protobuf — штатная генерация обоих клиентов.
- Результат: поле
environmentдобавлено в существующий публичный GetPermissions API; значение определяется тем же режимом запуска бэкенда, который отключает внешние интеграции площадки. В HeaderMenu добавлены русские подписи «Сервер» (PROD) и «Локальная сеть» (VENUE) через Naive UI; загрузка, неизвестная среда и ошибки не подменяются production. Сведения меню хранятся в общем UI-store; устаревшие ответы не заменяют новые, а права не применяются после смены токена. - Проверки: штатные
make generateиnpm run proto:gen,gofmt,go test ./...,npm run type-check,npm run lint,npm run lint:css,npm run buildиgit diff --checkпрошли. Табличный Go-тест проверяет оба режима для гостя, пользователя и администратора. Firefox headless с подменой API проверил PROD/VENUE до и после входа, загрузку, серверную и сетевую ошибки, неизвестное значение; подпись находится внутри viewport при ширине 1440 и 390 px. - Ревью: diff проверен по стандартам обоих репозиториев; зависимости не добавлены, generated-файлы получены штатной генерацией. Сборочные изменения
distисключены из diff; папкаprodи существующие локальные артефакты бэкенда не менялись. - Ограничение проверки: реальные Android/iPhone и развёртывание обновлённой версии не проверялись; для появления индикатора нужно обновить бэкенд и фронтенд. Миграция БД не требуется. Commit и push не выполнялись.
ED-028 — Роль разработчика и общий таскменеджер
- Статус:
DONE - Репозитории:
evening_detective_server,evening_detective_frontend - Результат: добавлены роль
developer, выдача и отзыв роли на странице пользователей, правоtasks_pageи общая доска/tasksдля разработчиков и администратора. Реализованы четыре статуса, создание и редактирование, назначение разработчика, необязательная календарная дата завершения, фильтр по ответственному, перенос карточек и удаление с подтверждением. PostgreSQL хранит задачи; версии защищают от конкурентной перезаписи, форма сохраняет черновик при конфликте. При отзыве роли прежнее назначение сохраняется; при удалении пользователя задача сохраняется без ссылок на него. - Стандарты: ручное ревью всего diff по
GO_STANDARD.mdиFRONTEND_CODE_STANDARD.mdвыполнено; новые зависимости не добавлены; API сгенерирован штатными командами; сборочные измененияdistисключены из diff. - Проверки:
make generate,npm run proto:gen, стандартныйgo test ./...,npm run type-check,npm run lint,npm run lint:css,npm run buildиgit diff --checkпройдены. Интеграционныйgo test ./internal/repos/tasks_repo -count=1 -vс отдельнойTEST_DATABASE_URLпройден: ограничения БД, назначения, смена статусов, конкурентные записи, удаление пользователей и миграция Up/Down. Шесть тестов дедлайна пройдены вAsia/BarnaulиAmerica/Los_Angeles. - Проверка браузера: Firefox headless с подменой API — создание, назначение ответственного и даты, редактирование, сохранение черновика при конфликте, перетаскивание, подтверждение удаления и отказ пользователю без роли; мобильная ширина 380 px, горизонтальная прокрутка только внутри доски. Полный сценарий с работающим production-сервисом не запускался.
- Известное ограничение проверки: дополнительный полный
go test ./...сTEST_DATABASE_URLобнаружил существующие ошибки игровых фикстур вanswer_service,game_service,gameplay_service,participation_service(временные таблицы не соответствуют текущей схеме). Эти тесты не менялись; стандартный полный прогон и новые интеграционные тесты проходят. - Запуск: применить миграцию
20261007130000_create_developer_tasks.sqlштатным процессом миграций и выдать пользователю роль на странице/users; после нового входа доступна/tasks. Production-миграции, commit и push не выполнялись.
ED-020 — Музыка из плейлиста на экранах игры
- Статус:
DONE - Приоритет:
P1 - Репозитории:
evening_detective_server,evening_detective_frontend - Результат: добавлены общие MP3-плейлисты и треки, назначение default-плейлиста сценарию и выбор музыки для игры. Состояние музыки хранится на уровне игры и синхронизируется через существующий polling экранов; добавлены play/pause/stop, выбор трека, громкость, loop, автопереход и единственный экран со звуком. Добавлены UI управления во вкладке «Экраны» и выбор плейлиста в редакторе сценария.
- Проверки:
GOCACHE=/tmp/evening-detective-go-cache go test ./...,npm run type-check,npm run lint,npm run lint:css,npm run buildиgit diff --checkпройдены; protobuf сгенерирован штатными командами. - Ручная проверка: не выполнялась в среде агента; требуется проверить загрузку MP3 от ролей, воспроизведение на двух экранах, автопереход, loop и переподключение.
ED-027 — Упростить экран игры организатора
- Статус:
DONE - Приоритет:
P1 - Репозиторий:
evening_detective_frontend - Результат: админский экран игры разделён на вкладки «Игра», «Команды», «Экраны» и «Карта». Вкладка «Игра» открывается по умолчанию и содержит статус, таймер, управление состоянием и служебные действия; выбранная вкладка хранится в query-параметре
tabи восстанавливается после обновления. Существующие панели, API и игровая логика сохранены. - Проверки:
npm run type-check,npm run lint,npm run lint:css,git diff --checkпройдены. - Ручная проверка: не выполнялась в среде агента; требуется проверить переключение вкладок и основные действия на реальном экране организатора, включая узкую ширину.
ED-015 — План экранов игры для организатора
- Статус:
DONE - Приоритет:
P1 - Репозитории:
evening_detective_server,evening_detective_frontend - Результат: добавлен необязательный план экранов игры с линейными шагами, текущим индексом и параметрами текста и таймера. Организатор может создать, изменить, удалить и переставить шаги, а также перейти на любой шаг; состояние применяется ко всем подключённым экранам и повторно применяется при привязке нового экрана. Добавлен текстовый режим экрана. Игры без плана продолжают работать через существующее ручное управление; синхронизация использует текущий polling.
- Проверки: целевые backend-пакеты и
screen_plan_serviceпроходят; frontendnpm run type-check,npm run lint,npm run lint:css,npm run buildиgit diff --checkпройдены; protobuf сгенерирован штатными командами. Полный backendgo test ./...дополнительно упирается в sandbox-запретlisten tcpв gateway-тестах. - Ручная проверка: не выполнялась в среде агента; требуется проверить реальными экранами создание плана, переходы, синхронизацию нескольких дисплеев и переподключение.
ED-016 — Привязка экрана к игре через сканер
- Статус:
DONE - Репозитории:
evening_detective_server,evening_detective_frontend - Результат: на странице игры добавлено сканирование QR-кода экрана с немедленной привязкой к текущей игре; список экранов показывает онлайн/оффлайн-состояние и предупреждает о недоступности более минуты. Сервер разрешает управление организатору и администратору, корректно перепривязывает экран и переносит текущее состояние целевой игры.
- Проверки:
GOCACHE=/tmp/evening-detective-go-cache go test ./...,npm run type-check,npm run lint,npm run lint:css,git diff --checkпройдены.
ED-026 — Количество игроков при создании команды из панели игры
- Статус:
DONE - Приоритет:
P1 - Репозитории:
evening_detective_server,evening_detective_frontend - Результат: в форме создания команды на
GamePageдобавлено количество игроков со значением1по умолчанию и диапазоном1–8. Значение передаётся черезAddTeamи сохраняется в существующемteams.participants_count; старые flow без значения сохранены. - Проверки:
go test ./...,npm run type-check,npm run lint,npm run lint:css,npm run buildпройдены; protobuf сгенерирован штатными командами;git diff --checkпройден.
ED-023 — Оценка сложности игры в отзыве и каталоге
- Статус:
DONE - Приоритет:
P1 - Репозитории:
evening_detective_server,evening_detective_frontend - Результат: в отзыв добавлена обязательная оценка сложности
1–3; значение хранится в существующей таблице отзывов и передаётся через protobuf. Средняя сложность считается по одобренным отзывам завершённых игр сценария и отображается как «лёгкая», «средняя» или «тяжёлая» в каталоге и карточке сценария. Старые отзывы поддержаны значением по умолчанию2; рейтинг1–5, модерация и запрет повторного отзыва сохранены. - Проверки:
go test ./...пройден с кэшем в/tmp;npm run type-check,npm run lint,npm run lint:cssпройдены; protobuf сгенерирован штатными командами;git diff --checkпройден.
ED-012 — Строгий стандарт написания фронтенда
- Статус:
DONE - Репозиторий:
evening_detective_frontend - Результат: создан обязательный стандарт
docs/FRONTEND_CODE_STANDARD.mdкак единственный источник правил структуры, компонентов, composables, функций, типов, API, состояния, стилей, форм, доступности и проверок. ФронтендныйAGENTS.mdоставлен указателем и операционными правилами, а корневойAGENTS.mdсодержит условную ссылку для задач фронтенда. - Проверки: проверены ссылки и однозначное размещение типовых видов кода;
git diff --checkпройден; продуктовый код и зависимости не менялись.
ED-025 — Доступ к БД только через repository
- Статус:
DONE - Репозиторий:
evening_detective_server - Результат: прямой доступ к БД из application flow убран; проверка доступности БД вынесена в
health_repo,screen_sessions_repo— вscreen_service, аgame_map_repo— вmap_service. Handlers используют сервисные модели и больше не импортируют эти repositories. - Проверки: целевые backend-пакеты компилируются;
internal/appпроходит тесты;git diff --checkпройден. Полные gateway-тесты в sandbox заблокированы запретом наlistenTCP-порта.
ED-011 — Строгий стандарт написания Go-бэкенда
- Статус:
DONE - Репозиторий:
evening_detective_server - Результат: добавлен обязательный стандарт
docs/GO_STANDARD.mdкак единственный источник правил Go-кода: слои, handlers, services, repositories, modules с обязательными интерфейсами, mapping, protobuf, ошибки, SQL, транзакции, тесты и именование. В backendAGENTS.mdоставлены только ссылка на стандарт, проектные ограничения и операционные команды. - Проверки:
go test ./...пройден;git diff --checkпройден.
ED-019 — Добавить кнопку экрана в меню организатора
- Статус:
DONE - Репозиторий:
evening_detective_frontend - Результат: в
HeaderMenu.vueдобавлен пунктЭкрандля пользователей с правомgames_page; пункт ведёт на существующий маршрут/screen. - Проверки:
npm run type-check,npm run lint,npm run lint:cssпройдены.
ED-001 — Исправить actions_count в GetGameAnswers
- Статус:
DONE - Репозиторий:
evening_detective_server - Результат:
GetGameAnswersтеперь заполняетTeam.ActionsCountчерезGetActionsCountByTeamIDs; контракт API не изменён. - Проверки:
go test ./...пройден; lifecycle-тест проверяет количество ходов в ответе для панели оценки.
ED-011 — Считать сообщения без тригерной фразы продолжением диалога
- Статус:
DONE - Репозиторий: корневые правила агента
- Результат: удалено обязательное ожидание тригерной фразы перед продолжением диалога.
- Проверки: проверены
AGENTS.mdиdocs/agent/README.md; продуктовый код не затрагивался.
ED-005 — Исправить сброс настроек игры поллингом
- Статус:
DONE - Репозиторий:
evening_detective_frontend - Результат: настройки редактируются через локальный черновик и не перезаписываются поллингом.
- Проверки: type-check, lint и lint:css пройдены.
ED-006 — Добавить страницу итогов игры
- Статус:
DONE - Репозиторий:
evening_detective_frontend - Результат: добавлена страница результатов, обработка ошибок и входы из админки и списка игр.
- Проверки: type-check, lint, lint:css и build пройдены.
ED-007 — Добавить пьедестал победителя на странице итогов
- Статус:
DONE - Репозиторий:
evening_detective_frontend - Результат: добавлены баннер победителя, медали мест 1–3 и обработка ничьих.
- Проверки: type-check, lint, lint:css и build пройдены.
ED-008 — Добавить создание игры из списка игр
- Статус:
DONE - Репозиторий:
evening_detective_frontend - Результат: добавлено создание игры из каталога сценариев, выбор даты и времени, отображение даты и исправлена передача RFC 3339
startAt. - Проверки: type-check, lint и lint:css пройдены; build указан в отчёте плана.