docs(perception): record full-graph network and recovery evidence

This commit is contained in:
DCCONSTRUCTIONS
2026-09-02 19:05:13 +03:00
parent 6469505c41
commit 0cc6b96306
3 changed files with 221 additions and 8 deletions
@@ -1,10 +1,14 @@
# Observatory: четыре этапа создания полного real-time Perception-профиля
Дата: 2026-09-01; обновлено 2026-09-02 18:11 МСК. **Этап 1 закрыт; этап 2 в работе. Инкремент 12: внешний gRPC/TLS binary candidate, одноразовый доступ и bounded backpressure.** Код `0310592`. Два CPU-only межмашинных повтора Mac↔Worker через существующий SSH-маршрут дали16/16 точных payload/reply; обрыв2.20s сохранил resident CPU sentinel и локальный lease. Итоговые105 focused tests и20 Worker transport tests PASS. Это не full-graph network qualification: реальный `BinaryGraphBridge`, scene/layer codecs, production выдача grant/clock mapping и standalone ещё не подключены к этому endpoint. Этапы3–4 не начаты.
Дата: 2026-09-01; обновлено 2026-09-02 19:00 МСК. **Этап 1 закрыт; этап 2 в работе. Инкремент 13: полный graph с реальным сетевым входом и выходом.** CPU source/receiver вынесен в отдельный контейнер без GPU; модельный контейнер не получает запись через mounts. Через gRPC/TLS возвращаются настоящая маска512×512, detections/distance/motion и grid/costmap/policy. Обычный1× прогон:128/128 exact raw к reference, p95/p99 до готового consumer-view106.150/115.349ms, max126.910ms (один кадр выше125ms). 76/128 полных свежих scene;52 исходные sensor gaps не скрыты.
Финальный same-Mac RTT min/median/max14.360/23.919/120.815ms (не one-way age/FPS), peak mailbox6,750,559B, RSS57,244KiB, после закрытия0bytes. Source clock и resume proof синтетические, моделей0. Default64KiB HTTP/2 window не выдержал250ms для1,048,595B; fixed1MiB прошёл без изменения deadline. Реальный slow-reader выявил блокирование отправки error status; его deadline и deferred quarantine cleanup исправлены и проверены. Evidence16 artifacts: `.runtime/perception-stage2-grpc-20260902T1500Z/manifest.json`, SHA-256 `adf5eaf092feaed6721f66e2adaceded0cdbf55754e1f9953f54623bfb52d331`.
Отдельный обрыв2.2s:102 результатов +26 учтённых пропусков24–49, resume50 с теми же четырьмя PID и lease generation1; одна очистка temporal history, без backlog. p95/p99 принятых результатов107.098/110.817ms; отдельный gap доступности2.725s. Начальный лишний reconnect из-за раннего init исправлен без увеличения idle-timeout и проверен повтором.146 focused tests PASS,2 больших Worker-only теста пропущены локально. Максимальный ответ460248B остаётся внутри1MiB; peak tracked13,217,791B, после закрытия0.
Следующий проверяемый результат этапа2: подать реальную запись с application-side source через этот endpoint в существующий полный graph, вернуть общие scene/layer outputs с явными размерными/возрастными ограничениями, повторить normal/reconnect/slow-consumer canary последовательно. Транспорт не имеет права вызывать batch materializer или заново запускать модели при сетевой паузе. Текущий outbound cap1MiB требует проверки реальных слоёв/фрагментации; расширять его молча нельзя. После этого — самостоятельный image. Продуктовый LAB path пока не переключён.
Граница доказательства: два контейнера одного Worker с проверенным общим Linux monotonic clock, временные штатные частоты2610/10251MHz; **не Mac↔Worker full-graph, не radio/live и не standalone**. История зависимых слоёв после gap закономерно отличается от uninterrupted reference. Все230 опубликованных scene/масок проверены на стороне приёмника и повторно сверены. [Подробный отчёт](../experiments/perception/PERCEPTION_STREAM_STAGE2_NETWORK_2026-09-02.md). Evidence236 artifacts: `.runtime/perception-stage2-network-graph-20260902T1541Z/manifest.json`, SHA-256 `d1bc7e26850a2d9050ee1d8f8a5ece2e6b8c53e2e7dba381cbd4445d68a5ec17`.
Следующий проверяемый результат этапа2: application-side выдача grant + измеренное сопоставление часов, полный graph Mac↔Worker и slow-consumer canary, затем самостоятельный image без developer/model mounts. Начальный retry/выдача grant текущего bounded pilot не являются production recovery service. Продуктовый LAB path пока не переключён; этапы3–4 не начаты. Worker services и auto clocks восстановлены, Ollama/Frigate остаются exited/restart=no, временные контейнеры/network/lease удалены. Mac8000 и Worker telemetry работают.
Предыдущий инкремент12 (`0310592`, `1916122`): CPU-only gRPC/TLS proof Mac↔Worker,16/16 payload/reply; синтетический source clock и CPU sentinel, моделей0. Same-Mac RTT14.360/23.919/120.815ms min/median/max — не one-way age/FPS.105 local и20 Worker tests PASS, проверены bounded slow-reader/quarantine. Evidence `.runtime/perception-stage2-grpc-20260902T1500Z/manifest.json`, SHA-256 `adf5eaf092feaed6721f66e2adaceded0cdbf55754e1f9953f54623bfb52d331`.
Предыдущий инкремент11 (`c570f7d`, `2ef8c08`): восстановлены System/Worker telemetry plane и независимый runtime exporter. Телеметрия остаётся отдельным наблюдателем, а не выдающим lease/GPU authority контуром.
@@ -336,6 +340,6 @@ EoMT — семейство ViT-моделей сегментации изобр
## Outcomes / retrospective
Этап 1 завершён; этап 2 продолжается. Реальный scoped host collector/control adapter подключён к полному профилю. Normal exact raw128/128, задержка reply2.2s → WAIT/resync с теми же четырьмя PID,26 пропусков без backlog/старой истории,404 focused tests. Сохранены исправленный warmup abort и независимые показатели доступности/accepted-frame latency. Следом внешний data-plane/auth/recovery, затем standalone packaging. Native-host GPU inventory не квалифицирован; Docker scope не выдаётся за полный host audit. Batch/registry/UI и этапы34 не начаты, actuation=false. Mac8000=200,8765 закрыт; auto clocks и четыре Worker services восстановлены, Ollama/Frigate exited/restart=no, временных collectors/container/lease нет.
Этап1 завершён; этап2 продолжается. Помимо scoped host control, полный graph теперь связан gRPC/TLS с отдельным CPU source/receiver: normal128/128 exact raw, gap2.2s → WAIT/resync с теми же четырьмя PID/lease и26 учтёнными пропусками.146 focused tests текущего инкремента PASS; ранее404 checks относились к host-control инкременту. Consumer-ready p95/p99 normal106.150/115.349ms; это same-kernel container-network при stock fixed clocks, не Mac↔Worker. Следом межмашинные clock/grant integration и slow consumer, затем standalone packaging. Native-host GPU inventory не квалифицирован; Docker scope не выдаётся за полный host audit. Batch/registry/UI и этапы34 не начаты, actuation=false. Mac8000=200,8765 закрыт; auto clocks и четыре Worker services восстановлены, Ollama/Frigate exited/restart=no, временных collectors/container/network/lease/key/grant нет.
После этапа 4 здесь будут перечислены digest самостоятельного полного образа, измеренные статусы и ошибки по recordings, реально проверенные source/hardware/config комбинации, состояние сохранённого EoMT-варианта и оставшиеся physical-live/quality/vehicle-integration ограничения. Готовый Docker и готовая автономия не отождествляются.