chore: rename repository to NODEDC MISSION CORE
This commit is contained in:
@@ -30,7 +30,7 @@ Rerun gRPC/proxy on TCP 9876
|
||||
+--> rerun_grpc_url in REST/WebSocket state
|
||||
|
|
||||
v
|
||||
self-hosted @rerun-io/web-viewer inside NODE.DC Control Station
|
||||
self-hosted @rerun-io/web-viewer inside Mission Core Control Station
|
||||
|
||||
React console <-- REST + WebSocket state --> FastAPI on 127.0.0.1:8000
|
||||
```
|
||||
@@ -52,7 +52,7 @@ Prerequisites are the repository-local Python environment and Node.js 20.19+ or
|
||||
|
||||
```bash
|
||||
uv sync --group dev
|
||||
cd apps/k1-viewer
|
||||
cd apps/control-station
|
||||
npm install
|
||||
npm run typecheck
|
||||
npm run build
|
||||
@@ -121,7 +121,7 @@ does not publish an application request or modeling command.
|
||||
|
||||
On the first live or replay session, `RerunBridge`:
|
||||
|
||||
- creates an explicit `RecordingStream("nodedc_device_spatial")`;
|
||||
- creates an explicit `RecordingStream("nodedc_mission_core_spatial")`;
|
||||
- installs the default spatial blueprint;
|
||||
- starts the gRPC/proxy server on TCP 9876 with a 512 MiB late-client buffer;
|
||||
- reports `rerun+http://127.0.0.1:9876/proxy` only after the server is ready;
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
# 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
|
||||
|
||||
1. Define canonical PointCloud, Pose, DeviceStatus, RawEnvelope, and metrics
|
||||
contracts in the Plugin SDK.
|
||||
2. Make Rerun consume canonical frames rather than K1 MQTT topics.
|
||||
3. Extract codecs and replay parity fixtures.
|
||||
4. Extract raw capture with fault isolation between evidence and preview.
|
||||
5. Extract BLE/Wi-Fi provisioning and MQTT into a least-privilege edge worker.
|
||||
6. Replace K1-specific host routes and state with plugin/device-session APIs.
|
||||
7. Drive the connection wizard from plugin capabilities and schemas.
|
||||
8. 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 plugin is absent or disabled.
|
||||
- The plugin cannot add global navigation or arbitrary CSS.
|
||||
- Vendor writes and commands require declared capabilities and operator gates.
|
||||
- The visualization engine can be replaced without changing device plugins.
|
||||
- Real captures and credentials remain outside Git.
|
||||
@@ -0,0 +1,59 @@
|
||||
# ADR 0002: NODEDC MISSION CORE monorepo
|
||||
|
||||
- Status: accepted
|
||||
- Date: 2026-07-16
|
||||
|
||||
## Context
|
||||
|
||||
The repository began as a focused XGRIDS/LixelKity K1 connector and then gained
|
||||
a vendor-neutral control-station shell, local control plane, replay runtime, and
|
||||
embedded spatial viewer. The K1 vertical is proven on real hardware, but its
|
||||
names and implementation are still coupled to the host.
|
||||
|
||||
## Decision
|
||||
|
||||
The product, repository, and local root are named NODEDC MISSION CORE. The
|
||||
canonical Git path is `SILVER/NODEDC_MISSION_CORE`, and the local checkout is
|
||||
`NODEDC_MISSION_CORE`.
|
||||
|
||||
Mission Core remains one monorepo while the first plugin contract stabilizes:
|
||||
|
||||
```text
|
||||
apps/control-station/ browser operator application
|
||||
packages/plugin-sdk/ shared plugin contracts and host interfaces
|
||||
plugins/xgrids-k1/ XGRIDS/LixelKity K1 device plugin
|
||||
src/k1link/ transitional compatibility implementation
|
||||
docs/ architecture, runbooks, ADRs, and redacted evidence
|
||||
```
|
||||
|
||||
An independent plugin does not require an independent Git repository at this
|
||||
stage. The XGRIDS plugin must have an explicit package/runtime boundary,
|
||||
manifest, capabilities, tests, and no ownership of Mission Core navigation.
|
||||
It can be split into another repository later without changing host contracts.
|
||||
|
||||
The Rerun integration is a replaceable presentation adapter. It is not the
|
||||
Mission Core data bus, session database, or device protocol.
|
||||
|
||||
## Compatibility boundary
|
||||
|
||||
The rename does not alter these proven interfaces:
|
||||
|
||||
- Python import namespace and CLI `k1link`;
|
||||
- native `.k1mqtt` framing and `K1MQTT` magic;
|
||||
- provisioning profile `xgrids-k1-fw3-wifi-v1`;
|
||||
- K1 MQTT topics and firmware-scoped protobuf/LZ4 codecs;
|
||||
- current `k1_ip`, `K1Metrics`, and `useK1Console` compatibility fields;
|
||||
- schema v1 `$id`, which remains an immutable legacy identifier.
|
||||
|
||||
Those names move or change only during the plugin-extraction milestone with
|
||||
explicit migration and regression tests.
|
||||
|
||||
## Consequences
|
||||
|
||||
- Product branding, repository metadata, frontend application path, API title,
|
||||
and Rerun recording identity use Mission Core naming now.
|
||||
- The existing K1 implementation remains operational while contracts are
|
||||
extracted incrementally.
|
||||
- Core must eventually boot without the XGRIDS plugin.
|
||||
- Plugin failure must not terminate the Mission Core host or raw evidence plane.
|
||||
- A future repository split remains possible after Plugin SDK v1 is stable.
|
||||
Reference in New Issue
Block a user