chore: rename repository to NODEDC MISSION CORE

This commit is contained in:
DCCONSTRUCTIONS
2026-07-16 12:10:05 +03:00
parent 8459bb03fb
commit 9225227421
50 changed files with 220 additions and 61 deletions
+3 -3
View File
@@ -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;
+39
View File
@@ -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.
+59
View File
@@ -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.