This commit is contained in:
2026-10-17 18:25:04 +07:00
parent 701bca234e
commit d3683ac6cf
15 changed files with 124 additions and 691 deletions
+14 -21
View File
@@ -41,24 +41,21 @@ $env:ELECTRON_BUILDER_COMPRESSION_LEVEL='1'). Она меняет степень
Имена архивов включают ОС и архитектуру; release/ и тестовые медиа игнорируются Git.
## Результат программного этапа 17.10.2026
## Актуальность сборок
Собраны evening-detective-screen-0.1.0-linux-{x64,arm64}.tar.gz и
Windows-архивы evening-detective-screen-0.1.0-win-{x64,arm64}.zip в release/.
Контрольные суммы — release/SHA256SUMS. Содержимое app.asar всех четырёх вариантов
сверено с проверенным кодом; оба медиафайла присутствуют, тестовые модули исключены.
Готовый Linux x64-бинарник проверен на Manjaro: запуск UI/preload и Range — PASS.
Сборки macOS не выполнялись, workflow не запускался. Совместимость с целевыми ОС,
внешним оборудованием и мобильными браузерами остаётся открытой.
После удаления LAN-пульта архивы Linux/Windows x64/ARM64 пересобраны из текущего
кода. Содержимое app.asar сверено: LAN-модулей, ws и тестов в поставке нет.
Контрольные суммы обновлены в release/SHA256SUMS. Type-check, lint, lint:css,
build, 4 теста и GUI smoke — PASS, включая запуск кнопкой локального пульта.
Сборки macOS и workflow пока не выполнялись; аппаратная приёмка остаётся открытой.
## Автоматический smoke
После генерации медиа выполните npm run smoke в графической сессии. Проверка
использует синтетический второй дисплей и отдельное браузерное окно вместо телефона:
IPC, Range, запуск/пауза/стоп/seek, запрет IPC из окна показа, сопряжение через UI,
команды обоих пультов, отзыв доступа и отсутствие автоповтора при открытии окна.
Для тестового браузера используется прямое LAN-соединение без системного прокси.
Это не проверка реального проектора или мобильного браузера.
использует синтетический второй дисплей: IPC, Range, запуск/пауза/стоп/seek,
запрет IPC из окна показа и отсутствие автоповтора при открытии окна. Дополнительно
проверяется отсутствие LAN-методов в preload и сетевых параметров в данных пульта.
Это не проверка реального проектора. Серверное управление проверяется в SCREEN-006.
В ограниченной среде агента запуск выполнен с тестовыми флагами --no-sandbox
--mute-audio --disable-gpu. В обычном запуске npm run dev этих флагов нет.
@@ -88,17 +85,13 @@ npm run media:generate использует ffmpeg:
4. Для каждого формата выполнить минимум 30 запусков подготовленного медиа отдельно
для кабеля/USB и HDMI. Записать медиану/p95 из пульта для выбранного формата.
Холодный старт учитывать отдельно. Замеры последних 400 запусков хранятся в RAM
и разделены по формату и источнику команды. После перезапуска они сбрасываются.
и разделены по формату. После перезапуска они сбрасываются.
5. Проверить pause/stop и seek на 10, 30, 59 с как во время воспроизведения, так и
на паузе. Несколько раз быстро чередовать аудио/видео, пуск/паузу/стоп:
звук не должен дублироваться; итоговый статус соответствует проигрывателю.
6. Отключить интернет; локальное воспроизведение и пульт остаются работоспособными.
7. В своей Wi-Fi/LAN или точке доступа открыть адрес с компьютера на iPhone/Safari
и Android/Chrome. Проверить неверный код, ожидание подтверждения, управление с
обоих пультов, блокировку телефона, обрыв и восстановление Wi-Fi, отзыв доступа.
После восстановления не должна повторяться последняя команда. Снять отдельные
замеры телефона; отображаемая задержка НЕ включает путь телефон → компьютер.
8. Отключить дисплей: окно показа закрывается, пульт остаётся доступен. Подключить
7. Отключить дисплей: окно показа закрывается, пульт остаётся доступен. Подключить
снова, открыть показ явно: старое воспроизведение не должно возобновиться.
Сценарий выполнить для macOS x64/ARM64 и Windows 11 x64/ARM64; для Linux x64/ARM64
@@ -123,7 +116,7 @@ npm run media:generate использует ffmpeg:
- дисплей/переходник/разрешение; аудиовыход; версии ffmpeg и параметры файлов;
- холодный старт; 30 исходных значений каждого формата/выхода; медиана/p95;
- отдельно программная и физическая задержка, способ измерения и погрешность;
- результаты pause/seek/fullscreen/offline/LAN/reconnect/отзыва;
- результаты pause/seek/fullscreen/offline/переподключения дисплея;
- ошибки, ограничения и итог PASS/FAIL.
Пока не пройдена вся матрица и не получены физические измерения M1, SCREEN-001