docs(k1): record connection mode acceptance

This commit is contained in:
DCCONSTRUCTIONS
2026-07-19 09:52:33 +03:00
parent 57b2208cae
commit 75d2e5da4b
9 changed files with 131 additions and 22 deletions
+16 -3
View File
@@ -19,7 +19,8 @@ The plugin owns:
- the exact firmware/topology compatibility profiles under
[`profiles/`](profiles/), with strict evidence flags and a fail-closed loader;
- BLE discovery hints and K1 GATT metadata;
- the reviewed firmware-3 Wi-Fi provisioning profile;
- Bridge and Direct Connect through the reviewed firmware-3 BLE Wi-Fi
provisioning frame, plus a one-shot macOS CoreWLAN Quick Connect adapter;
- K1 LAN status and private-address validation;
- subscribe-only data MQTT transport plus a separately bounded canonical
application-control transport;
@@ -74,7 +75,8 @@ in-process and its health is lifecycle-only; process isolation, crash/restart
containment and signed deployment remain later supervisor gates.
The compatibility profile is descriptive and cannot itself authorize a vendor
write. The UI selects the exact firmware `3.0.2` / direct-LAN profile; the
write. The UI selects the exact firmware `3.0.2` local-network profile and an
exact topology for Bridge, Quick Connect or Direct Connect; the
canonical bootstrap then requires a correlated live `DeviceInfo` match for
model `LixelKity K1`, platform type `A4`, activation and firmware before START.
Validate the current exact-match profile without device I/O with:
@@ -83,7 +85,18 @@ Validate the current exact-match profile without device I/O with:
uv run python plugins/xgrids-k1/profile_loader.py
```
Plugin v0.5.0 installs that reviewed transport behind explicit plugin actions.
Plugin v0.6.0 retains the physically accepted v0.5.0 control transport and adds
the connection matrix behind the existing explicit `network.provision` action.
Bridge remains the default. Direct Connect sends the same single reviewed
99-byte frame with credentials for an already-running controller hotspot. Quick
Connect sends no BLE write: a short-lived Swift/CoreWLAN helper receives the
operator-entered K1 AP credentials only over stdin, performs at most one scan
and one association, and never receives an automatic retry. Mission Core then
uses the observed K1 AP data-plane address. Automatic extraction of AP
credentials from undocumented BLE data is deliberately not implemented.
Plugin v0.5.0 installed the reviewed application-control transport behind
explicit plugin actions.
The normal UI accepts the project name and one explicit launch confirmation.
It then performs operations 16, operation 7 and operations 810 only after the
previous response barrier succeeds, prepares local reception, and emits one
+4 -3
View File
@@ -6,15 +6,16 @@ generic application source tree.
The contribution contains:
- `K1ProvisioningPipeline` for power confirmation, BLE discovery and the
reviewed Wi-Fi provisioning write;
- `K1ProvisioningPipeline` for power confirmation, BLE discovery and the three
explicit local connection directions: Bridge, Quick Connect and Direct
Connect;
- `K1AcquisitionPipeline` for explicit canonical connection/workspace/project/
START checkpoints, local receiver preparation and compatibility file replay;
- `K1SpatialControls` for an explicit no-retry STOP followed by the separate
READY plus steady-green completion gate;
- plugin-local diagnostics, metrics, API state, lifecycle mapping,
observation-source mapping and scoped styles;
- typed v0.5.0 interactive application-control state plus legacy shadow
- typed v0.6.0 local-network and interactive application-control state plus legacy shadow
inspection contracts;
- `plugin.ts`, which binds the manifest `device.connection` component key to
the runtime provider and connection view.
+14 -10
View File
@@ -4,14 +4,17 @@ This directory is the plugin-local, versioned compatibility vocabulary for
verified K1 wire behavior. It is deliberately **not** a platform ontology and
does not add runtime dependencies on NODE.DC Ontology Core.
The first profile is
[`fw-3.0.2/direct-lan.v1.json`](fw-3.0.2/direct-lan.v1.json). It matches exactly:
The active profile is
[`fw-3.0.2/local-network.v2.json`](fw-3.0.2/local-network.v2.json). It matches exactly:
- model: XGRIDS LixelKity K1;
- firmware: `3.0.2`;
- topology: K1 and connector on the same owner-controlled LAN;
- evidence scope: one physical scanner across controlled direct-LAN and
owner-operated LixelGO/iPhone laboratory runs.
- topology matrix: Bridge (`direct-lan`), Quick Connect (`device-ap`) and
Direct Connect (`controller-hotspot`);
- evidence scope: one physical scanner across Mission Core Bridge and
owner-operated LixelGO/iPhone Quick Connect runs. The Direct Connect adapter
reuses the same physically accepted 99-byte BLE Wi-Fi frame, but its complete
Mission Core path still awaits a separate physical acceptance run.
It must not be applied to another firmware or treated as a vendor API claim.
Unknown firmware fails closed.
@@ -63,14 +66,15 @@ The loader uses only the Python standard library and performs no device I/O:
python plugins/xgrids-k1/profile_loader.py
```
It verifies the exact firmware/topology scope, evidence vocabulary, source
references, GATT UUIDs, MQTT subscribe-only boundary, channel evidence, camera
RTSP/H.264 endpoints, operator-manual acquisition, and disabled vendor request
mappings.
It verifies the exact firmware/topology matrix, each mode's bounded network
actions, evidence vocabulary, source references, GATT UUIDs, local MQTT
boundary, channel evidence, camera RTSP/H.264 endpoints, operator-manual
acquisition, and disabled descriptive-profile vendor request mappings.
## Evolution rules
1. A different firmware or topology gets a new profile file and profile ID.
1. A different firmware or connection topology gets a new profile file and
profile ID unless it is added through another evidence-backed schema revision.
2. New evidence may only promote the flags supported by retained raw evidence,
a documented decoder/replay check, or a physical lab report.
3. Unknown fields remain explicit; they are never filled from naming or payload