From cc9070991923b11bfaef174e5cab9f0af2a07bb9 Mon Sep 17 00:00:00 2001 From: DCCONSTRUCTIONS Date: Mon, 7 Sep 2026 21:43:19 +0300 Subject: [PATCH] Record owner-confirmed onboard K1 Bridge laboratory checkpoint --- .../audits/2026-09-07-k1-between-scans-r16.md | 12 ++ ...09-07-k1-node-bridge-lab-checkpoint-r16.md | 126 ++++++++++++++++++ 2 files changed, 138 insertions(+) create mode 100644 docs/audits/2026-09-07-k1-node-bridge-lab-checkpoint-r16.md diff --git a/docs/audits/2026-09-07-k1-between-scans-r16.md b/docs/audits/2026-09-07-k1-between-scans-r16.md index 8130205..a0c4eda 100644 --- a/docs/audits/2026-09-07-k1-between-scans-r16.md +++ b/docs/audits/2026-09-07-k1-between-scans-r16.md @@ -127,6 +127,18 @@ and return, then start another named scan without a separate recovery action. Also inspect autofill colors and the live scene corners. Physical and browser/GPU visual acceptance remain pending; no such acceptance is claimed from build/tests. +### Owner laboratory checkpoint after installation + +The owner subsequently reports that the normal repeated Bridge workflow works +and that K1 remains connected after closing the browser tab and opening the same +Mission Core address in a new tab. This closes the bounded owner laboratory +workflow gate, not the multi-scenario robustness gate. The owner explicitly did +not test critical/failure scenarios and does not accept the overall Node/K1 +connection contour as fully complete. Autofill/corner presentation is not +independently certified by this general functional confirmation. The consolidated +scope, implementation history and open acceptance matrix are recorded in +`2026-09-07-k1-node-bridge-lab-checkpoint-r16.md`. + Final canonical Core health: HTTP 200, ok=true. Port 8000 remains on the original PID 88424 at the pre-install check; no backend on 8765. No Docker service or temporary application server was started. The installer was the only new diff --git a/docs/audits/2026-09-07-k1-node-bridge-lab-checkpoint-r16.md b/docs/audits/2026-09-07-k1-node-bridge-lab-checkpoint-r16.md new file mode 100644 index 0000000..848e7b9 --- /dev/null +++ b/docs/audits/2026-09-07-k1-node-bridge-lab-checkpoint-r16.md @@ -0,0 +1,126 @@ +# Mission Core → onboard Node → K1 Bridge: laboratory checkpoint R16 + +## Decision and evidence boundary + +On 2026-09-07, after installing R16, the owner confirms that the repeated normal +workflow works in the current controlled laboratory setup. They additionally +closed the browser tab, opened the same Mission Core address in a new tab and +found K1 still connected. Through Mission Core, the owner can connect K1 to the +onboard computer in Bridge mode, configure a named acquisition, start/observe +and stop it, then return without the previous mandatory manual reconnection. +Earlier owner runs in this conversation showed actual camera, point cloud and +trajectory, as well as successful physical START and STOP. + +Acceptance level: **working laboratory scenario, broader robustness unproven**. +This is owner-reported physical/UI evidence, separate from automated regressions +and package/service readback. No new agent-controlled physical experiment was +performed, and no raw capture, secret, network credential or device identifier is +included here. The exact count and duration of repeated scans were not measured. +The general confirmation does not independently certify every visual detail. + +The owner explicitly states that critical scenarios were not exercised. Do not +mark the complete Mission Core/Node/K1 connection contour or Node architecture +finished. Do not generalize this result to other networks, devices, firmware, +Quick Connect, GNSS/RTK modes or autonomous mission operation. The next work +assignment will come from the owner; the matrix below is an open gate, not an +instruction to begin physical fault injection. + +## Architecture represented by this result + +Operator intent travels from Control Station through Core Fleet and the paired +Node broker to the isolated K1 plugin. Node remains responsible for local +device access and recording; Core/browser provide operator control and viewing. +Preview recovery does not own physical START/STOP or Wi-Fi provisioning. +Enrollment, connectivity, acquisition, recording and preview are separate states. +Direct K1 and onboard views consume shared product components while retaining +their transport, profile and authority boundaries. + +This checkpoint does not amend the frozen architecture baseline in +MISSIONCOR-76. Implementation progress belongs in that card's comments; current +integration details belong in MISSIONCOR-3, and the project summary in +MISSIONCOR-2. The older direct-Mac acceptance remains distinct from this Linux +onboard laboratory result. + +## Work consolidated from the conversation + +| Area | Implemented result and causal evidence | +| --- | --- | +| Linux installation and control authority | Separate Node/K1 packages, supplied runtime and services; systemd credential delivery accepted without exporting the existing encrypted credential into R12–R16 updates. Linux route contract and Node/plugin operation identity translation corrected in earlier stages. Installed R9 physically enabled START/STOP. | +| RRD transport, R10 | SCTP fragmentation previously fed partial RRD fragments directly into the decoder. A bounded versioned envelope now reassembles complete native payloads before decoding; malformed, partial and oversized input is rejected. FFmpeg path and delayed camera producer admission corrected. | +| Idle preview and shared scene, R12 | An empty native sink read returned None and incorrectly killed the peer. Idle reads now preserve channels; freshness comes from source metadata. Direct and onboard views share the established scene, controls and camera composition. Camera delivery waits for the actual recording producer/committed media and cannot start a producer after STOP. | +| Accumulation and route continuity, R13 | Outbox/backpressure previously replaced the recording and erased history. Protocol v3 preserves recording identity and batch/ACK cursor across disposable peer recovery, with bounded queues, deduplication and explicit expired-resume rejection. Preview never blocks the archive or repeats device commands. Source freshness remains separate from retained history. | +| Operator flow, R13–R15 | Shared spatial scene and K1 phase/timing/route/speed capsule; engine/layer/display controls, accumulation and floating camera. Removed redundant status/loading panels and unused LAB/AI chrome. Full-width configuration action; camera waiting overlay no longer covers its draggable header. Shared installation/GNSS/project fields gate START on a valid name; current admitted modes remain handheld/no RTK. Shared password visibility control and precise connection failure presentation. | +| Bluetooth and verification, R14–R15 | 18:03 failure was a missing BlueZ object before Connect/GATT/Wi-Fi write. R14's nested discovery introduced another failure; the native historical error code was not retained, while the installed-client synthetic reproduction produced InProgress. R15 uses one selected-device discovery context held through Connect, removes premature capture revocation and shares policy-bound verification for enrollment/detail. These failures were before password delivery, not evidence of a wrong Wi-Fi password. | +| Between scans, R16 | Completed STOP/READY previously closed the control socket and projected connection loss. The idle socket now remains serviced. The next explicit START opens a fresh one-shot command dialogue for the same bound device/network without another BLE/provisioning step. Generation/CAS and physical ledger guards remain; actual loss still requires proof/recovery. The adapter also no longer mistakes its own just-admitted pending START for a separate unresolved command. | +| Connection and field presentation, R16 | Inventory reports communication separately from acquisition completion. Canonical Design Guideline Field owns neutral autofill colors. Shared spatial viewport has one rounded compositing clip. Actual GPU corner/autofill detail acceptance is not inferred from the broad functional confirmation. | + +R12 stability and R14 enrollment were failed intermediate acceptance attempts; +their installation success and synthetic tests were not treated as physical +success. The final implementation supersedes those intermediate mechanisms. + +## Source and delivery + +Key source commits: R10 `92b60de`, R11 `ad24518`, R12 `fa8ac76` + `9e03404`, +R13 `9bba44f`, R14 `eed53db`, R15 `762d77e`, R16 +`c6693d6f442e0d2bb4ea3c5710db7af44d41b667`. Installation verification is +`ee5d760`. Design Guideline autofill commit/pin: +`26a1bf72a2a32b002e51f910e8faa300333bb6c3`. + +Installed R16: Node **0.8.13**, K1 **0.1.13**, both install-ok and active/running, +NRestarts=0 at post-install readback. Service starts: 21:22:04/21:22:13 MSK; +bounded warning-or-higher journal since startup was empty. Core health was +HTTP 200, ok=true, and Fleet reported the board online. These observations +precede the owner's final confirmation; they are not continuous monitoring. + +- Node DEB SHA-256: `d5571c956f305ee658a9119d7afeecfb47c99a2aa9dffad37ad2ba9b5e25e592`. +- K1 DEB SHA-256: `0cb5826f6c452189c19d69291552492da56bb88b08715fddff8c31eb587a7429`. + +Archive members/provenance and remote hashes were checked. R16 contains no +private application key. Owner entered sudo in the Ubuntu GUI; installed state +was verified independently. Source changes are committed locally. This report +does not claim a Git push or remote branch synchronization. + +Principal implementation files: `src/k1link/viewer/node_media.py`, +`node_rerun.py`; K1 `ble/scanner.py`, `ble/wifi_provisioning.py`, +`ble/ap_activation.py`, `node_bridge.py`, `node_sensor.py`, `facade.py`, +`camera.py`, `protocol/application_session.py`, `application_acceptance.py`; +`packages/spatial-ui/src/SpatialScene.tsx`, `FloatingMediaWindow.tsx`, +`spatial.css`; K1 frontend `K1AcquisitionFields.tsx`, `K1SpatialSession.tsx`, +`K1WifiPasswordField.tsx`, sensor preview/enrollment/presentation adapters; +Node/K1 package builders and service definition; DG `packages/ui-core/styles.css` +with registry/docs/catalog updates. Exact paths and individual changes are in +the commits and dated R10–R16 audits. + +## Validation performed + +R16: 167 control/protocol/Node/supervisor/coordinator checks, final affected +subset 89; full acquisition lifecycle 631; installer/package 14; Control Station +809; TypeScript/production builds, DG registry/build, Node UI/Go/package build, +K1 package inspection, Ruff and whitespace checks passed. Counts overlap where +subsets were rerun and must not be summed as unique tests. + +R13 included real bounded loopback WebRTC with native RRD fragmentation, +backpressure beyond the old timeouts, ACK loss/resume and camera idle/resume. +R15 included the real pinned Bleak manager/scanner against a synthetic D-Bus +wire, without hardware access. These regressions protect implementation +contracts; they do not establish field reliability or a long-running rate. + +## Acceptance retained and still required + +- [x] R16 package installation and service health verified. +- [x] Owner confirms normal repeated Bridge workflow in the current laboratory. +- [x] Owner confirms K1 connection survives closing/reopening the browser tab. +- [x] Camera/cloud/trajectory and UI START/STOP observed in this conversation. +- [ ] Measured 10/20/30 scan cycles, long idle intervals and long acquisition. +- [ ] Browser/Core/Node/plugin failures separately while idle, capturing and finalizing. +- [ ] K1 sleep, power interruption, wake/reboot and recovery after each stage. +- [ ] Network outage/degradation, changed DHCP address, router restart and changed network settings. +- [ ] Lost/delayed/duplicated command replies with proof of no repeated physical START/STOP/write. +- [ ] Preview congestion/recovery under varied load without false live status or hidden history reset. +- [ ] Storage pressure, interrupted finalization and durable archive integrity/recovery. +- [ ] Concurrent tabs/operators, stale generations and mismatched device identity. +- [ ] Other host/device/firmware/topology profiles and full UI visual matrix. + +Decision: retain the working checkpoint and keep broader onboard connection +acceptance open. No claim of production reliability, autonomous mission +readiness, complete Node requirements, or multi-device generalization is made.