docs(simulation): accept worker-gated polygon ui
This commit is contained in:
@@ -170,21 +170,24 @@ surface backed by the same append-only qualification repository. It exposes
|
||||
identity, terminal reason, provider pins, events, command count, artifact
|
||||
metadata and the virtual-only authority boundary. Live pause/resume/step/reset,
|
||||
canonical telemetry, PX4 command mapping, watchdog/failsafe evidence and the
|
||||
top-level Polygon control surface remain gated.
|
||||
accepted command path remain gated.
|
||||
|
||||
S1C commit `b7ccca3` adds the first registered live-worker vertical without
|
||||
collapsing that boundary. An unprivileged worker agent owns the existing
|
||||
application service and providers inside a fresh loopback-only network
|
||||
namespace. Mission Core reaches it through a mode-`0600` Unix socket; React
|
||||
reaches only same-origin Polygon API routes. The live browser panel can
|
||||
start/stop the stock rover, show worker/run/provider status and render a bounded
|
||||
top-down ENU trajectory from Gazebo dynamic-pose ground truth. That pose is
|
||||
explicitly `diagnostic`, not accepted PX4/ROS 2 telemetry.
|
||||
start/stop the stock rover and show worker/run/provider status. UI-2 commit
|
||||
`60e7916` adds a worker-gated `Полигон` header root and a browser-native
|
||||
Three.js Ackermann Rover scene with orbit, zoom, pan, follow and reset. The
|
||||
deep-link remains for exact-run review; it is no longer the primary operator
|
||||
entry. Gazebo dynamic-pose ground truth remains explicitly `diagnostic`, not
|
||||
accepted PX4/ROS 2 telemetry.
|
||||
|
||||
The exact D-only generation passed 21 target tests and a real UI-driven run
|
||||
`s1c-b7ccca3-20260724t174030z-8e46b3`: both providers reached readiness, the
|
||||
The exact D-only UI-2 generation passed 35 target tests and a real UI-driven run
|
||||
`s1c-60e7916-20260724t182006z-2f164e`: both providers reached readiness, the
|
||||
browser received live `VehicleState`, the run reached `completed` after
|
||||
52.836 seconds of Gazebo time, and shutdown left no PX4/Gazebo/XRCE process
|
||||
27.74 seconds of Gazebo time, and shutdown left no PX4/Gazebo/XRCE process
|
||||
residue. The run contained zero commands, so this result does not yet prove
|
||||
rover motion, PX4 command delivery, watchdog/failsafe behavior, navigation or
|
||||
safety acceptance.
|
||||
@@ -195,7 +198,8 @@ Start the worker from the exact immutable D source generation:
|
||||
sudo simulation/s1/worker-agent.sh <exact-40-character-mission-core-commit>
|
||||
```
|
||||
|
||||
Then configure the Mission Core backend and open the direct route:
|
||||
Then configure the Mission Core backend. When the worker status is available,
|
||||
open `Полигон` from the Control Station header:
|
||||
|
||||
```bash
|
||||
export MISSIONCORE_POLYGON_RUNS_ROOT=/mnt/d/NDC_MISSIONCORE/simulation/artifacts/s1/runs
|
||||
@@ -206,14 +210,16 @@ uv run uvicorn k1link.web.app:app --host 127.0.0.1 --port 8765
|
||||
```
|
||||
|
||||
```text
|
||||
http://127.0.0.1:8765/?workspace=polygon-run&run=<qualification-run-id>
|
||||
http://127.0.0.1:8765/
|
||||
```
|
||||
|
||||
The archive API remains GET-only. The worker API adds status/live GETs and
|
||||
explicit start/stop POSTs; POSTs remain `403` unless the backend has the
|
||||
`internal-virtual-only` gate and an exact commit. Missing configuration,
|
||||
transport drift and corrupt evidence fail closed. The browser receives no Unix
|
||||
socket, D root, artifact bytes, PX4 endpoint or direct provider command.
|
||||
The direct `?workspace=polygon-run&run=<qualification-run-id>` URL remains a
|
||||
compatible evidence deep-link. The archive API remains GET-only. The worker API
|
||||
adds status/live GETs and explicit start/stop POSTs; POSTs remain `403` unless
|
||||
the backend has the `internal-virtual-only` gate and an exact commit. Missing
|
||||
configuration, transport drift and corrupt evidence fail closed. The browser
|
||||
receives no Unix socket, D root, artifact bytes, PX4 endpoint or direct provider
|
||||
command.
|
||||
|
||||
See the [Polygon product/SRS](docs/12_SIMULATION_POLYGON_PRODUCT_AND_SRS.md),
|
||||
[ADR 0015](docs/adr/0015-simulation-polygon-qualification-boundary.md),
|
||||
@@ -228,14 +234,16 @@ Gateway/API and Control Plane run as long-lived services; Gazebo/PX4/ROS 2/Nav2
|
||||
run headless on a registered simulation worker; and a future field vehicle runs
|
||||
a headless onboard Linux Edge Agent with local-first evidence and
|
||||
store-and-forward synchronization. Native Gazebo GUI is worker-local
|
||||
diagnostics. Product 3D uses canonical state in browser-native Rerun/WebGL views,
|
||||
so field execution never depends on streaming a simulator desktop.
|
||||
diagnostics. The accepted live rover scene uses canonical state in Three.js;
|
||||
Rerun remains the recorded spatial-evidence path. Field execution never depends
|
||||
on streaming a simulator desktop.
|
||||
|
||||
## Mission Core Control Station and visualization adapters
|
||||
|
||||
The browser application is the universal Mission Core Control Station rather than
|
||||
a K1-specific Foxglove launcher. Its fixed shell contains six architectural
|
||||
sections — Center, Fleet, Observation, Missions, Data and System — while the K1
|
||||
a K1-specific Foxglove launcher. Its fixed shell contains Center, Fleet,
|
||||
Observation, Missions, Data and System; a seventh Polygon section is inserted
|
||||
only while an admitted Simulation Worker is available. The K1
|
||||
BLE/Wi-Fi/live workflow remains isolated as the first real device adapter. Its
|
||||
React provisioning, acquisition/replay and diagnostic blocks live beside the
|
||||
plugin manifest under `plugins/xgrids-k1/frontend`; the generic application
|
||||
@@ -329,12 +337,11 @@ standalone release install. The frontend consumes sibling `file:` packages from
|
||||
revision or content hash. Publishing/vendoring those packages or enforcing an
|
||||
immutable donor revision remains a packaging and CI prerequisite.
|
||||
|
||||
Polygon is planned as a seventh section. The read-only direct UI-0 run view is
|
||||
implemented inside the current shell but intentionally omitted from all
|
||||
top-level and System navigation. It opens only through
|
||||
`?workspace=polygon-run[&run=<id>]` and reads the server-owned qualification
|
||||
repository. Top-level Polygon navigation and control remain gated on accepted
|
||||
clock/frame/command/safety behavior.
|
||||
Polygon is implemented as a capability-gated seventh section. When Mission Core
|
||||
confirms an admitted Simulation Worker, its header button opens one direct
|
||||
workspace with live 3D inspection and the server-owned qualification
|
||||
repository. `?workspace=polygon-run[&run=<id>]` remains a compatibility
|
||||
deep-link. Command and safety acceptance remain separate gates.
|
||||
|
||||
The Observation spatial workspace embeds the open-source Rerun Web Viewer
|
||||
inside the Mission Core shell. It can open a compatible RRD over same-origin
|
||||
|
||||
Reference in New Issue
Block a user