Define display boundary protocol v0
What crosses between svc-gw and the app: hello, heartbeats both ways, state snapshots of envelopes with mock flagged per message, and commands carrying an idempotency key. TTS utterances are left for when a TTS exists. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
This commit is contained in:
@@ -20,20 +20,10 @@ observed traffic. They arrive as DBC entries plus registry rows with
|
||||
`system/<service>` have their fields named in `topics.json` but no JSON Schema
|
||||
yet. They get one when a publisher exists to constrain.
|
||||
|
||||
**The app ↔ `svc-gw` boundary protocol.** Bus topics are defined here, but the
|
||||
two channels across the boundary (latest-wins state down, acknowledged commands
|
||||
up) have no wire format yet. Project-yukart decision 24 (proposed) already
|
||||
fixes what it must carry, because the USB link drops for ~3 s at every power
|
||||
change and a sleeping tablet looks alive at the link layer:
|
||||
|
||||
- a **heartbeat** in both directions, with an agreed interval and timeout, so the
|
||||
Orin reaps a silent client instead of trusting TCP or link state;
|
||||
- an **idempotency key** on every upstream command, so retries across a
|
||||
reconnect never act twice;
|
||||
- for TTS, **utterance id + chunk sequence + terminator + an expiry**, so a
|
||||
reconnect can resume or drop an utterance rather than replay it blindly.
|
||||
|
||||
Defined when `svc-gw` and `app-flutter` first talk, not before.
|
||||
**The app ↔ `svc-gw` boundary protocol** is at v0 in [BOUNDARY.md](../../BOUNDARY.md):
|
||||
heartbeat both ways, idempotency key on every command, mock flagged per message.
|
||||
Still missing from it: the TTS utterance shape (id, chunk sequence, terminator,
|
||||
expiry), defined when a TTS exists to send one.
|
||||
|
||||
## Order
|
||||
|
||||
|
||||
Reference in New Issue
Block a user