up
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
внешнем дисплее. Аудио, видео, изображения и выбранные музыкальные плейлисты
|
||||
читаются с диска. Пульт переключает показ и управляет воспроизведением локально.
|
||||
После подготовки потеря интернета не мешает локальному показу и таймеру.
|
||||
Полный пульт телефона работает в доверенной локальной сети одновременно с пультом компьютера.
|
||||
|
||||
«Все материалы» в первой версии — все ресурсы, необходимые окну показа:
|
||||
вступление, закрывающее видео, обложка, фон, материалы шагов плана, выбранные
|
||||
@@ -70,11 +71,24 @@ Linux проверяется на обоих указанных дистрибу
|
||||
5. Сервер проверяет право организатора на скачивание материалов. Существующий
|
||||
API используется где достаточно; манифест добавляется минимальным расширением.
|
||||
Токены не записываются в пакет игры и логи.
|
||||
6. После подготовки основной процесс — источник состояния локального показа.
|
||||
Серверная синхронизация не задерживает команды. В MVP удалённые команды с
|
||||
телефона не управляют desktop-показом: параллельные источники исключены.
|
||||
Возврат сети не должен перезапускать старую серверную команду поверх локальной.
|
||||
7. Текущие результаты игры загружаются онлайн с отметкой времени; офлайн доступны
|
||||
6. После подготовки основной процесс — единственный источник состояния локального показа.
|
||||
Команды пульта компьютера через IPC и телефона через WebSocket обрабатываются
|
||||
последовательно; состояние с возрастающей ревизией рассылается обоим пультам.
|
||||
Серверная синхронизация не задерживает команды. Команды сайта не управляют
|
||||
desktop-показом; возврат интернета не повторяет старые серверные команды.
|
||||
7. Приложение по явному действию оператора раздаёт мобильный Vue-пульт со встроенного
|
||||
HTTP-сервера на выбранном IPv4-интерфейсе. Код сопряжения, подтверждение на
|
||||
компьютере и временная HttpOnly-cookie ограничивают доступ. Сеансы только в памяти;
|
||||
отключение пульта отзывает их. Рабочая сеть — своя Wi-Fi/LAN или точка доступа:
|
||||
HTTP не шифрует трафик. Сертификаты и управление через интернет не входят в MVP.
|
||||
В сетевом API нет произвольного доступа к диску, IPC и токенам сайта.
|
||||
8. Телефон управляет всеми режимами показа, шагами, таймером, музыкой, громкостью
|
||||
и перемоткой. Подготовка игры и дисплея остаётся на компьютере. Команды имеют
|
||||
идентификаторы для дедупликации; после потери связи управление блокируется,
|
||||
показ продолжается. Переподключение получает снимок состояния без повтора команд.
|
||||
Vue-компоненты и типы пультов общие внутри screen, различается транспорт.
|
||||
Общий пакет с сайтом заранее не выделяется.
|
||||
9. Текущие результаты игры загружаются онлайн с отметкой времени; офлайн доступны
|
||||
только последние сохранённые данные с явным предупреждением оператору.
|
||||
Серверная игра, ответы команд и вычисление новых результатов офлайн не работают.
|
||||
|
||||
@@ -99,14 +113,15 @@ Linux проверяется на обоих указанных дистрибу
|
||||
## Порядок работ
|
||||
|
||||
1. SCREEN-001: проверить Electron на всех шести вариантах, два дисплея, локальное
|
||||
медиа и задержки; порог задержки — на M1.
|
||||
медиа и задержки, техническое подключение телефона по LAN; порог задержки — на M1.
|
||||
2. SCREEN-002: получить полный и защищённый пакет материалов с сервера.
|
||||
3. SCREEN-003: реализовать надёжную загрузку и локальное хранение пакетов.
|
||||
4. SCREEN-004: реализовать локальный проигрыватель и команды, подготовку медиа.
|
||||
5. SCREEN-005: собрать пульт, план показа и режимы экрана.
|
||||
6. SCREEN-006: добавить подключение игры и согласование с сервером.
|
||||
7. SCREEN-007: обработать отключение дисплея, звук, сон и восстановление.
|
||||
8. SCREEN-008: собрать артефакты для всех шести вариантов и провести приёмку на площадке.
|
||||
6. SCREEN-009: полный пульт телефона, сопряжение, общее состояние и восстановление связи.
|
||||
7. SCREEN-006: добавить подключение игры и согласование с сервером.
|
||||
8. SCREEN-007: обработать отключение дисплея, звук, сон и восстановление.
|
||||
9. SCREEN-008: собрать артефакты для всех шести вариантов и провести приёмку на площадке.
|
||||
|
||||
После SCREEN-001 — решение о продолжении по результатам всей матрицы платформ.
|
||||
Разработка на одной ОС не заменяет аппаратную проверку остальных ОС и архитектур,
|
||||
@@ -124,7 +139,7 @@ Linux проверяется на обоих указанных дистрибу
|
||||
- В SCREEN-001 для каждой тестовой конфигурации зафиксировать ОС, архитектуру,
|
||||
CPU/RAM, проектор/переходник, аудиовыход, форматы, разрешение и размер медиа.
|
||||
- Полное управление игрой, локальный Go-сервер/БД, редактирование сценария,
|
||||
автообновления и дистанционное управление desktop — за пределами MVP.
|
||||
автообновления и управление desktop через интернет — за пределами MVP.
|
||||
- Подпись и notarization зависят от наличия Apple Developer; без них не обещать
|
||||
установку без предупреждений Gatekeeper. Для Windows отдельно зафиксировать наличие сертификата подписи и
|
||||
возможные предупреждения установки. Учётные данные не хранить в репозитории.
|
||||
@@ -133,6 +148,10 @@ Linux проверяется на обоих указанных дистрибу
|
||||
|
||||
Для нового приложения настроить type-check, lint, lint:css и build; покрывать
|
||||
тестами нетривиальные переходы, IPC, проверку пакетов и восстановление загрузок.
|
||||
Для Electron использовать sandbox, contextIsolation и отключённый nodeIntegration.
|
||||
Мобильный пульт проверять в Safari на iPhone и Chrome на Android. Замеры для
|
||||
телефона вести отдельно: порог 150 мс относится к пульту компьютера.
|
||||
|
||||
Перед изменениями Vue изучить `../evening_detective_frontend/docs/FRONTEND_CODE_STANDARD.md`
|
||||
и применять подходящие правила. При изменениях соседних репозиториев обязательны
|
||||
их стандарты и проверки из корневого AGENTS.md; при изменении protobuf — штатная
|
||||
|
||||
Reference in New Issue
Block a user