Forcola.Duplex.Terminal (forcola v0.4.0)

Copy Markdown View Source

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

t()

@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
}