Problem
When an embedded-Racket host app crashes, there is no way to tell which layer failed: the Racket backend, the C ABI bridge, or the native client/runtime. The Taskly pilot hit this in the Sep 21 Windows debugging slog — crash phases were isolated manually by building throwaway console hosts, and the migration doc's acceptance gate now explicitly demands better.
A crash report that only says "process exited" costs hours; one that says "Racket backend raised during backend-init" or "bridge dropped the protocol channel" costs minutes.
Proposed fix
- rivet runtime tags and logs layer-attributed lifecycle events (backend init, handshake, per-RPC dispatch, exit) to a well-known sink
- native-side failures (ABI bridge, client runtime) write a structured crash/exit record naming the layer and the last protocol event
- keep it dependency-light: a single log line format both sides agree on is enough for v1
RIVET-LIB-BACKLOG item 4 (P1).
Problem
When an embedded-Racket host app crashes, there is no way to tell which layer failed: the Racket backend, the C ABI bridge, or the native client/runtime. The Taskly pilot hit this in the Sep 21 Windows debugging slog — crash phases were isolated manually by building throwaway console hosts, and the migration doc's acceptance gate now explicitly demands better.
A crash report that only says "process exited" costs hours; one that says "Racket backend raised during backend-init" or "bridge dropped the protocol channel" costs minutes.
Proposed fix
RIVET-LIB-BACKLOG item 4 (P1).