Files
trail-mate/docs/engineering/linux-hostlink-track-confirmation.md
T
Trail Mate Dev 6e613e382e Add CM0 Linux support and share device services across platforms
Compose the CM0 fullscreen application and standard Debian package, align the
Cardputer Zero shell, and share protocol, configuration, audio and storage
services with embedded targets through existing platform seams.

Add the paginated on-device TMAP creator using Center's published producer,
private workspace recovery and direct keyboard shortcuts. Preserve unfinished
management work behind its existing opt-in capability.

Include native, ARM and shared-core regression fixtures, integration records,
packaging helpers and dependency/license updates. Keep local build trees,
device credentials, produced packages and validation logs outside version control.

Validation before integration: ESP stack hygiene, Reticulum scope guard, staged
whitespace checks and GitNexus scope audit. Prior device/build evidence and
remaining hardware/package boundaries are recorded in the acceptance documents.
2026-10-29 10:29:29 +08:00

3.6 KiB

Linux HostLink IP publication confirmation

Operations 97 and 98 connect the production web client's signed IP publication receipt and history restoration workflows to a native HostLink worker owner. The implementation uses the shared IpConfirmationWork; its manifest, author, receipt, reservation and head predicates remain common to the ESP implementation. This feature requires neither an active RF protocol nor a board-specific device.

Ownership and durability

HostlinkTrackConfirmation owns one bounded request and heap workspace. The request binds the management session, current author generation, signing operation, sealed receipt upload, directory public key and delivery identity, directory epoch, network request, object and signed revision. History import additionally binds a sealed manifest upload and its author signature. No private key crosses HostLink.

Only this session's sealed receipt or manifest upload with the exact identity, hash and transfer binding can release its transient upload lease. Shared work then authenticates the durable upload journals and content again under the exclusive native storage lease. Unrelated uploads remain busy. Successful retries can release a newly resealed matching proof so the production client can finish explicit upload cleanup.

Confirmation of a locally signed revision requires its reservation. History import can restore the same author's independently verified manifest and directory receipt without a local signing reservation. Before creating a missing object head, native admission rejects unknown files, directories, symlinks and unrelated evidence. The signed manifest and receipt must persist before a committed head is created. An imported history entry does not imply that its KML or attachments are installed.

Every step checks current storage and author generation. Completed retries also validate the exact durable head under a newly acquired lease; contention cannot turn a cached response into success. Disconnect, session close and a 30-second idle limit release transient owners. A fresh session can recover durable evidence.

Contract scope

Operation 84 remains a reserved enum value in the current formal implementation; neither the production browser nor the ESP management dispatcher implements a device history-list request at that number. Browser publication history and device job lookup are existing separate contracts. Linux does not advertise 84.

Verification

Ten native confirmation cases cover local confirmation, V1/V2 import, invalid receipts, stale identity, unknown files, interrupted import, cached-head contention, storage replacement and corrupted durable heads. Production browser code performs real native TCP signing, receipt upload, confirmation/import, reconnect and cleanup. An independent Python/OpenSSL TCP client also signs the directory receipts and checks both workflows. These checks establish receipt and storage interoperability; they do not establish connectivity to a live external directory server.

The focused native integration gate passed 42/42. The full native run passed 301/302, followed by a passing rerun of the test whose exact capability expectation needed 97/98. The compact suite passed 19/19. All ten confirmation scenarios passed on CM0. The independent TCP/OpenSSL checks passed against both the ARM fixture and the exact installed main application, including reconnect and upload cleanup. The standard deb passed Lintian, installation, dpkg -V, original-logo verification and isolated startup/timed exit. Current artifact hashes are recorded in the CM0 acceptance audit.