2.3 KiB
2.3 KiB
NODEDC MISSION CORE monorepo
This document maps the renamed repository to the target Mission Core architecture without claiming that unfinished package boundaries already exist.
Current layout
| Path | Current responsibility | Target responsibility |
|---|---|---|
apps/control-station/ |
React shell, device workflow, spatial scene | Vendor-neutral operator application |
src/k1link/web/ |
Local FastAPI control plane and K1 session orchestration | Generic host APIs plus plugin supervisor |
src/k1link/viewer/ |
Replay runtime and Rerun adapter | Canonical scene sink and presentation adapter |
src/k1link/ble/ |
K1 BLE discovery and reviewed provisioning | plugins/xgrids-k1 |
src/k1link/mqtt/ |
Raw-first K1 MQTT capture | plugins/xgrids-k1 behind EvidenceStore |
src/k1link/protocol/ |
Firmware-scoped K1 codecs | plugins/xgrids-k1 |
packages/plugin-sdk/ |
Contract placeholder | Versioned manifests, capabilities, lifecycle, schemas |
plugins/xgrids-k1/ |
Extraction boundary and documentation | Independently versioned device plugin |
Extraction order
- Define canonical PointCloud, Pose, DeviceStatus, RawEnvelope, and metrics contracts in the Plugin SDK.
- Make Rerun consume canonical frames rather than K1 MQTT topics.
- Extract codecs and replay parity fixtures.
- Extract raw capture with fault isolation between evidence and preview.
- Extract BLE/Wi-Fi provisioning and MQTT into a least-privilege edge worker.
- Replace K1-specific host routes and state with plugin/device-session APIs.
- Drive the connection wizard from plugin capabilities and schemas.
- Re-run native replay and the physical BLE → Wi-Fi → MQTT → scene acceptance.
Invariants
- Raw evidence is durable before preview work.
- Mission Core starts when the XGRIDS manifest is absent. A formal disabled/quarantine state for an installed plugin is a future supervisor feature.
- The plugin cannot add global navigation or arbitrary CSS.
- Vendor writes and commands must ultimately require declared capabilities and
operator gates. In v1alpha1
permissions,mutating, andsecretFieldsare validated metadata only; concrete adapters still enforce request safety. - The visualization engine can be replaced without changing device plugins.
- Real captures and credentials remain outside Git.