feat(simulation): qualify D-only stock rover smoke

This commit is contained in:
DCCONSTRUCTIONS
2026-07-24 16:51:39 +03:00
parent 81761067e9
commit 6290fcb2ce
8 changed files with 545 additions and 60 deletions
@@ -44,13 +44,20 @@ reports easy to misuse.
9. Source-of-record, derived artifacts and presentation state remain separate.
Reset creates a new immutable run/episode.
10. Ground truth is evaluator-only and is not visible to perception or planning.
11. SIM S0 targets the reviewed Windows 11/WSL2 AI worker with all mutable bytes
physically under `D:\NDC_MISSIONCORE`.
12. S1 uses exact `px4_msgs` directly. The experimental
11. SIM S0 targets the reviewed Windows 11 worker through a dedicated
`MissionCore-Sim` WSL2 Ubuntu 24.04 distribution physically under
`D:\NDC_MISSIONCORE`.
12. SIM S0 does not depend on the existing Docker Desktop runtime. Its WSL
backend is C-backed and currently serves unrelated co-tenants.
13. S1 uses exact `px4_msgs` directly. The experimental
`px4-ros2-interface-lib` is not a mandatory S1 dependency.
13. A top-level Polygon UI is gated on accepted contracts and a proven S1
14. A top-level Polygon UI is gated on accepted contracts and a proven S1
backend lifecycle with persisted run history.
14. Real actuator authority requires a new decision and physical safety gate.
15. Real actuator authority requires a new decision and physical safety gate.
16. S0 processes run inside an ephemeral loopback-only Linux network namespace.
Micro XRCE-DDS Agent's UDP wildcard bind is acceptable only inside that
boundary; no S0 listener may be reachable from the worker LAN or Windows
host network.
## Consequences
@@ -67,7 +74,7 @@ reports easy to misuse.
## First implementation
The first implementation is deliberately read-only:
The qualification doctor is deliberately read-only:
- `simulation/s0/qualification-profile.yaml` is the candidate stack,
storage, clock, authority, port and process contract.
@@ -77,6 +84,12 @@ The first implementation is deliberately read-only:
starting or modifying anything.
- MISSIONCOR-40 tracks factual worker qualification.
The first target bootstrap also includes `simulation/s0/worker-smoke.sh`. It
creates the reviewed loopback-only namespace, starts only the pinned stock-rover
providers, observes ROS 2 vehicle status and Gazebo clock, requests PX4 shutdown,
checks for owned-process residue and writes D-only factual artifacts. It never
arms the vehicle or sends an actuator command.
The doctor reports `INCOMPLETE` until it is running on the reviewed target with
resolved/accepted pins and all required evidence. It cannot infer `GO` from the
repository state.