ClaudeWrapper.DuplexSession.Adapter.Forcola (ClaudeWrapper v0.15.2)

Copy Markdown View Source

Bounded duplex transport backed by Forcola.Duplex.

The DuplexSession process owns the Forcola session directly, so its death closes the child's process group. A separate puller demands one stdout or stderr line at a time and waits for the session to acknowledge it before demanding another. Stderr is kept out of the NDJSON parser.

Select this optional adapter with adapter: __MODULE__ or set config :claude_wrapper, duplex_adapter: __MODULE__. It requires forcola >= 0.4.0 and < 0.7.0 and a POSIX host.

:adapter_opts accepts :max_line_bytes, :max_output_bytes, and :max_pending_bytes (defaults: 1 MiB, 64 MiB, and one line plus its newline), plus :stderr_capture_bytes for the wrapper's bounded stderr tail (default 16 KiB). :terminal_recipient can name an independent process that receives Forcola's terminal record even if the session owner dies. :kill_grace_ms, :cgroup, and :shim_path are passed through. Pull delivery and separate stderr are always enabled.