docs(perception): record Worker observability repair and remaining stream gates

This commit is contained in:
DCCONSTRUCTIONS
2026-09-02 17:40:45 +03:00
parent 2ef8c08bf2
commit df0158e1ba
4 changed files with 96 additions and 4 deletions
@@ -1,8 +1,10 @@
# Observatory: четыре этапа создания полного real-time Perception-профиля
Дата: 2026-09-01; обновлено 2026-09-02 16:52 МСК. **Этап 1 закрыт; этап 2 в работе. Десятый инкремент: реальные host GPU/Docker observations подключены к полному профилю.** Одноразовые запросы, separate read-only reply mount, локальное время запроса вместо времени прибытия ответа. Docker inventory scope задан явно; native host/WSL process coverage не доказан. Задержка ответа на2.2s вызвала WAIT/resync без перезапуска четырёх resident-процессов. Далее внешний data-plane/auth/recovery и standalone packaging; этапы34 не начаты.
Дата: 2026-09-01; обновлено 2026-09-02 17:37 МСК. **Этап 1 закрыт; этап 2 в работе. Инкремент 11: восстановлен существующий System/Worker telemetry plane и добавлен независимый экспорт состояния streaming runtime.** Код `c570f7d`, `2ef8c08`. Исправлены остановка Telegraf при недоступном MQTT, потерянная публикация порта, превышающие лимит контейнера настройки PostgreSQL и блокирующая ingest очистка истории. CPU-only переходы running → waiting → synchronizing → running прошли через реальный агент/Timescale. Это observability, не новый внешний sensor data-plane; следующий пункт остаётся binary stream/auth/recovery между приложением и Worker, затем standalone packaging. Этапы34 не начаты.
Последний код `61cbdb3`; 404 focused tests PASS, Ruff/format/mypy PASS. Normal exact raw128/128, 50 real observations, p95/p99 91.157/97.946ms. При задержке host reply:102 обработанных +26 учтённых пропусков, resume seq50, прежние PID/lease сохранены; p95/p99 принятых кадров88.643/91.236ms. Между последней старой и первой свежей scene2.719s — отдельная метрика доступности. Оба измерения условны для временных штатных clocks2610/10251MHz, не доказывают overhead regression или общий real-time. Auto clocks/services восстановлены, временные collector/container/lease отсутствуют. Исходные sensor gaps, auto-clock FAIL, непроверенные native-host inventory, network и standalone остаются.
104 Python tests, 703 frontend tests, typecheck и production build PASS. Полный frontend проверен последовательно на CPU Worker из-за Mac memory pressure=2; собранный UI установлен на canonical8000. Визуальная приёмка по `mission-core-product-ui` отложена до освобождения памяти, не объявлена пройденной. Расширен существующий Worker, без новых страниц и без product profile/registry cutover. MQTT outage/startup проверен с сохранением PID9268; CPU canary сохранил lease generation1 и освободил его после завершения. Evidence `.runtime/worker-telemetry-20260902T1422Z/manifest.json`, SHA-256 `825b1d8035dbf907b2b731d35ede4c5742b81e653a6f24670f4775981f853492`.
Предыдущий модельный замер `61cbdb3`: 404 focused tests PASS, Ruff/format/mypy PASS. Normal exact raw128/128, 50 real observations, p95/p99 91.157/97.946ms. При задержке host reply:102 обработанных +26 учтённых пропусков, resume seq50, прежние PID/lease сохранены; p95/p99 принятых кадров88.643/91.236ms. Между последней старой и первой свежей scene2.719s — отдельная метрика доступности. Оба измерения условны для временных штатных clocks2610/10251MHz, не доказывают overhead regression или общий real-time. В инкременте11 модели не запускались; overhead нового observability exporter пока не измерен на полном графе. Исходные sensor gaps, auto-clock FAIL, непроверенные native-host inventory, network и standalone остаются.
Текущий evidence: [отчёт этапа 1](../experiments/perception/PERCEPTION_STREAM_STAGE1_2026-09-01.md), [ADR 0049](adr/0049-stream-first-perception-profiles.md), [candidate manifest](../config/perception/k1-perception-ddrnet39-rfdetr-tgs-prototype-v1.json). Запрет full-source preload закреплён в новом контракте; старый batch materializer пока не удалён и продуктовый путь не переключён.
@@ -704,6 +704,18 @@ the end-to-end interval.
## Evidence and remaining stage-1 work
### Operator telemetry is not runtime authority (2026-09-02)
Reuse System/Worker and the existing Telegraf → MQTT → Timescale route for
operator observability. A profile may export one bounded 8 KiB current snapshot
at 1 Hz to the host collector, independently from controller heartbeat/model
work. Missing or stale observations are unavailable, never fabricated idle,
loaded-model readiness, per-stage timing or real-time qualification. Agent
restart/reconnection and database retention must not block inference. The faster
Worker-local readiness/inventory channel remains separate; MQTT/Timescale/UI
cannot renew a lease or authorize GPU/vehicle activity. This observability
integration does not constitute the external camera/points binary data plane.
See `experiments/perception/PERCEPTION_STREAM_STAGE1_2026-09-01.md` for measured
component results, bounded validation, Worker maintenance and remaining gates.
Neither this ADR nor passing synthetic contract tests marks the new runtime ready.