This commit is contained in:
2026-10-18 01:47:42 +07:00
parent b591287072
commit 8610f45a29
11 changed files with 60 additions and 50 deletions
+8 -10
View File
@@ -7,7 +7,7 @@
внешнем дисплее. Аудио, видео, изображения и выбранные музыкальные плейлисты
читаются с диска. Пульт переключает показ и управляет воспроизведением локально.
После подготовки потеря интернета не мешает локальному показу и таймеру.
Телефон управляет через существующий сервер сайта; приложение экрана получает с сервера
Приложение экрана подключается к существующему серверу сайта и получает
обновления состояния. При потере интернета доступен локальный пульт компьютера.
«Все материалы» в первой версии — все ресурсы, необходимые окну показа:
@@ -77,16 +77,15 @@ Linux проверяется на обоих указанных дистрибу
Токены не записываются в пакет игры и логи.
6. После подготовки основной процесс применяет локальные команды пульта компьютера
через IPC без ожидания сервера. Материалы воспроизводятся с диска.
7. Телефон использует существующий пульт на сайте и отправляет команды серверу.
7. Пульт на сайте отправляет команды существующему серверу.
Приложение экрана подключается к серверу как экранная сессия и получает обновления
через существующий API CreateScreenSession/GetScreenState. Текущий браузерный
экран опрашивает состояние раз в 1000 мс; desktop использует тот же серверный поток.
HTTP-сервер, WebSocket-сервер, сопряжение и отдельный мобильный пульт в desktop не нужны.
8. Подключение игры, авторизация и получение серверных обновлений реализуются в SCREEN-006.
Серверные команды проходят через локальный контроллер и используют подготовленные
файлы. Одну версию команды нельзя применять повторно. При потере сети телефон
не управляет desktop; уже запущенное воспроизведение и локальный пульт продолжают
работать. При восстановлении сети необходимо сверить версии и не повторять
файлы. Одну версию команды нельзя применять повторно. При потере сети
уже запущенное воспроизведение и локальный пульт продолжают работать.
При восстановлении сети необходимо сверить версии и не повторять
устаревшую команду поверх локальных действий; правила согласования проверяются
в SCREEN-006 на существующих ScreenState/ScreenCommand.
9. Текущие результаты игры загружаются онлайн с отметкой времени; офлайн доступны
@@ -120,7 +119,7 @@ Linux проверяется на обоих указанных дистрибу
3. SCREEN-003: реализовать надёжную загрузку и локальное хранение пакетов.
4. SCREEN-004: реализовать локальный проигрыватель и команды, подготовку медиа.
5. SCREEN-005: собрать пульт, план показа и режимы экрана.
6. SCREEN-006: добавить подключение игры, обновления экрана с сервера и управление с телефона через сайт.
6. SCREEN-006: добавить подключение игры, обновления экрана с сервера и серверные команды через сайт.
7. SCREEN-007: обработать отключение дисплея, звук, сон и восстановление.
8. SCREEN-008: собрать артефакты для всех шести вариантов и провести приёмку на площадке.
@@ -140,7 +139,7 @@ Linux проверяется на обоих указанных дистрибу
- В SCREEN-001 для каждой тестовой конфигурации зафиксировать ОС, архитектуру,
CPU/RAM, проектор/переходник, аудиовыход, форматы, разрешение и размер медиа.
- Полное управление игрой, локальный Go-сервер/БД, редактирование сценария,
автообновления и прямое управление desktop с телефона по LAN — за пределами MVP.
автообновления — за пределами MVP.
- Подпись и notarization зависят от наличия Apple Developer; без них не обещать
установку без предупреждений Gatekeeper. Для Windows отдельно зафиксировать наличие сертификата подписи и
возможные предупреждения установки. Учётные данные не хранить в репозитории.
@@ -150,8 +149,7 @@ Linux проверяется на обоих указанных дистрибу
Для нового приложения настроить type-check, lint, lint:css и build; покрывать
тестами нетривиальные переходы, IPC, проверку пакетов и восстановление загрузок.
Для Electron использовать sandbox, contextIsolation и отключённый nodeIntegration.
Мобильный пульт проверять в Safari на iPhone и Chrome на Android. Замеры для
телефона вести отдельно: порог 150 мс относится к пульту компьютера.
Порог задержки 150 мс относится к пульту компьютера.
Перед изменениями Vue изучить `../evening_detective_frontend/docs/FRONTEND_CODE_STANDARD.md`
и применять подходящие правила. При изменениях соседних репозиториев обязательны