Epic: E3 — The live host link in the app
Release: v1 · Layer: Core
The host arms the device; the device reports readiness, never a state name.
Components
- Arm/disarm from the host — ✅ composed
5dfb47c, reaching AppModel through a delegate - Readiness measurement on the wire — ✅ composed, returned from the
arm call rather than published later (MSG 5.2a) - Keepalive lapse → cold — ✅ built.
AppModel.hostLinkDidLoseLink (AppModel.swift:1357). ⚠ Scoped to warm → cold per REQ-STATE-3, and it deliberately does not go cold under an open preview Stream: that would stop the camera and nothing would restart it, since 5.11.2 gives the host no reason to ask twice - ⛔ The two halves have never met. Ours built 27 Aug, PinPointStudio's built 27 Aug — test 4 of
hardware-run-2026-08-27.md
Exit criterion
The host arms the device; RT-10's message half closes.
Requirements
REQ-STATE-1, REQ-STATE-3
Scope: delivery-scope.md · Requirements: traceability.md · PRD: capture-companion-requirements.md · Conformance: ppcp-conformance.md
Epic: E3 — The live host link in the app
Release: v1 · Layer: Core
Components
5dfb47c, reachingAppModelthrough a delegatearmcall rather than published later (MSG5.2a)AppModel.hostLinkDidLoseLink(AppModel.swift:1357). ⚠ Scoped to warm → cold per REQ-STATE-3, and it deliberately does not go cold under an openpreviewStream: that would stop the camera and nothing would restart it, since 5.11.2 gives the host no reason to ask twicehardware-run-2026-08-27.mdExit criterion
The host arms the device; RT-10's message half closes.
Requirements
REQ-STATE-1, REQ-STATE-3
Scope: delivery-scope.md · Requirements: traceability.md · PRD: capture-companion-requirements.md · Conformance: ppcp-conformance.md