feat(ui): separate live data and lab surfaces
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
# 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
|
||||
LAB entry. Leaving either archive returns **Наблюдение → Пространственная
|
||||
сцена** to the runtime-published live source. A selected archive cannot leak
|
||||
into the live observation surface.
|
||||
|
||||
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 archive reads immutable LAB instances from the existing
|
||||
observation-session catalog. The E29 local-surface result remains a read-only
|
||||
laboratory surface and is no longer presented as live LiDAR 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.
|
||||
|
||||
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.
|
||||
Reference in New Issue
Block a user