kcode-jsonrpc-stdio 0.3.0

Bounded asynchronous child-process JSONL transport for header-omitted JSON-RPC values.
Documentation
# kcode-jsonrpc-stdio

Bounded Tokio JSONL transport for one supplied child command. It owns process
streams, framing, stderr capture, and lifecycle; `kcode-jsonrpc-wire` validates
header-omitted JSON-RPC values.

Public API: `Config { inbound_capacity }`, `StdioRpc::spawn`, `send`, `next`,
and `shutdown`; `ProcessExit { status, stderr }`; typed `Error`; and explicit
inbound-line, outbound-line, stderr-capture, and queue-capacity limits.

`spawn` rejects invalid capacity, forces piped streams and kill-on-drop, and
starts dedicated stdout and stderr tasks. Sends are compact, ordered, bounded,
and permanently lose stdin after write or flush failure. The cancellation-safe
stdout task applies bounded newline framing before UTF-8, JSON, and wire
validation; any failure is terminal. Buffered EOF validates UTF-8 before
`IncompleteFrame`; empty EOF is `StdoutClosed` for a live child and may be
`ProcessExited` for one already exited. Later reads return `ReaderUnavailable`.

Stderr drains independently to EOF while retaining at most 64 KiB of sanitized
text. Shutdown drops stdin and inbound delivery, kills a live child best-effort,
reaps it, and aborts and joins the reader without waiting on a full queue. The
crate owns no correlation, timeout, retry, restart, replay, or Codex policy.