up
This commit is contained in:
@@ -1,11 +1,10 @@
|
||||
# Вечерний детектив — приложение площадки
|
||||
|
||||
Статус: SCREEN-005 реализована; SCREEN-001 и SCREEN-004 остаются IN_PROGRESS
|
||||
до аппаратной приёмки. Режимы показа и пульт работают с локальными пакетами.
|
||||
SCREEN-002 и SCREEN-003 завершены: описание пакета через существующий API,
|
||||
загрузка, проверка, восстановление и локальная выдача файлов.
|
||||
Управление с телефона идёт через существующий сервер сайта; desktop получает
|
||||
обновления с сервера. Прямое LAN-подключение не используется.
|
||||
Статус: SCREEN-006 реализована — вход, список игр, загрузка через пульт,
|
||||
снимки результатов и команды существующего сервера. SCREEN-001 и SCREEN-004
|
||||
остаются IN_PROGRESS до аппаратной приёмки. Подготовленная игра восстанавливается
|
||||
офлайн без автоматического открытия показа и запуска звука.
|
||||
Управление с телефона идёт через существующий сервер сайта; прямого LAN-подключения нет.
|
||||
|
||||
Цель: ведущий управляет показом на компьютере с macOS, Windows или Linux, а подключённый монитор или
|
||||
проектор показывает материалы игрокам. Все материалы показа заранее находятся
|
||||
@@ -22,8 +21,8 @@ macOS Intel/Apple Silicon, Windows x64/ARM64 и Linux x64/ARM64.
|
||||
общего правила хранения задач в `../docs/agent`. Не дублировать их там.
|
||||
Идентификаторы `SCREEN-*` относятся только к этому приложению.
|
||||
|
||||
Следующий этап: SCREEN-006 — авторизация, загрузка через интерфейс и серверная
|
||||
синхронизация; аппаратная проверка SCREEN-004 остаётся открытой.
|
||||
Следующий этап: SCREEN-007 — устойчивость на площадке; аппаратная проверка
|
||||
SCREEN-001/SCREEN-004 остаётся открытой.
|
||||
Новые задачи: `Новая задача: <описание>`.
|
||||
Commit и push выполняет только пользователь. Вложенные `.git` не изменять.
|
||||
|
||||
@@ -45,12 +44,20 @@ npm run dev
|
||||
его и откройте показ. Аудио и видео — синтетические локальные файлы длительностью
|
||||
60 секунд; бинарники находятся в игнорируемом fixtures/ и не входят в Git.
|
||||
Тестовый режим сохраняет отдельный выбор WAV/видео; игровые пакеты выбираются
|
||||
в разделе «Материалы показа». Интерфейс загрузки игр и авторизация пока
|
||||
не реализованы; они относятся к SCREEN-006.
|
||||
в разделе «Материалы показа». В блоке «Игра и сервер» доступны вход, список игр и загрузка материалов.
|
||||
|
||||
Управление телефоном через сервер, подключение игры и авторизация относятся к
|
||||
SCREEN-006 и в техническом стенде ещё не реализованы. Интернет нужен для получения
|
||||
команд телефона; локальное воспроизведение и пульт компьютера работают без него.
|
||||
Для команд телефона войдите, подготовьте и выберите игру, подключите управление
|
||||
и откройте показ. Первое состояние не запускает накопленные команды;
|
||||
отправьте новую команду на сайте. После обрыва сети локальный пульт продолжает
|
||||
работать, первое состояние при восстановлении также пропускается.
|
||||
[Проверка с существующим сервером и телефоном](docs/SCREEN-006_ACCEPTANCE.md).
|
||||
|
||||
Токены хранятся в основном процессе и сохраняются средствами ОС отдельно от
|
||||
пакетов. Если защищённое хранилище недоступно, вход действует только до закрытия
|
||||
приложения. Выход не удаляет подготовленные материалы. Обновление выбранной
|
||||
игры доступно при закрытом показе; проверка описания не замечает замену байтов
|
||||
по прежнему URL — используйте повторную загрузку. Результаты доступны после
|
||||
завершения игры; последний успешный снимок сохраняется с датой для офлайн-показа.
|
||||
|
||||
Проверки: npm run type-check, npm run lint, npm run lint:css, npm test, npm run build.
|
||||
[Сборки и аппаратная приёмка](docs/SCREEN-001_ACCEPTANCE.md).
|
||||
@@ -63,8 +70,8 @@ token, signal? })` для вызова из основного процесса.
|
||||
Авторизация — существующий Bearer JWT; токен используется только в запросах API,
|
||||
не входит в результат. Редиректы API запрещены, ожидание ограничено 30 секундами;
|
||||
поддерживается отмена через AbortSignal. Ответы с ошибками не выдают частичный пакет.
|
||||
Интерфейс входа и подключение к пульту остаются в SCREEN-006; сейчас это программный
|
||||
контракт, новых кнопок в стенде нет. Бэкенд, frontend и protobuf не изменены.
|
||||
Интерфейс входа и загрузки подключён в SCREEN-006; описание используется основным
|
||||
процессом без передачи токенов в renderer. Бэкенд, frontend и protobuf не изменены.
|
||||
|
||||
Результат `ScreenPackage` содержит `formatVersion: 1`, `metadataVersion`, адрес
|
||||
сервера, ID/название игры, ссылки на материалы, шаги плана и связанные плейлисты.
|
||||
@@ -88,7 +95,7 @@ token, signal? })` для вызова из основного процесса.
|
||||
чтобы две копии не изменяли хранилище одновременно. При запуске проверяются
|
||||
манифесты, размеры и SHA-256 всех файлов; повреждённые пакеты не становятся готовыми.
|
||||
|
||||
Программный интерфейс (для основного процесса; подключение к UI — SCREEN-006):
|
||||
Программный интерфейс основного процесса (подключён к UI в SCREEN-006):
|
||||
|
||||
```ts
|
||||
const store = new PackageStore(packagesDirectory)
|
||||
|
||||
Reference in New Issue
Block a user