This commit is contained in:
2026-10-17 19:29:49 +07:00
parent dc0d82d88a
commit a386f3d9e5
14 changed files with 1852 additions and 421 deletions
+30 -6
View File
@@ -1,6 +1,6 @@
# Задачи приложения площадки
SCREEN-001 имеет статус IN_PROGRESS; SCREEN-002 и SCREEN-003 завершены
SCREEN-001 и SCREEN-004 имеют статус IN_PROGRESS; SCREEN-002 и SCREEN-003 завершены
и перенесены в архив; остальные активные задачи — TODO.
SCREEN-009 (LAN-пульт) отменена владельцем; ID не переиспользовать.
Управление телефоном через сервер входит в SCREEN-006. План и общие ограничения:
@@ -56,8 +56,8 @@ SCREEN-009 (LAN-пульт) отменена владельцем; ID не пе
Node 26.8.1, Electron 42.11.15. Единичные программные замеры не подтверждают
аппаратную приёмку или физический p95 ≤150 мс. Headless зависал/падал; GUI smoke
проходил с тестовыми --no-sandbox --mute-audio --disable-gpu.
- Ограничения: дедупликация стенда хранит последние 4096 команд; долговременная
семантика — SCREEN-004. Привязка игры и серверное управление — SCREEN-006.
- Ограничения исходного стенда: дедупликация хранила последние 4096 команд;
в программной части SCREEN-004 заменена сессиями и возрастающими номерами. Привязка игры и серверное управление — SCREEN-006.
- Следующий шаг: получить аппаратные результаты владельца по
docs/SCREEN-001_ACCEPTANCE.md на всех шести вариантах (Linux — на обоих
дистрибутивах), включая проектор,
@@ -68,7 +68,7 @@ SCREEN-009 (LAN-пульт) отменена владельцем; ID не пе
## SCREEN-004 — Локальное воспроизведение и быстрые команды
- Статус: `TODO`
- Статус: `IN_PROGRESS`
- Зависимость: SCREEN-003 (DONE, см. COMPLETED_TASKS.md); использовать основу
SCREEN-001. Материалы брать из PackageStore и screen-app://app/packages/<key>/<assetId>.
- Цель: применять команды пульта независимо от сервера.
@@ -82,8 +82,32 @@ SCREEN-009 (LAN-пульт) отменена владельцем; ID не пе
ручные seek/replay/смена трека и повтор замеров на всей матрице;
порог p95 ≤150 мс — на M1.
- Не входит: стриминг, несколько независимых проигрывателей на разных компьютерах.
- Следующий шаг: сверить существующую семантику ScreenCommand/MusicState и
реализовать один последовательный путь команда → проигрыватель → подтверждение.
- Программный результат (2026-10-17): готовые пакеты подключены к пульту через
проверку PackageStore; явный тестовый режим сохранён. Вступление и видео
взаимно исключаются в основном канале, музыка независима и не приглушается
автоматически (существующая политика сайта). Начальная громкость 35%, общий
mute сохраняет уровни. Добавлены play/pause/resume/stop/replay/seek, выбор
плейлиста/трека, следующий трек и повтор плейлиста. Позиции ограничиваются
фактической длительностью, пауза и громкость не перематывают ресурс.
- Согласование: новая сессия при выборе пакета и пересоздании окна, возрастающие
номера команд без накопления UUID; подтверждения привязаны к операции канала.
Отменённый play не оживляет канал, быстрый seek→pause не теряет перемотку;
повторный пуск перезагружает источник после ошибки чтения. Окно открывается
с остановленными каналами, автоматического возобновления звука нет.
- Проверки: типы, ESLint, Stylelint, 37 тестов, сборка и GUI smoke Electron — PASS.
GUI проверил выбор пакета через пульт, локальные WAV/H.264, Range, pause/resume,
replay/seek, независимую музыку, mute/volume, переход/повтор плейлиста,
быстрые команды, запреты IPC и повторное открытие без автозапуска.
Сборки и тесты запускать последовательно: test и smoke пересобирают один
dist-electron. При параллельной пересборке был таймаут повторного открытия;
последовательные прогоны прошли.
- Открыто: аппаратная матрица и физический p95 ≤150 мс на M1; текущие программные
замеры этого не подтверждают. Проверено на Linux x64, дисплей smoke синтетический,
звук приглушён тестовым флагом. Реальные игровые файлы и остальные ОС не проверены;
установочные архивы не пересобирались. Бэкенд и protobuf не менялись.
- Следующий шаг: выполнить npm run acceptance и аппаратную инструкцию
docs/SCREEN-004_ACCEPTANCE.md на всей матрице, получить результаты владельца.
До их получения статус остаётся IN_PROGRESS; перенос в архив не выполняется.
## SCREEN-005 — Пульт ведущего и все режимы показа