AppError — discriminated union mirroring the Rust AppError enum.
The IPC envelope shape is { kind, message, retryable, details? }. Each variant carries the same fields that the Rust serializer emits.
{ kind, message, retryable, details? }
OCP: adding a new backend variant = adding one union member here + one branch in present(). No other consumer changes.
present()
AppError — discriminated union mirroring the Rust AppError enum.
The IPC envelope shape is
{ kind, message, retryable, details? }. Each variant carries the same fields that the Rust serializer emits.OCP: adding a new backend variant = adding one union member here + one branch in
present(). No other consumer changes.