Files
evening_detective_screen/docs/SCREEN-008_RESULTS.md
T
2026-10-18 00:49:38 +07:00

156 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SCREEN-008 — Результаты приёмки 0.2.0-rc.1
«Собран» не означает аппаратный PASS. Отчёты владельца пока не получены.
| Стенд | Артефакт | Установка | Реальный проектор/звук | Полный час офлайн | Обновление/сеть/сон | Физическая медиана/p95 |
| --- | --- | --- | --- | --- | --- | --- |
| macOS 13+ Intel | Ожидается сборка на Mac | Не проверено | Не проверено | Не проверено | Не проверено | Нет замеров |
| macOS 13+ Apple Silicon | Ожидается сборка на Mac | Не проверено | Не проверено | Не проверено | Не проверено | M1 16 ГБ: цель p95 ≤150 мс, нет замеров |
| Windows 11 x64 | Собран, проверен архив | Не проверено | Не проверено | Не проверено | Не проверено | Нет замеров |
| Windows 11 ARM64 | Собран, проверен архив | Не проверено | Не проверено | Не проверено | Не проверено | Нет замеров |
| Ubuntu 24.04 x64 | Собран, проверен архив | Не проверено | Не проверено | Не проверено | Не проверено | Нет замеров |
| Debian 13 x64 | Тот же Linux x64 архив | Не проверено | Не проверено | Не проверено | Не проверено | Нет замеров |
| Ubuntu 24.04 ARM64 | Собран, проверен архив | Не проверено | Не проверено | Не проверено | Не проверено | Нет замеров |
| Debian 13 ARM64 | Тот же Linux ARM64 архив | Не проверено | Не проверено | Не проверено | Не проверено | Нет замеров |
## Программная проверка 2026-10-17
Стенд: Manjaro Linux x64, один физический дисплей. Node.js 26.8.1,
Electron 42.11.15, electron-builder 26.15.3, ffmpeg n9.0.1.
Версия приложения 0.2.0-rc.1. Сборка из рабочей копии (`dirty: true`),
Git revision `1d4028b18382983196da94d7f2a5762d23d0150f`.
- `npm run type-check`, ESLint, Stylelint, 73 теста — PASS.
- `npm run dist -- --linux --win --x64 --arm64 --publish never` — PASS.
Все четыре архива распакованы и проверены: ELF/PE архитектура,
разрешённый состав app.asar, версия приложения и хеши включённых файлов.
- Артефакты: `release/evening-detective-screen-0.2.0-rc.1-{linux-x64,linux-arm64}.tar.gz`
и `release/evening-detective-screen-0.2.0-rc.1-{win-x64,win-arm64}.zip`.
У каждого — `.build-info.json`; текущие контрольные суммы:
`release/SHA256SUMS-linux-arm64_linux-x64_win-arm64_win-x64`.
Архивы 0.1.0 и прежний SHA256SUMS не относятся к кандидату.
- Упакованный Linux x64: обновление с сохранённого стенда 0.1.0 и два запуска
кандидата на изолированном профиле — PASS. Два офлайн-файла, выбранный пакет,
снимок результатов и настройки сохранены; Range работает; автоматического
открытия показа/звука/таймера нет. Проверены начало/конец диагностического журнала.
- GUI smoke — PASS: восемь режимов, 11 превью, локальные WAV/H.264 и Range,
независимая музыка, существующее серверное управление и запреты IPC.
Проверены аварии дисплея/питания/окна, настоящее завершение renderer и повторное
открытие без автопуска; все 16 блокировок сна освобождены. Дисплей синтетический,
события топологии/fullscreen/сна подставлены; флаги no-sandbox/mute-audio/
disable-gpu использованы только для теста. Физические задержки не измерялись.
- Повторный packaged smoke после исправления завершения тестового процесса — PASS.
`sha256sum -c SHA256SUMS-linux-arm64_linux-x64_win-arm64_win-x64` — четыре OK.
`git diff --check` — PASS.
Windows-архивы здесь не запускались. GitHub Actions не запускался, артефактов
macOS нет. Этот стенд не подтверждает Ubuntu/Debian, реальный проектор,
системный аудиовыход, сон, час офлайн и физическую задержку на M1.
## Начало аппаратной приёмки Linux (2026-10-17)
- Повторная проверка SHA-256 четырёх архивов — OK.
- Доступный стенд: Manjaro x86_64, KDE Wayland/XWayland. `kscreen-doctor -o`
обнаружил только встроенный eDP-1: 3072×1920, масштаб 1.5; внешнего
дисплея/проектора на момент проверки нет.
- Запущен `release/linux-unpacked/evening-detective-screen` без тестовых флагов,
с отдельным постоянным профилем `release/acceptance-profile-linux-x64`.
Журнал подтвердил app-start версии 0.2.0-rc.1 / Electron 42.11.15 / linux x64.
- В stderr: ошибка инициализации VAAPI i965 и три сообщения о падении
GPU-процесса с exit_code=139. Основной процесс не завершился на момент
наблюдения, но видимость/работоспособность пульта владельцем ещё не подтверждены.
Обычный запуск пока не отмечается PASS; тестовые флаги для обхода не добавлялись.
- Ожидается подключение реального проектора и подтверждение интерфейса владельцем.
Физический звук, час офлайн, телефон, сон, переподключение и замеры не выполнены.
Этот Manjaro-стенд не заменяет Ubuntu/Debian из обязательной матрицы.
## Проверка согласования интерфейса (2026-10-17)
Проверены текущие исходники после упаковки кандидата. Архивы 0.2.0-rc.1
не пересобирались и не включают следующие изменения интерфейса.
- Названия восьми режимов согласованы с сайтом, статусы игр показаны по-русски.
- Подключение явно указывает локально выбранную игру, независимо от игры
в серверном списке загрузки; отключение не обещает отвязку на сервере.
- Отдельно отображается подтверждённое сервером назначение звука.
Локальный mute его не изменяет; отсутствие текущего опроса явно обозначено.
- Type-check, ESLint, Stylelint, 74 теста, сборка, GUI smoke — PASS.
Новый GUI-сценарий выбирает серверную игру для подготовки при другом локальном
пакете, проверяет неизменность цели управления и перевод статуса. После выбора
нового локального пакета цель меняется; серверное назначение звука видно в UI.
- Проверены 28 ссылок документации и git diff --check — PASS.
Прежние ограничения GUI-стенда сохраняются: Linux x64, синтетический внешний
дисплей, тестовые no-sandbox/mute-audio/disable-gpu. Новых аппаратных результатов нет.
## Диагностика запуска на Manjaro XWayland (2026-10-17)
Вывод о видимости окна ниже опровергнут 2026-10-18: снимок страницы и
isVisible() подтвердили внутреннее состояние Electron, но окно не было
зарегистрировано в KWin. Прежний обход GPU-композиции удалён; исправление ниже.
- Обычный запуск исходников с чистым профилем воспроизвёл три падения GPU-процесса
с exit_code=139. Coredump указывает на libGLESv2/ANGLE, EGL_CreateWindowSurface
и eglCreateWindowSurface. Отдельная ошибка VAAPI i965 не является установленной
причиной: отключение аппаратного декодирования видео не устранило падения.
- OpenGL через use-angle=gl также не помог. Отключение только GPU-композиции
устранило падения. В main этот обход включён для Linux при Wayland-сессии;
размещение окон по-прежнему через X11/XWayland. Sandbox не отключается.
- Обычный запуск исправленных исходников и Linux x64 из linux-unpacked — PASS:
только временный профиль и localhost debugger для диагностики, без no-sandbox,
disable-gpu и mute-audio. Пульт отрисован, проверен снимок; падений GPU нет.
- 77 тестов, type-check, ESLint, Stylelint, сборка и GUI smoke — PASS. В smoke
использован только mute-audio, внешний дисплей синтетический; все восемь режимов,
WAV/H.264, серверное управление и восстановление после падения renderer прошли.
- Linux x64 0.2.0-rc.1 пересобран: проверены состав приложения, архитектура,
хеши и распакованный архив. SHA-256 архива:
`f8c35174057d7dec6609825517617c64d75f82bd29874a8b88118563b07d7236`.
Обновлены build-info, SHA256SUMS-linux-x64 и запись Linux x64 в общем manifest.
Остальные архивы не пересобирались; в них остаётся прежний код.
- Запуск на этом компьютере подтверждён; физический проектор, системный звук,
аппаратный p95, час офлайн и остальные ОС по-прежнему не подтверждены.
SCREEN-001/008 остаются IN_PROGRESS. Diff проверен вручную по применимому
стандарту; нарушений не найдено. Коммиты и push агент не выполнял.
## Исправление невидимого окна (2026-10-18)
- Без раннего X11-флага Electron возвращал native handle `1` и isVisible=true,
но `_NET_CLIENT_LIST` KWin оставался пустым. DOM пульта был загружен. Это
объясняет ложноположительные прежние проверки снимком страницы и GUI smoke.
- С CLI-флагом `--ozone-platform=x11` до запуска процесса native handle стал
настоящим X11 ID `0x1200004`; тот же ID появился в `_NET_CLIENT_LIST`.
Пульт загружен, падений GPU и XGetWindowAttributes нет, GPU не отключён.
- Причина: Electron выбирает Ozone до main.js. Поздний appendSwitch менял
параметры дочернего GPU, сохраняя Wayland-окно основного процесса.
[Порядок инициализации Electron 42](https://github.com/electron/electron/blob/v42.0.0/shell/browser/electron_browser_main_parts.cc).
- npm dev/smoke/acceptance теперь запускают Electron через scripts/start.cjs,
передающий X11 заранее только на Linux и сохраняющий код завершения процесса.
Обычный Linux-запуск без раннего X11 перезапускается с ним до создания окон.
Отключение GPU-композиции и поздний appendSwitch удалены; sandbox сохранён.
- 77 тестов, type-check, ESLint, Stylelint, сборка и GUI smoke с mute-audio — PASS.
В smoke добавлена проверка native X11 ID; внешний дисплей синтетический.
Полный diff проверен вручную по применимому стандарту; нарушений не найдено.
- Именно `npm run dev` запущен на обычном профиле: KWin зарегистрировал окно
`0x1200004`. Linux x64 пересобран, состав и распакованный архив проверены;
обновлены build-info, SHA256SUMS-linux-x64 и запись в общем manifest.
Остальные архивы не пересобирались.
- SCREEN-001/008 остаются IN_PROGRESS: реальный проектор, системный звук,
аппаратный p95, час офлайн и матрица ОС не подтверждены. Коммитов и push нет.
## Отчёт одного стенда
- Дата, версия приложения и SHA-256 архива:
- ОС/версия/архитектура; CPU/RAM:
- Дисплей/проектор, разрешение/масштаб, переходник; для Linux X11/XWayland:
- Аудиовыходы (кабель/USB/HDMI) и форматы:
- Предупреждения неподписанного запуска и результат установки:
- Подготовка/восемь режимов/музыка/таймер/результаты:
- Телефон Safari iPhone / Chrome Android:
- Час работы офлайн; отключение и возврат сети:
- Переподключение дисплея/fullscreen/сон/перезапуск:
- Замена приложения с сохранением профиля:
- 30 физических пусков каждого формата/выхода; медиана/p95:
- Сбои и непройденные пункты; приложенные diagnostic*.jsonl:
Не прикладывать пароли, токены, файл credentials.bin и весь пользовательский профиль.