Record link shapes and boundary semantics in initial plan

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013kj58Jugkic783b8ZrtTVZ
This commit is contained in:
2026-09-03 20:28:32 +09:00
parent 3b010189df
commit 3b408d43be
+21
View File
@@ -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. font rendering must be configured, or labels will be slow or absent.
- **Sunlight.** A typical tablet is unreadable through a windscreen in daylight. - **Sunlight.** A typical tablet is unreadable through a windscreen in daylight.
This is a hardware problem, but the UI should not make it worse. 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.