docs(simulation): accept S1C live worker
This commit is contained in:
@@ -172,11 +172,36 @@ 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.
|
||||
|
||||
Configure a Mission Core backend that can read the accepted D repository and
|
||||
open the direct route:
|
||||
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.
|
||||
|
||||
The exact D-only generation passed 21 target tests and a real UI-driven run
|
||||
`s1c-b7ccca3-20260724t174030z-8e46b3`: 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
|
||||
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.
|
||||
|
||||
Start the worker from the exact immutable D source generation:
|
||||
|
||||
```bash
|
||||
sudo simulation/s1/worker-agent.sh <exact-40-character-mission-core-commit>
|
||||
```
|
||||
|
||||
Then configure the Mission Core backend and open the direct route:
|
||||
|
||||
```bash
|
||||
export MISSIONCORE_POLYGON_RUNS_ROOT=/mnt/d/NDC_MISSIONCORE/simulation/artifacts/s1/runs
|
||||
export MISSIONCORE_POLYGON_WORKER_SOCKET=/run/missioncore-sim/worker.sock
|
||||
export MISSIONCORE_POLYGON_WORKER_CONTROL=internal-virtual-only
|
||||
export MISSIONCORE_COMMIT=<exact-40-character-mission-core-commit>
|
||||
uv run uvicorn k1link.web.app:app --host 127.0.0.1 --port 8765
|
||||
```
|
||||
|
||||
@@ -184,15 +209,18 @@ uv run uvicorn k1link.web.app:app --host 127.0.0.1 --port 8765
|
||||
http://127.0.0.1:8765/?workspace=polygon-run&run=<qualification-run-id>
|
||||
```
|
||||
|
||||
The API provides `GET /api/v1/polygon/runs` and
|
||||
`GET /api/v1/polygon/runs/{run-id}` only. Missing configuration returns `503`;
|
||||
invalid/corrupt evidence fails closed. The browser receives no D root, artifact
|
||||
bytes, command payloads or PX4/process-lifecycle operation.
|
||||
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),
|
||||
[ADR 0016](docs/adr/0016-distributed-product-edge-and-worker-topology.md) and the
|
||||
[SIM S0 worker runbook](docs/runbooks/SIM_S0_AI_WORKER.md).
|
||||
[SIM S0 worker runbook](docs/runbooks/SIM_S0_AI_WORKER.md). The live-worker
|
||||
launch and acceptance procedure is in
|
||||
[SIM S1C live-worker runbook](docs/runbooks/SIM_S1C_LIVE_WORKER.md).
|
||||
|
||||
Mission Core remains a distributed browser product rather than a
|
||||
platform-specific desktop executable. React runs in the operator browser;
|
||||
|
||||
Reference in New Issue
Block a user