up
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Задачи приложения площадки
|
||||
|
||||
SCREEN-001 и SCREEN-004 имеют статус IN_PROGRESS; SCREEN-002, SCREEN-003, SCREEN-005 и SCREEN-006
|
||||
SCREEN-001, SCREEN-004 и SCREEN-007 имеют статус IN_PROGRESS; SCREEN-002, SCREEN-003, SCREEN-005 и SCREEN-006
|
||||
завершены и перенесены в архив; остальные активные задачи — TODO.
|
||||
SCREEN-009 (LAN-пульт) отменена владельцем; ID не переиспользовать.
|
||||
Управление телефоном через сервер входит в SCREEN-006. План и общие ограничения:
|
||||
@@ -111,7 +111,7 @@ SCREEN-009 (LAN-пульт) отменена владельцем; ID не пе
|
||||
|
||||
## SCREEN-007 — Устойчивость на площадке
|
||||
|
||||
- Статус: `TODO`
|
||||
- Статус: `IN_PROGRESS`
|
||||
- Зависимости: SCREEN-005, SCREEN-006 (DONE, см. COMPLETED_TASKS.md).
|
||||
- Цель: переживать типовые сбои без потери материалов и случайного показа пульта.
|
||||
- Объём: отключение/возврат дисплея, смена разрешения и fullscreen, проверка
|
||||
@@ -124,8 +124,43 @@ SCREEN-009 (LAN-пульт) отменена владельцем; ID не пе
|
||||
переходником и звуком по кабелю/USB и HDMI; тесты восстановления состояния;
|
||||
проверки приложения. Результаты аппаратных проверок передаёт владелец.
|
||||
- Не входит: бесшовный аварийный резервный компьютер и несколько проекторов.
|
||||
- Следующий шаг: проверить события Electron display/window и определить
|
||||
минимальную безопасную реакцию на отключение внешнего экрана.
|
||||
- Программный результат (2026-10-17): общий аварийный обработчик отключения/
|
||||
превращения дисплея в основной, изменения bounds/scaleFactor/rotation, выхода
|
||||
из fullscreen, suspend ОС, падения/зависания renderer и ошибки основного документа.
|
||||
Медиа останавливаются, работающий таймер сохраняет точный остаток на паузе;
|
||||
возврат дисплея/пробуждение не открывают показ. Обычная кнопка закрытия сохраняет
|
||||
прежнюю политику таймера. Изменения только workArea не прерывают показ.
|
||||
- Окна и питание: prevent-display-sleep удерживается всё время открытого показа,
|
||||
включая статичные сцены/паузу, освобождается при закрытии, сбое и before-quit.
|
||||
Native-закрытие завершается до создания нового окна; уничтожение отложено за
|
||||
пределы callback native-события, поздние события старого окна отклоняются.
|
||||
Пульт восстанавливает проверенные bounds/maximized в рабочей области основного
|
||||
дисплея; ID/label внешнего дисплея сохраняются отдельно в windows.json. Выбор
|
||||
предзаполняется только при точном совпадении и никогда не открывает показ сам.
|
||||
Выбранная игра восстанавливается существующим механизмом SCREEN-006.
|
||||
- Изоляция: показ использует отдельную непостоянную Electron session/renderer;
|
||||
обе сессии получают одинаковый локальный протокол, CSP и запреты разрешений.
|
||||
IPC-привилегии пульта не расширены. В UI добавлены причина закрытия, состояние
|
||||
блокировки сна и инструкция проверки системного аудиовыхода/HDMI.
|
||||
- Проверки: type-check, ESLint, Stylelint, 68 тестов (5 новых), сборка и GUI smoke —
|
||||
PASS. GUI проверяет удаление/возврат дисплея, bounds/scale/rotation, смену primary,
|
||||
suspend/resume, fullscreen-события, ошибку документа и зависание окна, сохранение
|
||||
настроек, отсутствие автопуска и старой серверной команды после аварии.
|
||||
Renderer действительно завершён SIGKILL после проверки отдельного PID; пульт
|
||||
сохранил работоспособность, показ открылся заново остановленным. Все 16 созданных
|
||||
блокировок освобождены ровно один раз, включая before-quit. git diff --check — PASS.
|
||||
- Ограничения стенда: Linux x64, один физический дисплей. В GUI synthetic=true:
|
||||
topology/питание и fullscreen-события подставлены, медиа и окна Electron настоящие.
|
||||
Native fullscreen используется только с реальным внешним дисплеем; иначе WM
|
||||
сам снимал fullscreen синтетического экрана. В раннем прогоне было native-падение
|
||||
Electron; исправлен порядок закрытия/повторного открытия. forcefullyCrashRenderer
|
||||
зависал до таймаута, поэтому окончательный тест завершает renderer через SIGKILL.
|
||||
Использованы тестовые no-sandbox/mute-audio/disable-gpu. Реальное предотвращение
|
||||
сна, проектор/аудиовыходы и вся матрица ОС/архитектур пока не проверены.
|
||||
Бэкенд, frontend, protobuf и зависимости не менялись; архивы не пересобирались.
|
||||
- Следующий шаг: выполнить docs/SCREEN-007_ACCEPTANCE.md на всей матрице с реальным
|
||||
проектором, переходником, USB/HDMI и передать аппаратные результаты. До этого
|
||||
оставить IN_PROGRESS, не переносить в COMPLETED_TASKS.md. Commit/push не выполнять.
|
||||
|
||||
## SCREEN-008 — Сборки всех платформ и приёмка
|
||||
|
||||
|
||||
Reference in New Issue
Block a user