Parent: #12
Goal
Add a small no-hardware network stream framing contract so external module processes can exchange Leash stream messages over localhost TCP without knowing whether the peer is in-process or out-of-process.
Scope
- Define a versioned TCP JSONL stream frame for
StreamMessage payloads.
- Add standard-library/Tokio helpers to write and read newline-delimited frames over TCP.
- Prove loopback cross-process-style communication in tests without requiring hardware or external services.
- Document the contract as the first cross-process/network transport boundary while keeping
memory and local-pubsub as the default runtime transports.
Acceptance
cargo test covers a loopback TCP sender/receiver exchanging a stream message.
- The JSONL frame includes a stable schema/version marker and rejects unsupported versions.
- Existing runtime stream transport behavior remains unchanged by default.
- README/docs explain when to use the TCP JSONL boundary and what remains out of scope.
Parent: #12
Goal
Add a small no-hardware network stream framing contract so external module processes can exchange Leash stream messages over localhost TCP without knowing whether the peer is in-process or out-of-process.
Scope
StreamMessagepayloads.memoryandlocal-pubsubas the default runtime transports.Acceptance
cargo testcovers a loopback TCP sender/receiver exchanging a stream message.