up
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
# Задачи приложения площадки
|
||||
|
||||
SCREEN-001 имеет статус IN_PROGRESS; остальные задачи — TODO. План и общие ограничения:
|
||||
SCREEN-001 имеет статус IN_PROGRESS; остальные задачи — TODO.
|
||||
SCREEN-009 (LAN-пульт) отменена владельцем; ID не переиспользовать.
|
||||
Управление телефоном через сервер входит в SCREEN-006. План и общие ограничения:
|
||||
[PLAN.md](PLAN.md). Идентификаторы независимы от ED-* в корневом списке.
|
||||
Обновлять статус и результат здесь; завершённые записи переносить в
|
||||
`COMPLETED_TASKS.md` в этом каталоге после проверки. Коммиты и push не выполнять.
|
||||
@@ -14,8 +16,7 @@ SCREEN-001 имеет статус IN_PROGRESS; остальные задачи
|
||||
матрицу; Linux проверяется на Ubuntu 24.04 LTS и Debian 13.
|
||||
- Объём: минимальный Electron + Vue + TypeScript + Vite; пульт и отдельное окно
|
||||
показа; выбор дисплея; синтетические локальные аудио/видео; IPC start/pause/stop
|
||||
и seek; безопасный preload и локальная выдача медиа с Range; техническое
|
||||
подключение браузера телефона по LAN с сопряжением и отправкой команды. Подготовить сборки
|
||||
и seek; безопасный preload и локальная выдача медиа с Range. Подготовить сборки
|
||||
для всех шести вариантов, инструкцию получения тестовых медиа и аппаратной
|
||||
проверки. Бинарные тестовые файлы не коммитить.
|
||||
- Готовность: запуск на всех шести вариантах; пульт остаётся на основном экране,
|
||||
@@ -28,36 +29,28 @@ SCREEN-001 имеет статус IN_PROGRESS; остальные задачи
|
||||
звук/кадр и отключённая сеть. Проверить кабель/USB и HDMI. Владелец выполняет
|
||||
аппаратные проверки по инструкции агента и передаёт результаты.
|
||||
- Не входит: сервер, авторизация, скачивание, полный пульт, публикация.
|
||||
- Результат программного этапа (17.10.2026): Electron + Vue/TypeScript/Vite,
|
||||
два изолированных окна, выбор внешнего дисплея, локальный протокол с Range,
|
||||
синтетические WAV/H.264+AAC, start/pause/stop/seek, подтверждённые статусы и
|
||||
отдельные замеры аудио/видео и компьютера/телефона. LAN включается явно:
|
||||
код + подтверждение на компьютере, HttpOnly-сеанс, отзыв при отключении.
|
||||
Полные игровые функции и сервер не переносились.
|
||||
Подготовлены четыре финальных архива Linux/Windows x64/ARM64 в release/ и
|
||||
SHA256SUMS; содержимое app.asar всех четырёх сверено с проверенным кодом,
|
||||
медиа присутствуют, тестовые модули исключены из поставки. Linux x64-бинарник
|
||||
отдельно запускается из упакованного каталога; UI/preload и Range — PASS.
|
||||
macOS x64/ARM64 не собраны здесь: нужны Mac или подготовленный ручной CI workflow.
|
||||
- Проверка: frontend-стандарт прочитан; ручное ревью нового кода выполнено,
|
||||
используются Naive UI, типизированный IPC, scoped CSS и палитра проекта.
|
||||
type-check, lint, lint:css, build и 5 тестов — PASS. GUI smoke — PASS:
|
||||
фактический запуск/пауза/стоп/seek медиа, Range 206/100 байт, запрет IPC из окна
|
||||
показа, сопряжение через браузерный UI, оба пульта, отзыв и открытие окна без
|
||||
автоповтора. Это синтетический дисплей и браузер Electron, не проектор/телефон.
|
||||
Проверено, что превышение лимита WebSocket закрывает соединение, не сервер.
|
||||
В sandbox LAN-тесту недоступен bind; PASS получен вне sandbox с временным портом.
|
||||
Headless в этой среде зависал/завершался SIGSEGV; GUI прошёл с тестовыми
|
||||
--no-sandbox --mute-audio --disable-gpu. В обычном запуске этих флагов нет.
|
||||
- Результат программного этапа: Electron + Vue/TypeScript/Vite, два изолированных
|
||||
окна, выбор внешнего дисплея, локальный протокол с Range, синтетические
|
||||
WAV/H.264+AAC, start/pause/stop/seek, подтверждённые статусы и замеры аудио/видео.
|
||||
По уточнению владельца LAN-сервер, сопряжение, мобильный UI и зависимости ws
|
||||
удалены. Телефон управляет через сервер сайта; desktop получает обновления
|
||||
в SCREEN-006. Полные игровые функции и сервер пока не переносились.
|
||||
- Проверка после уточнения: type-check, lint, lint:css, build, 4 теста и GUI smoke —
|
||||
PASS. В smoke проверено отсутствие LAN-панели и методов lan/approve в preload,
|
||||
локальные play/pause/stop/seek, Range и открытие окна без автоповтора.
|
||||
Frontend-стандарт прочитан; ручное ревью diff выполнено, нарушений не найдено.
|
||||
- Сборки: Linux/Windows x64/ARM64 пересобраны без LAN; содержимое всех четырёх
|
||||
app.asar сверено с проверенным кодом. LAN-модули, ws и тесты отсутствуют в поставке;
|
||||
release/SHA256SUMS обновлён. macOS нужно собирать на Mac или ручным workflow.
|
||||
- Среда smoke: Manjaro Linux x86_64, Intel Core Ultra 7 255H, около 32 ГБ RAM;
|
||||
Node 26.8.1, Electron 42.11.15. Программные единичные замеры не считаются
|
||||
аппаратной приёмкой или подтверждением p95 ≤150 мс.
|
||||
- Ограничения: npm audit --omit=dev — 0 уязвимостей; полный audit — 20 в цепочках
|
||||
инструментов разработки (8 moderate, 12 high). Дедупликация стенда хранит последние
|
||||
4096 команд; долговременная семантика — SCREEN-004. HTTP только в доверенной сети.
|
||||
Node 26.8.1, Electron 42.11.15. Единичные программные замеры не подтверждают
|
||||
аппаратную приёмку или физический p95 ≤150 мс. Headless зависал/падал; GUI smoke
|
||||
проходил с тестовыми --no-sandbox --mute-audio --disable-gpu.
|
||||
- Ограничения: дедупликация стенда хранит последние 4096 команд; долговременная
|
||||
семантика — SCREEN-004. Привязка игры и серверное управление — SCREEN-006.
|
||||
- Следующий шаг: получить аппаратные результаты владельца по
|
||||
docs/SCREEN-001_ACCEPTANCE.md на всех шести вариантах (Linux — на обоих
|
||||
дистрибутивах), включая реальные iPhone/Safari и Android/Chrome, проектор,
|
||||
дистрибутивах), включая проектор,
|
||||
физический звук/кадр и 30 запусков для каждого формата/аудиовыхода. macOS-сборки
|
||||
подготовить на Mac или ручным workflow builds.yml. До результатов всей матрицы
|
||||
задача остаётся IN_PROGRESS, SCREEN-002 не начинается.
|
||||
@@ -139,22 +132,27 @@ SCREEN-001 имеет статус IN_PROGRESS; остальные задачи
|
||||
- Цель: выбирать доступную организатору игру онлайн и сохранять автономность показа.
|
||||
- Объём: существующая авторизация, список игр, загрузка пакета, снимок результатов,
|
||||
индикатор связи, проверка новой версии материалов, синхронизация статуса показа.
|
||||
Телефон отправляет команды существующему серверу сайта; desktop получает
|
||||
обновления через экранную сессию и GetScreenState (существующий polling 1000 мс).
|
||||
Серверные команды применяются локальным контроллером к подготовленным файлам;
|
||||
повторная версия не применяется дважды. Прямого подключения телефона к desktop нет.
|
||||
Уточнить минимальный серверный контракт по фактической реализации.
|
||||
- Готовность: готовая игра открывается после перезапуска офлайн; секреты хранятся
|
||||
средствами ОС, не в пакете; истечение сессии не обрывает уже подготовленный
|
||||
локальный показ; обновления активируются явно. Результаты имеют время снимка.
|
||||
Возврат сети не повторяет старые команды; серверные команды не перехватывают desktop-показ.
|
||||
Возврат сети не повторяет устаревшие команды поверх локальных действий.
|
||||
При доступном сервере телефон управляет показом через существующий сайт; без сети
|
||||
воспроизведение и пульт компьютера продолжают работать.
|
||||
- Проверка: сценарии offline/reconnect/истёкшей сессии/обновления игры; проверки
|
||||
затронутых репозиториев; существующий браузерный экран продолжает работать.
|
||||
- Не входит: полноценная офлайн-игра и управление desktop через интернет.
|
||||
Телефон по LAN реализуется в SCREEN-009; сайт не перехватывает локальное управление.
|
||||
- Не входит: полноценная офлайн-игра, LAN-сервер и отдельный мобильный пульт desktop.
|
||||
- Следующий шаг: сверить auth flow и модель сессий; зафиксировать правила
|
||||
локального владения показом и отображения статуса на сервере.
|
||||
|
||||
## SCREEN-007 — Устойчивость на площадке
|
||||
|
||||
- Статус: `TODO`
|
||||
- Зависимости: SCREEN-005, SCREEN-006, SCREEN-009.
|
||||
- Зависимости: SCREEN-005, SCREEN-006.
|
||||
- Цель: переживать типовые сбои без потери материалов и случайного показа пульта.
|
||||
- Объём: отключение/возврат дисплея, смена разрешения и fullscreen, проверка
|
||||
аудиовыхода каждой ОС, предотвращение сна во время показа, восстановление окон и
|
||||
@@ -191,24 +189,3 @@ SCREEN-001 имеет статус IN_PROGRESS; остальные задачи
|
||||
- Следующий шаг: выбрать минимальный инструмент упаковки для всей матрицы,
|
||||
проверить среду сборки и наличие сертификатов, собрать артефакты и подготовить
|
||||
инструкции для аппаратной приёмки.
|
||||
|
||||
## SCREEN-009 — Полный пульт телефона по локальной сети
|
||||
|
||||
- Статус: `TODO`
|
||||
- Зависимость: SCREEN-005; использовать техническую основу SCREEN-001.
|
||||
- Цель: управлять показом с компьютера и телефона одновременно без интернета.
|
||||
- Объём: общий Vue-пульт и типы команд внутри screen, HTTP и WebSocket на выбранном
|
||||
IPv4-интерфейсе; код сопряжения и подтверждение на компьютере, отзыв сеансов;
|
||||
все режимы, шаги, таймер, музыка, громкость и перемотка. Загрузка игры и дисплей —
|
||||
только на компьютере. Доверенная Wi-Fi/LAN или точка доступа; HTTP без шифрования.
|
||||
- Готовность: основной процесс последовательно применяет команды обоих пультов,
|
||||
рассылает актуальное состояние; повтор команды не применяется дважды. Потеря
|
||||
связи блокирует телефон, но не показ; переподключение не повторяет команды.
|
||||
Доступ без сопряжения запрещён; отключение пульта отзывает сеансы.
|
||||
- Проверка: тесты валидации, сопряжения, отзыва, повторных/одновременных команд и
|
||||
восстановления; type-check, lint, lint:css, build; Safari iPhone и Chrome Android,
|
||||
блокировка телефона, потеря Wi-Fi, работа без интернета. Задержки телефона отдельно.
|
||||
- Не входит: публичная сеть площадки, сертификаты, управление через интернет,
|
||||
скачивание пакетов и настройка дисплеев с телефона.
|
||||
- Следующий шаг: после SCREEN-005 подключить полный интерфейс к локальному
|
||||
контроллеру через общий транспортный контракт и пройти мобильную приёмку.
|
||||
|
||||
Reference in New Issue
Block a user