Files
NODEDC_MISSION_CORE/docs/adr/0022-operator-surface-ownership.md
T

5.1 KiB
Raw Blame History

ADR 0022 — Operator surface ownership

Status: accepted, 2026-07-26

Context

The first simulation and LiDAR qualification slices exposed implementation results where they were produced. Saved observation sessions lived in the live spatial workspace, public datasets lived under Polygon, and the local-surface laboratory result was labelled as device diagnostics. This made the operator infer backend history instead of following product concepts.

The same ambiguity affected Centre: separate overview, health and activity pages repeated static capability inventories instead of showing the current compute and network contour.

Decision

Mission Core assigns one owner to each operator concept:

Product area Owns Does not own
Наблюдение Current live sensor scene and live-only spatial controls Saved-session selection or offline experiments
Данные Saved sessions, replay, public datasets, streams, entities and export Simulation execution or laboratory conclusions
Тестировочный контур Versioned laboratory work, test configuration and visual evidence Source-of-record retention or public dataset storage
Парк → Состояние контура Live compute nodes, processes, network reachability and connected devices Static feature inventory or a separate activity page
Система Deeper module, integration, network, audit and configuration administration Daily operational health summary
Парк Devices, sensors and live device operation Offline algorithm-development reports

The existing internal root id polygon remains stable for compatibility, but its operator label is Тестировочный контур and it is last in the header. Legacy ?workspace=polygon-datasets and ?workspace=polygon-run links resolve to Данные → Датасеты. They do not recreate the previous Polygon dataset page.

Saved session replay is mounted only in Данные → Сессии и записи or from a selected recorded LAB work. Данные → Сессии и записи keeps the original compact dropdown in the panel header and one full-size spatial viewer; it does not expand the catalog into the content column. Leaving either archive returns Наблюдение → Пространственная сцена to the runtime-published live source. A selected archive cannot leak into the live observation surface.

The saved-session dropdown requests only scope=source; LAB E19E29 never appear there. Laboratory catalogs use scope=laboratory, while internal LAB joins may use scope=all to resolve a derivative and its root source.

Dataset sources use a single-open accordion. Expanding one source mounts its viewer and analysis inside that source card, pushes later sources down, and closes the previously expanded source.

The laboratory surface is a two-level catalog:

  1. a laboratory contour profile fixes the tested rig, modules and worker;
  2. a laboratory work selects one immutable result inside that profile.

The selected work opens one reusable output structure: task and configuration, method manifest, full-size visual evidence, then structured metrics, errors, timing and conclusion. The template has recorded-replay and diagnostic-model evidence renderers; synchronized point cloud and camera windows remain one replay evidence surface. LAB E28 owns the L2.6 local-surface viewer, complete-recording timeline and review queue. LAB E29 owns the camera-first semantic/geometry coverage result. Recorded E19E26 LAB instances are exposed through a separate published-perception profile backed by the existing observation-session catalog. They are not rendered as a second saved-session archive.

The full publication and UI contract is defined in docs/15_LABORATORY_RUN_CANON.md.

Neither E28 nor E29 is live device diagnostics. A future device-diagnostics workspace must require an attached device and its own diagnostic contract.

Contour health reads only live contracts:

  • GET /api/health;
  • GET /api/v1/device-plugin-runtimes;
  • GET /api/v1/polygon/worker;
  • current Mission Runtime state for active device and perception metrics.

The base health contract now separates local operational readiness from optional shared-artifact capability and reports bounded cache, catalog reconciler, media-tool and Map Gateway configuration states. It performs no remote fan-out and never invents Worker 006 or device health.

Unknown or unavailable values remain empty/offline. The UI does not invent load, latency, activity or connected devices.

Consequences

  • Public datasets and private sensor records are both discoverable under Data, but remain separate evidence classes.
  • Laboratory evidence is inspectable without confusing it with live device health or closed-loop simulation.
  • The current Simulation Worker may be offline while its prior laboratory evidence remains available.
  • The generic Control Station remains device-neutral; device names and implementation details come from plugin/runtime contracts.
  • New operator pages must declare one product owner before implementation.