From 3b408d43bec27792752a9343d69340e2f6e3546a Mon Sep 17 00:00:00 2001 From: Mikkeli Date: Thu, 3 Sep 2026 20:28:32 +0900 Subject: [PATCH] Record link shapes and boundary semantics in initial plan Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_013kj58Jugkic783b8ZrtTVZ --- docs/impl/plans/INITIAL.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/impl/plans/INITIAL.md b/docs/impl/plans/INITIAL.md index dde09f9..6a561bd 100644 --- a/docs/impl/plans/INITIAL.md +++ b/docs/impl/plans/INITIAL.md @@ -24,3 +24,24 @@ needs no routing engine at all. Routing is the expensive last fraction. font rendering must be configured, or labels will be slow or absent. - **Sunlight.** A typical tablet is unreadable through a windscreen in daylight. This is a hardware problem, but the UI should not make it worse. + +## The boundary, from this side + +Two channels with different guarantees, not one socket: + +| | Down (state) | Up (commands) | +|---|---|---| +| Transport | push stream | request/response | +| Loss | tolerated; next sample supersedes | **not** tolerated; retry until acknowledged | +| On reconnect | expect current state immediately | resend anything pending | + +This client always initiates and owns reconnection — the Orin never dials out. +Assume the link drops constantly: cable knocked, screen off, WiFi lost. + +## Session marking is worth building early + +A button that stamps an event (`indicator on`, `cold start`, `hard braking`) into +the recording, on the same clock as the CAN frames, turns the Phase 1 manual event +log from a notebook-and-wristwatch exercise into structured data. It is what makes +a raw capture decodable later, and it is a Phase 1 capability that happens to live +in this repo.