NeuroReach: pairing and local delivery contract
pairing codes: expiry, second browser, reconnect, sidecar dying. Need to try all the annoying paths, especially browser still connected while Python is gone
- lAN responsibilities: serve the React build over HTTPS, pair one browser to a live session, relay score messages, broker WebRTC signaling and supervise the local sidecar connection. The spec locates this under
clinician-console/src/main/lan/.
- pairing format: six-character code using a confusable-free alphabet, exposed through a QR/URL. The paired socket is scoped to one live session; a second claimant receives
session_taken; the code expires at end/timeout. Patient identity is taken from the paired acknowledgement rather than hard-coded in the client.
- boundary to verify: the patient-facing channel must not expose the clinician's
eeg_qualitystream, roster or database. The specification describes an Origin allowlist and local TLS provisioning, but implementation and deployment checks remain separate from the architecture description.
- review questions: what is the actual TTL, and when does reconnect reuse versus invalidate a pairing? Are expired/replayed codes rejected? What happens if the sidecar dies while the browser stays connected? Can a clean offline machine launch the full stack after certificate/device setup?
- status: pairing foundation is marked delivered; installer/certificate provisioning, full hardening and clean-machine smoke testing are pending in the source roadmap. Treat this note as an interface/test reference, not an assurance of security certification.