Immutable evidence from a duplex session's terminal path.
:status is the native child exit code or signal, even when cleanup was
unconfirmed. It is nil if no EXIT frame arrived. :confirmation is one
of :confirmed, :unconfirmed, :timeout, :transport_lost, or
:not_started. :scope is :process_group, :active_cgroup, or
:unknown; it describes the mechanism the shim reported, not proof that
an escaped descendant outside that mechanism was confined.
:output is :complete, :truncated, :unknown, or a typed limit tuple
such as {:limit, :line, :stdout, 65536}. Cleanup confirmation and output
completeness are independent observations.
Summary
Types
@type t() :: %Forcola.Duplex.Terminal{ cause: :child_exit | :timeout | :explicit_close | :owner_death | :shim_lost | :session_lost | :output_limit | :spawn_error, confirmation: :confirmed | :unconfirmed | :timeout | :transport_lost | :not_started, output: :complete | :truncated | :unknown | {:limit, :line | :total, atom(), pos_integer()}, scope: :process_group | :active_cgroup | :unknown, status: non_neg_integer() | {:signal, non_neg_integer()} | nil }