LibTmux.Capture (libtmux v0.0.1-alpha.1)

Copy Markdown View Source

Builds a bounded one-shot observation of one existing Linux tmux server.

Capture checks topology and OS server identity before and after field reads. At most two attempts share the original deadline and work budgets; attempts accepts 1–3. Only inconsistent topology or disappearing read targets retry. Decoding and coverage errors remain visible.

Defaults: 1024 contextual entity rows, 512 commands, 8 MiB total response bytes, 64 KiB per response and 5000 ms. Exceeding a ceiling returns an error, never a partial success. Linked rows count against the work limit. Capture adds no control attachment. Hooks configured on list commands can still have effects; retries do not replay application mutations.

Summary

Types

Capture-wide budgets shared by all attempts and reads.

Functions

Performs bounded capture through an explicit server descriptor.

Types

option()

@type option() ::
  {:timeout, pos_integer()}
  | {:deadline, LibTmux.Deadline.t()}
  | {:attempts, 1..3}
  | {:max_entities | :max_commands | :max_bytes | :max_response_bytes,
     pos_integer()}

Capture-wide budgets shared by all attempts and reads.

Each read uses the smaller of remaining max_bytes and max_response_bytes. That effective ceiling must fit OneShot's 16 MiB stdout limit. The shared deadline must have at most 600,000 ms remaining when OneShot validates a read. Invalid combinations raise ArgumentError before that command executes.

Functions

fetch(server, options \\ [])

@spec fetch(LibTmux.Server.t(), [option()]) ::
  {:ok, LibTmux.Snapshot.t()} | {:error, LibTmux.Error.t()}

Performs bounded capture through an explicit server descriptor.

See option/0 for the composed work, response and remaining-deadline constraints inherited from LibTmux.Transport.OneShot.run/3.