156 lines
15 KiB
Markdown
156 lines
15 KiB
Markdown
# 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 и весь пользовательский профиль.
|