up
This commit is contained in:
@@ -1,20 +1,21 @@
|
||||
# Задачи приложения площадки
|
||||
|
||||
Все задачи имеют статус TODO; выполнение ещё не начато. План и общие ограничения:
|
||||
SCREEN-001 имеет статус IN_PROGRESS; остальные задачи — TODO. План и общие ограничения:
|
||||
[PLAN.md](PLAN.md). Идентификаторы независимы от ED-* в корневом списке.
|
||||
Обновлять статус и результат здесь; завершённые записи переносить в
|
||||
`COMPLETED_TASKS.md` в этом каталоге после проверки. Коммиты и push не выполнять.
|
||||
|
||||
## SCREEN-001 — Проверить основу Electron на macOS, Windows и Linux
|
||||
|
||||
- Статус: `TODO`
|
||||
- Статус: `IN_PROGRESS`
|
||||
- Зависимости: нет; первая задача.
|
||||
- Цель: подтвердить выбор технологии на всех шести вариантах ОС/архитектуры
|
||||
из PLAN.md до переноса функций проекта. Все задачи приложения учитывают эту
|
||||
матрицу; Linux проверяется на Ubuntu 24.04 LTS и Debian 13.
|
||||
- Объём: минимальный Electron + Vue + TypeScript + Vite; пульт и отдельное окно
|
||||
показа; выбор дисплея; синтетические локальные аудио/видео; IPC start/pause/stop
|
||||
и seek; безопасный preload и локальная выдача медиа с Range. Подготовить сборки
|
||||
и seek; безопасный preload и локальная выдача медиа с Range; техническое
|
||||
подключение браузера телефона по LAN с сопряжением и отправкой команды. Подготовить сборки
|
||||
для всех шести вариантов, инструкцию получения тестовых медиа и аппаратной
|
||||
проверки. Бинарные тестовые файлы не коммитить.
|
||||
- Готовность: запуск на всех шести вариантах; пульт остаётся на основном экране,
|
||||
@@ -27,10 +28,39 @@
|
||||
звук/кадр и отключённая сеть. Проверить кабель/USB и HDMI. Владелец выполняет
|
||||
аппаратные проверки по инструкции агента и передаёт результаты.
|
||||
- Не входит: сервер, авторизация, скачивание, полный пульт, публикация.
|
||||
- Следующий шаг: прочитать frontend-стандарт, создать минимальный проект с учётом
|
||||
всей матрицы и подготовить сборки/инструкцию. Доступность всех шести вариантов
|
||||
подтверждена владельцем; фактические конфигурации записать при проверке.
|
||||
Непройденные аппаратные проверки явно оставить открытыми.
|
||||
- Результат программного этапа (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. В обычном запуске этих флагов нет.
|
||||
- Среда 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 только в доверенной сети.
|
||||
- Следующий шаг: получить аппаратные результаты владельца по
|
||||
docs/SCREEN-001_ACCEPTANCE.md на всех шести вариантах (Linux — на обоих
|
||||
дистрибутивах), включая реальные iPhone/Safari и Android/Chrome, проектор,
|
||||
физический звук/кадр и 30 запусков для каждого формата/аудиовыхода. macOS-сборки
|
||||
подготовить на Mac или ручным workflow builds.yml. До результатов всей матрицы
|
||||
задача остаётся IN_PROGRESS, SCREEN-002 не начинается.
|
||||
|
||||
## SCREEN-002 — Выдать версионированный пакет показа
|
||||
|
||||
@@ -113,17 +143,18 @@
|
||||
- Готовность: готовая игра открывается после перезапуска офлайн; секреты хранятся
|
||||
средствами ОС, не в пакете; истечение сессии не обрывает уже подготовленный
|
||||
локальный показ; обновления активируются явно. Результаты имеют время снимка.
|
||||
Возврат сети не повторяет старые команды; телефон не перехватывает desktop-показ.
|
||||
Возврат сети не повторяет старые команды; серверные команды не перехватывают desktop-показ.
|
||||
- Проверка: сценарии offline/reconnect/истёкшей сессии/обновления игры; проверки
|
||||
затронутых репозиториев; существующий браузерный экран продолжает работать.
|
||||
- Не входит: полноценная офлайн-игра и удалённое управление desktop с телефона.
|
||||
- Не входит: полноценная офлайн-игра и управление desktop через интернет.
|
||||
Телефон по LAN реализуется в SCREEN-009; сайт не перехватывает локальное управление.
|
||||
- Следующий шаг: сверить auth flow и модель сессий; зафиксировать правила
|
||||
локального владения показом и отображения статуса на сервере.
|
||||
|
||||
## SCREEN-007 — Устойчивость на площадке
|
||||
|
||||
- Статус: `TODO`
|
||||
- Зависимости: SCREEN-005, SCREEN-006.
|
||||
- Зависимости: SCREEN-005, SCREEN-006, SCREEN-009.
|
||||
- Цель: переживать типовые сбои без потери материалов и случайного показа пульта.
|
||||
- Объём: отключение/возврат дисплея, смена разрешения и fullscreen, проверка
|
||||
аудиовыхода каждой ОС, предотвращение сна во время показа, восстановление окон и
|
||||
@@ -160,3 +191,24 @@
|
||||
- Следующий шаг: выбрать минимальный инструмент упаковки для всей матрицы,
|
||||
проверить среду сборки и наличие сертификатов, собрать артефакты и подготовить
|
||||
инструкции для аппаратной приёмки.
|
||||
|
||||
## 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