Add packaged per-camera X4 wake and preview recovery
This commit is contained in:
@@ -1259,3 +1259,136 @@ trigger/retry/preview restore ещё не реализованы; immediate warm
|
||||
REPLUG04 не исправлен. Camera-side Wakeup On остаётся явной предпосылкой.
|
||||
Installed Node0.8.19/X40.1.3-3 сохранены; clean Ubuntu и несколько циклов
|
||||
ещё не квалифицированы. Новых OS packages/services/permissions не добавляли.
|
||||
|
||||
### REC01 / B15 — автоматическое восстановление, 10.09.2026
|
||||
|
||||
Intent после разрешения владельца «Погнали дальше»: model0.1.3-7 добавляет
|
||||
per-instance recovery intent, отдельный fixed root wake helper, default-off
|
||||
настройку в общей карточке Core/Node и возврат только preview. Полный контракт,
|
||||
границы команд, OS ownership и rollback в docs15. Camera-side Wakeup On
|
||||
остаётся явной предпосылкой. Установка сначала versioned package и Node bundle,
|
||||
никаких ad-hoc изменений Ubuntu. Чтение10:40:23 UTC: Node0.8.19/X40.1.3-3,
|
||||
три действующие службы active; RAM available5371MiB,swap0.
|
||||
|
||||
16 новых synthetic recovery/helper tests прошли локально. Первый локальный
|
||||
запуск выявил только ошибку тестового mock root ownership в двух случаях;
|
||||
исправлен fixture, повтор16/16 passed. Производственный trust check сохранён.
|
||||
B15 source0bcd3f3e04251f27f959d1ce,58346786 bytes, SHA-256
|
||||
697a553d3564fa3b2e8bcf8e3a3cd098983c14ebcb130a071fe8085ae02e6885.
|
||||
Штатный versioned build на той же Ubuntu:1GiB/180CPU s/nice10, без SDK/device
|
||||
access/install. Установленные службы/пакет не меняются во время квалификации.
|
||||
|
||||
B15 complete10:43:08.331946–10:43:31.874127 UTC, monotonic335296.213035555,
|
||||
duration23.542184s;75 tests passed4.792s. Model0.1.3-7,
|
||||
revision45e14de38a278914eedf5cbb,58210794 bytes,SHA-256
|
||||
96ce6b52fa72d79ec6f8b0d13bc2af53afda61077b40a3358a3d145295a62d19.
|
||||
Result archive5ee6bc007f5c6436dbc2196f7baf1c15ebc8954fa0e4514e46cc53f06013e4f0
|
||||
скачан, entries/hash/package проверены. Core fleet31 tests passed.
|
||||
Readback10:44:29.267748 UTC,Mac monotonic457549.378966166: Core operational,
|
||||
Rover006 online,X4 streaming/preview1/recording0. Private before.json SHA-256
|
||||
612b32bea4badd208f025d5089cdab73667677e13a095d895f96fedb8811484a.
|
||||
|
||||
N11 intent: Node0.8.20 с B15 и общей UI-настройкой, DG прежний8c53f73.
|
||||
Source d982b8d2bf3a390d6c70e3f3,2728 files,309752241 bytes,SHA-256
|
||||
9762db8c6f47d318036e4ab84c04ad56baa50507945a58e8da3227a22abb3a35.
|
||||
Штатный Linux builder на той же Mini,3GiB/150%CPU/256tasks/nice10,
|
||||
sequential DG/Node/Core tests и builds. Это сборка, не установка; SDK/USB/SD
|
||||
не вызываются. Перед дальнейшей штатной подготовкой preview будет остановлен
|
||||
через Core при подтверждённом recording0; новые installed versions пока не заявлены.
|
||||
|
||||
N11 complete10:46:47.198735–10:55:50.833998 UTC,monotonic335515.079830142,
|
||||
duration543.635276s, cgroup memory peak3221225472 bytes (3GiB cap).
|
||||
DG build/typecheck/registry/loading/catalog, Node UI tests/build, Go race tests
|
||||
и binary, Core architecture/typecheck/819 tests/build прошли. Штатная политика
|
||||
builder исключает прежний Python/Rerun fixture, не входящий в X4 build inputs.
|
||||
Node0.8.20:168273420 bytes,SHA-256
|
||||
4d021c638493d9d2ffba8a90530f95c232def024164b56881f426f905f773072.
|
||||
Core dist:23067834 bytes,SHA-256
|
||||
48ec9b799d638ca52fc4e1a824793370e93398e7d58b8c2bb089c364190f8808.
|
||||
Result archive7280f5c8c89d881108579ad965272e18f9de2a01e68fef92f7250d2fce3551ca
|
||||
скачан, entries/artifacts проверены, private qualified-n11.
|
||||
|
||||
P11 owner release63be43462a32d49daca823fb,168292853 bytes,SHA-256
|
||||
ca8983dd94ea8257c81f83dd426b625f8b930c54d57c1ddcb15fea9935852824.
|
||||
Далее штатный --plan/--launch, локальная Ubuntu OS authentication при запросе.
|
||||
Node maintainer script штатно перезапускает Node и RealSense; владелец об этом
|
||||
уведомлён, D455 проверяется после установки. X4 остановлена через обычный
|
||||
Core preview.stop; STOP instrument SHA-256
|
||||
630f686cff11d270e9604b5c596b0e64710397df3cd94f0069134502ce156976.
|
||||
Model prepare instrumentfa2bd84fdacce3ab0e047d9a38ab23be870e67ff8b8a6895b4aee9642e0e3740
|
||||
будет вызван после подтверждения Node0.8.20. Никаких прямых SDK/root ремонтов.
|
||||
|
||||
REC01-Core intent: активировать квалифицированные N11 frontend bytes и Core
|
||||
action allowlist на единственном8000; текущая UI сохраняется в private
|
||||
qualified-n11/core-dist-before, прежний sensors.py изf164606 сохраняется рядом.
|
||||
Hash-bound activation instrument 36b01ca8ab5ba58a3ecb0e0503dbef4fa022e87bc807b09a8ec609108378c315.
|
||||
Проверить новый PID/health и прежние Core/Node/vehicle/binding identities;
|
||||
launchd restart наблюдается до55s, второй backend не создаётся.
|
||||
|
||||
REC01-Core complete11:01:10.985056–11:01:43.659067 UTC,
|
||||
Mac monotonic458551.0406405,duration32.674049916s. Один restart, PID46997→65164,
|
||||
Core operational, identity hashes до/после совпали. Private activation report
|
||||
SHA256d1e3d09dbb658f259f64bd201f5c8b7781560a8ac9bffb11fb5870eaea6427e0.
|
||||
|
||||
P11 первая попытка10:59:46.533139–10:59:53.546295 UTC,
|
||||
Ubuntu monotonic336294.414243883,duration7.013164s: APT package step100,
|
||||
версии не изменены. preinst требует /prepare-safe от RealSense; D455 была
|
||||
streaming, запись/playback отсутствовали. Штатный Core STOP выполнен
|
||||
11:04:43.002134–11:04:50.089636 UTC,Mac monotonic458763.058095666,
|
||||
fresh idle подтверждён. Private report SHA256
|
||||
9d6716fde1a31b17c9344fd202564de0a38b9b765c2545460124c506e97b8461.
|
||||
Повторён тот же hash-bound --launch, без обхода preinst/ручного root ремонта.
|
||||
P11 complete11:09:11.006589–11:09:29.842966 UTC,
|
||||
Ubuntu monotonic336858.887692502,duration18.836391699s,
|
||||
session07b18fa6895e43999f6d043aaf983878. Все шаги0, UI ready,
|
||||
Node0.8.20 установлен, Node/K1/RealSense active,NRestarts0.
|
||||
|
||||
PREP06 через Core queued11:10:21.069014 UTC,Mac monotonic459101.124631166,
|
||||
complete receipt11:10:38.238343; fresh after11:10:43.252557,
|
||||
monotonic459123.308188291. Установлен model0.1.3-7; broker/supervisor/wake
|
||||
active, новая SDK session от11:10:33.074024, прежний instance, preview0/recording0.
|
||||
Recovery supported/disabled по умолчанию. Report SHA256
|
||||
82b7b43cb3ff21f6f0820f7cdb1642f710a90c9aaa58f7589c99ff23d447b9ed.
|
||||
Первый read-only service check ошибочно запросил несуществующее имя
|
||||
mission-core-insta360-broker; проверка правильного mission-core-insta360
|
||||
подтвердила active. Служба не исправлялась/не перезапускалась вручную.
|
||||
|
||||
REC01-RESTORE11:12:19.545828–11:12:27.665197 UTC,
|
||||
Mac monotonic459219.601795958–459227.7207915,
|
||||
sourceac778fa8786e98586eb4456a2df7dc19acf795a23671a0d91494415ce6127784:
|
||||
штатные D455 start(record=false) и X4 preview.start complete.
|
||||
Instrument слишком рано потребовал online сразу после X4 receipt и остановил
|
||||
readback на промежуточном offline. Команда не повторялась; последующее чтение
|
||||
11:12:53 UTC подтвердило прежнюю X4 SDK session, preview1/recording0 и
|
||||
свежие кадры D455. Private start-both.json SHA256
|
||||
7ba21efb5c1cbe8e9a8a421f96169e29f546890a683a7298fd47adbf82b6d845.
|
||||
Через новую Core UI включено recovery для этой X4; пользователь ранее явно
|
||||
подтвердил camera-side Wakeup On. ARM readback11:13:25.509513 UTC,
|
||||
Mac monotonic459285.565453666,enabled=true,phase=ready,
|
||||
preview_wanted=true,recording0. Private armed.json SHA256
|
||||
513c07fd09e543ea4d9423ff505e6be0c68339e91323e3963793d4bd94e54540.
|
||||
Core browser video1280×640,readyState4,paused=false,currentTime68.848s.
|
||||
Loading расположен внутри нажатой кнопки; SDK session/SD не меняются.
|
||||
|
||||
REC01-REPLUG intent11:14:15.854035 UTC,Mac monotonic459335.90952175,
|
||||
source7aa48b033e688fca78968f05288075a51db8fe272d61b3955a9df50fa6daa4b7:
|
||||
bounded600s observer читает только
|
||||
Core inventory каждые2s, сохраняет UTC/monotonic/исходник hash. Владелец
|
||||
попросил продолжить автономность; запрошено USB out3–5s→in без Power,
|
||||
оставить кабель подключённым. Успех требует исчезновения и новой SDK session,
|
||||
автовозврата preview и свежих decoded frames; отсутствие действия владельца
|
||||
не считается аппаратной неудачей. Изменения Ubuntu вне installer отсутствуют.
|
||||
|
||||
REC01-REPLUG окно завершено11:19:48.340831 UTC через SIGINT только временного
|
||||
observer, finally сохранил отчёт; duration332.486881666s,165 samples. Физическое
|
||||
действие владельца не подтверждено, disappearance не наблюдалось; hardware
|
||||
gate остаётся pending, это не failed recovery. Report SHA256
|
||||
44ca7ee2c32229d957294178dde6cce0ab15eabb0526596846fcaa7a01761da3.
|
||||
Последний readback11:19:46.880983: обе камеры online, прежние SDK sessions,
|
||||
D455 color1625→6571, X4 recovery enabled/ready/preview_wanted. В браузере
|
||||
живой1280×640 currentTime68.848→265.315→443.377s,readyState4,paused=false.
|
||||
Expanded viewport и Escape проверены. Собственная QA вкладка закрыта,
|
||||
временные build/activation/observer процессы завершены; штатные preview и
|
||||
recovery intent сохранены для теста владельца. Native Node WebRTC ограничение
|
||||
из docs09 не закрывается общей frontend сборкой. Ops MISSIONCOR-77 обновлена,
|
||||
replug/recovery/checkers остаются незавершёнными.
|
||||
|
||||
@@ -1,5 +1,24 @@
|
||||
# Insta360 X4 — состояние реализации 10.09.2026
|
||||
|
||||
## REC01 / B15 — установлено, физическая проверка восстановления открыта
|
||||
|
||||
[Per-instance recovery](15_INSTA360_X4_AUTOMATIC_RECOVERY.md) добавлен в broker
|
||||
и отдельный fixed wake helper. В общей карточке Core/Node настройка default-off;
|
||||
отключение работает без камеры. Сохраняются разрешение wake и намерение
|
||||
preview; три ограниченные попытки, бюджет переживает restart. Запись/SD-команды
|
||||
не повторяются. Preview — одна попытка в новой SDK session при recording0.
|
||||
|
||||
B15 model0.1.3-7 прошёл75 Ubuntu tests; Core fleet31 tests passed. N11 Node0.8.20
|
||||
и общая UI квалифицированы на той же Mini: DG/Node/Go race/Core checks,
|
||||
819 frontend tests и builds прошли. Core активирован на8000, identities сохранены.
|
||||
P11 установил Node0.8.20; PREP06 из удалённого Core установил X40.1.3-7 и
|
||||
запустил helper. Первый P11 штатно отказал из-за активного захвата D455;
|
||||
после обычного STOP тот же installer завершился. Оба просмотра восстановлены.
|
||||
В Core подтверждено живое1280×640; настройка recovery включена через карточку,
|
||||
readback enabled=true/preview_wanted=true/recording0. REC01 USB out/in без
|
||||
Power и возврат SDK/preview ещё требуют физического теста. Сборка и установка
|
||||
не заменяют эту приёмку. Текущие версии — Node0.8.20/X40.1.3-7.
|
||||
|
||||
## WAKE01 — первый успешный Bluetooth wake с возвратом Android
|
||||
|
||||
Ubuntu выполнила один адресный20s wake advertisement при оставленном USB.
|
||||
|
||||
@@ -30,6 +30,14 @@ Node0.8.19 bundle пока остаётся0.1.3-3; его обновление
|
||||
|
||||
## Очередь реализации
|
||||
|
||||
**REC01 в работе:** код per-instance wake/preview recovery и настройка Core/Node
|
||||
реализованы; B15 model0.1.3-7 прошёл75 Ubuntu tests. Node0.8.20 и X40.1.3-7
|
||||
установлены штатно; общая UI активирована в Core, identities сохранены.
|
||||
Оба просмотра возвращены, recovery включено через карточку X4. Ближайшее
|
||||
действие — реальный USB out/in без Power с возвратом SDK/preview, затем
|
||||
повторные циклы и проверка отмены. Аппаратная приёмка остаётся открытой.
|
||||
Архитектура и границы — в docs15.
|
||||
|
||||
**Актуальный результат WAKE01:** один адресный Bluetooth wake с Ubuntu
|
||||
разбудил X4 при подключённом USB; камера сама вернулась в Android/SDK,
|
||||
владелец подтвердил экран. Node открыл прежний instance, D455 сохранила поток.
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
# X4 — восстановление подключения и просмотра
|
||||
|
||||
REC01 / B15, 10.09.2026. Продолжение принятого WAKE01. Штатно установлены
|
||||
Node 0.8.20 и X4 0.1.3-7, общая UI активирована в Core. Настройка включена
|
||||
через Core; физический USB out/in и автоматический возврат ещё не приняты.
|
||||
|
||||
## Поведение и полномочия
|
||||
|
||||
В существующей карточке каждой X4 есть отдельная настройка восстановления.
|
||||
По умолчанию выключена. Для включения камера должна быть подключена по USB;
|
||||
оператор подтверждает включённое на самой X4 «Пробуждение по Bluetooth».
|
||||
USB disappearance не различает кнопку Power и потерю кабеля: перед намеренным
|
||||
выключением оператор отключает восстановление. Настройка и её отключение
|
||||
доступны через один контракт Core/Node, включая отключённую камеру.
|
||||
|
||||
Отдельный broker хранит для каждого полного device_id разрешение wake,
|
||||
намерение просмотра, число попыток и сессию последней попытки восстановления
|
||||
preview. После исчезновения выдерживается 8 секунд; максимум три wake-попытки
|
||||
с порогами 8/40/100 секунд от потери связи. Неизвестный результат расходует
|
||||
попытку. Перезапуск не обнуляет счётчик. Минута устойчивой связи обнуляет его;
|
||||
оператор может отдельно выключить и снова включить восстановление.
|
||||
|
||||
Preview восстанавливается один раз в новой SDK session, только при сохранённом
|
||||
намерении START и подтверждённом recording=0. STOP отменяет намерение, в том
|
||||
числе без камеры. Повтор старого START receipt после STOP не возобновляет
|
||||
намерение. Для автоматического START сохраняется отметка до вызова и отдельный
|
||||
OperationRequest; unknown не повторяется в той же сессии. Record/photo/settings
|
||||
и SD-команды не входят в алгоритм восстановления. Существующий media broker
|
||||
закрывает источники/peers исчезнувшей SDK session; LiveViewport работает с новой.
|
||||
|
||||
## Граница Bluetooth и установка
|
||||
|
||||
Новый `mission-core-insta360-wake.service` — отдельный root helper с Unix socket,
|
||||
kernel peer credentials допускают только root и UID model broker. Нет public
|
||||
listener, SDK loading, USB writes, произвольных serial/path/command arguments.
|
||||
При включении helper сам читает единственный полный serial из текущего USB
|
||||
binding и сохраняет в root-only StateDirectory. API принимает только device_id,
|
||||
boolean control либо attempt UUID. Известные совпадения radio suffix запрещены.
|
||||
|
||||
Один adapter lock сериализует wake для разных камер. Helper независимо
|
||||
сохраняет до трёх attempt UUID за десять минут до публикации; повтор UUID
|
||||
не переигрывает команду. Он запускает только установленный ble_wake.py с
|
||||
private stdin. При отключении настройки завершается только child этой камеры.
|
||||
Child SIGTERM снимает рекламу в finally; BlueZ удаляет её и при потере private
|
||||
D-Bus owner, advertisement имеет собственный Timeout20s. Parent ограничивает
|
||||
child45s; последующая установка защищена общим lifecycle lock.
|
||||
|
||||
От WAKE01 изменено только требование ранее сопоставленного BLE address:
|
||||
для runtime оно необязательно, потому что wake адресуется USB serial suffix,
|
||||
а выключенная X4 не обязана рекламироваться сама. Без сопоставленного адреса
|
||||
helper не отключает никакие новые BLE connections. Неизвестное соединение
|
||||
сохраняется и отмечается cleanup error; успех требует прежнего полного serial
|
||||
в USB SDK. Ни discovery, ни Pair, ни GATT writes, ни глобальная настройка
|
||||
адаптера не добавлены. Factory Pairable/Discoverable или занятый advertiser
|
||||
дают ограниченный отказ; helper не перенастраивает BlueZ автоматически.
|
||||
|
||||
Model 0.1.3-7 владеет helper, service, broker recovery и их зависимостями
|
||||
bluez/python3-dbus/python3-gi. prepare запускает сервис; prerm останавливает
|
||||
его в общей процедуре quiesce. Новых apt/pip/chmod/service edits вне пакета нет.
|
||||
Root serials/raw reports и broker intents/receipts не попадают в публичный
|
||||
inventory или Git. Удаление пакета сохраняет журналы, не трогает SD-карту.
|
||||
|
||||
## Проверка
|
||||
|
||||
Synthetic tests проверяют default-off, независимые instances, границы попыток,
|
||||
restart budget, stable reset, offline cancellation, запрет SD replay,
|
||||
unknown preview receipt, сериализацию adapter, точный OS enrollment,
|
||||
collision/SDK-owner guards и подтверждение camera-side prerequisite.
|
||||
Сборка model и Node выполняется только существующим versioned artifact на Mini.
|
||||
Фактические UTC/monotonic/hashes, установка и аппаратный итог — в ledger07.
|
||||
Успех WAKE01 не заменяет REC01, несколько реальных камер или clean Ubuntu.
|
||||
Reference in New Issue
Block a user