Expand description
SPEC_LAUNCHER_TEARDOWN_BACKSTOP_2026_07_11 Phase 1 — UI-thread liveness telemetry (observe-only).
The supervisor’s prober sends Command::ProbeUiThread { nonce } over the
host pipe on a low-rate interval; the host answers with
Command::ReportUiThreadAlive { nonce } from a posted CEF UI task —
i.e. a reply is evidence the UI thread pumped AFTER the probe was sent.
Silence is the signal: a wedged UI thread never replies, and there is no
host-side timeout.
Phase 1 records last_alive + logs round-trip latency; Phase 2’s armed
teardown rule will consume last_alive(). Kept as a tiny standalone
module (not reducer state): this is transport+thread telemetry about the
host process, not domain state the reducer owns.
All logic lives on the UiLiveness struct (unit-testable in isolation —
reagent P1 on the first version: tests sharing the process-global cell
interleave under parallel execution); the module-level functions are
thin delegates to the single process-global instance.
Structs§
Functions§
- cell 🔒
- consecutive_
misses - See
UiLiveness::consecutive_misses. Process-global instance. - last_
alive - See
UiLiveness::last_alive. Process-global instance. - record_
alive - See
UiLiveness::record_alive. Process-global instance. - record_
probe_ sent - See
UiLiveness::record_probe_sent. Process-global instance. - retract_
probe - See
UiLiveness::retract_probe. Process-global instance.