docs(k1): record connection mode acceptance
This commit is contained in:
@@ -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 1–6, operation 7 and operations 8–10 only after the
|
||||
previous response barrier succeeds, prepares local reception, and emits one
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user