From 62d56962e0b947b8bc1df904fe918790f3ea3fc0 Mon Sep 17 00:00:00 2001 From: Fedorov Vladimir Date: Sat, 17 Oct 2026 23:56:33 +0700 Subject: [PATCH] up --- README.md | 8 +++++--- TASKS.md | 6 ++++++ docs/SCREEN-008_RESULTS.md | 25 +++++++++++++++++++++++++ docs/USER_GUIDE.md | 6 +++--- electron/main.ts | 7 ++++++- 5 files changed, 45 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 41d1551..c6d9003 100644 --- a/README.md +++ b/README.md @@ -36,9 +36,9 @@ SCREEN-008 остаётся IN_PROGRESS до сборок macOS и аппара В исходниках после упаковки кандидата согласованы названия режимов с сайтом, переведены статусы игр и добавлен отдельный статус назначения звука сервером. -Игра для подключения управления явно указана рядом с кнопкой. Архивы 0.2.0-rc.1 -не пересобирались и пока не содержат этих исправлений; руководство описывает -текущие исходники. Для проверки изменений используйте запуск из исходников ниже. +Игра для подключения управления явно указана рядом с кнопкой. Linux x64 0.2.0-rc.1 +пересобран с этими изменениями, исправлениями ревизии и запуском под XWayland. +Остальные архивы ещё содержат прежний код; руководство описывает текущие исходники. Новые задачи: `Новая задача: <описание>`. Commit и push выполняет только пользователь. Вложенные `.git` не изменять. @@ -57,6 +57,8 @@ Commit и push выполняет только пользователь. Вло Нужны Node.js 24.15+ и ffmpeg с libx264 в PATH. В Linux приложение использует X11; для сессии Wayland нужен XWayland, чтобы размещать показ на выбранном мониторе. +В Wayland-сессии отключается GPU-композиция окон: на текущем Manjaro-стенде +Electron/ANGLE падает при создании EGL-поверхности. Отключать sandbox для запуска не нужно. ```sh npm ci diff --git a/TASKS.md b/TASKS.md index e596f6e..7d2a095 100644 --- a/TASKS.md +++ b/TASKS.md @@ -229,6 +229,12 @@ SCREEN-009 (LAN-пульт) отменена владельцем; ID не пе сброс прокрутки неизменной таблицы и пропуск перестановки треков. 77 тестов, типы, линтеры, сборка, GUI smoke и проверка diff/стандарта — PASS; подробности в COMPLETED_TASKS.md. Архивы не пересобирались; аппаратная приёмка остаётся открытой. +- Исправление запуска SCREEN-001/008 (2026-10-17): воспроизведён SIGSEGV + GPU-процесса в ANGLE/EGL на Manjaro KDE Wayland/XWayland. Для Wayland-сессий + Linux отключена только GPU-композиция окон. Обычный запуск исходников с чистым + профилем подтверждён отрисованным пультом без падений GPU. 77 тестов, типы, + линтеры и GUI smoke без no-sandbox/disable-gpu — PASS. Linux x64 пересобран; + подробности в docs/SCREEN-008_RESULTS.md. Аппаратная приёмка остаётся открытой. - Открыто: получить macOS x64/arm64 через workflow после commit/push владельцем; выполнить аппаратную матрицу, включая оба Linux-дистрибутива, час офлайн, проектор/звук/телефон и физические замеры на M1. Статус IN_PROGRESS до получения diff --git a/docs/SCREEN-008_RESULTS.md b/docs/SCREEN-008_RESULTS.md index bff7150..dd1e30c 100644 --- a/docs/SCREEN-008_RESULTS.md +++ b/docs/SCREEN-008_RESULTS.md @@ -83,6 +83,31 @@ macOS нет. Этот стенд не подтверждает Ubuntu/Debian, Прежние ограничения GUI-стенда сохраняются: Linux x64, синтетический внешний дисплей, тестовые no-sandbox/mute-audio/disable-gpu. Новых аппаратных результатов нет. +## Исправление запуска на Manjaro XWayland (2026-10-17) + +- Обычный запуск исходников с чистым профилем воспроизвёл три падения 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 агент не выполнял. + ## Отчёт одного стенда - Дата, версия приложения и SHA-256 архива: diff --git a/docs/USER_GUIDE.md b/docs/USER_GUIDE.md index 5780a91..0857617 100644 --- a/docs/USER_GUIDE.md +++ b/docs/USER_GUIDE.md @@ -5,9 +5,9 @@ Телефон отправляет команды через существующий сервер сайта; без сети управляйте показом с компьютера. -Руководство описывает текущие исходники. Ранее собранные архивы 0.2.0-rc.1 -ещё содержат прежние подписи режимов и кнопки подключения и не отображают -новый отдельный статус назначения звука. Для этих исправлений нужна новая сборка. +Руководство описывает текущие исходники и пересобранный Linux x64 0.2.0-rc.1. +Остальные архивы ещё содержат прежние подписи режимов и кнопки подключения +и не отображают новый отдельный статус назначения звука. Перед мероприятием используйте [чек-лист площадки](EVENT_CHECKLIST.md). diff --git a/electron/main.ts b/electron/main.ts index dfe5cb9..0127fe2 100644 --- a/electron/main.ts +++ b/electron/main.ts @@ -24,7 +24,12 @@ import { packageMediaResponse } from './package-media.js' import type { HostInfo } from '../src/types/screen.js' // Native Wayland запрещает размещение окна на выбранном дисплее по координатам. -if (process.platform === 'linux') app.commandLine.appendSwitch('ozone-platform', 'x11') +if (process.platform === 'linux') { + app.commandLine.appendSwitch('ozone-platform', 'x11') + // Electron 42/ANGLE падает при создании EGL-поверхности в XWayland на этом стенде. + if (process.env.XDG_SESSION_TYPE === 'wayland' || process.env.WAYLAND_DISPLAY) + app.commandLine.appendSwitch('disable-gpu-compositing') +} app.commandLine.appendSwitch('autoplay-policy', 'no-user-gesture-required') protocol.registerSchemesAsPrivileged([ {