Connects to svc-gw over one WebSocket, heartbeats, treats timeout_ms of
silence as a dead link, and retries commands under the same id until acked.
Shows link state, signals with stale/null/missing told apart, the raw stream,
a mock banner on the surface, and a Mark button that stamps the recording.
Android: keeps the screen on and binds the process to the USB NCM network
when the gateway is on it. CI mirrors android-stuff's host-mode runner setup.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
Brings the audio sink notes in line with project-yukart decision 12 and
ORIN-RUNTIME: the wire format is chunks plus terminator from the start,
and the first receiver may buffer to the terminator, so moving to
streaming playback is a receiver-only change.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Tested against the car Orin: the tablet is USB host to the Orin's NCM
gadget (192.168.55.1). Android routes app traffic over it only when it
is the default network, so the app must bind to TRANSPORT_ETHERNET. PD
changes cost ~3 s, and an idle tablet off charger sleeps and goes
silent, so the app keeps the device awake. Two guidelines follow.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Replaces `type: default` — one value across every document, read by nothing,
so it discriminated nothing. Types are now reference, guidelines, plan and
report, applied to every markdown file with no exceptions for the hub.
Plans carry status and updated, reports carry date. REPOS.md already noted
that plans go stale and reports do not, but nothing made that visible: a plan
from months ago looked identical to one written today.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013kj58Jugkic783b8ZrtTVZ