feat(I199): mirror StreamFrame types (lockstep) #2

Merged
buildagent merged 2 commits from feat/i199-streaming-mirror into main 2026-05-27 20:52:14 +02:00
Member

Summary

SDK-side mirror of the streaming primitives shipping in spec 23.

  • streaming module — clean Rust types (StreamId, StreamFrame, InteractionKind, CloseReason, CancelReason, StreamErrorCode, StreamData, StreamError). Mirrors the host-side ixt_core::streaming surface with #[non_exhaustive] on every extensible enum.
  • stream_wire module — stream_frame_to_capnp / _from_capnp round-trip converters using the new ipc_streaming.capnp schema.
  • build.rs extended to compile ipc_streaming.capnp alongside the existing three schemas.

Pre-1.0, no deprecated aliases (feedback_no_premature_compat). Phase 2a: SDK modules ship as callees only — the open_stream caller-side surface stays in the runtime until the WASM async ABI lands (spec 23 §11 Phase 2b).

Lockstep — paired with:

  • ixt-public: feat/i199-streaming-wire (Cap'n Proto schema) — merge first
  • h-dv/ixt: feat/i199-part2-streaming — merge last

Test plan

  • cargo test -p ixt-sdk --lib — 24 tests pass (16 baseline + 8 new streaming round-trips)
  • cargo clippy -p ixt-sdk --all-targets -- -D warnings — clean
  • cargo fmt --check — clean
## Summary SDK-side mirror of the streaming primitives shipping in spec 23. - `streaming` module — clean Rust types (`StreamId`, `StreamFrame`, `InteractionKind`, `CloseReason`, `CancelReason`, `StreamErrorCode`, `StreamData`, `StreamError`). Mirrors the host-side `ixt_core::streaming` surface with `#[non_exhaustive]` on every extensible enum. - `stream_wire` module — `stream_frame_to_capnp` / `_from_capnp` round-trip converters using the new `ipc_streaming.capnp` schema. - `build.rs` extended to compile `ipc_streaming.capnp` alongside the existing three schemas. Pre-1.0, no deprecated aliases (`feedback_no_premature_compat`). Phase 2a: SDK modules ship as callees only — the `open_stream` caller-side surface stays in the runtime until the WASM async ABI lands (spec 23 §11 Phase 2b). Lockstep — paired with: - `ixt-public`: feat/i199-streaming-wire (Cap'n Proto schema) — merge first - `h-dv/ixt`: feat/i199-part2-streaming — merge last ## Test plan - [x] `cargo test -p ixt-sdk --lib` — 24 tests pass (16 baseline + 8 new streaming round-trips) - [x] `cargo clippy -p ixt-sdk --all-targets -- -D warnings` — clean - [x] `cargo fmt --check` — clean
SDK-side mirror of the streaming primitives shipping in spec 23:

* `streaming` module — clean Rust types (`StreamId`, `StreamFrame`,
  `InteractionKind`, `CloseReason`, `CancelReason`, `StreamErrorCode`,
  `StreamData`, `StreamError`). Mirrors the host-side `ixt_core::streaming`
  surface with `#[non_exhaustive]` on every extensible enum.
* `stream_wire` module — `stream_frame_to_capnp` / `_from_capnp`
  round-trip converters using the new `ipc_streaming.capnp` schema.
* `build.rs` extended to compile `ipc_streaming.capnp` alongside the
  existing three schemas.

Pre-1.0, no deprecated aliases (`feedback_no_premature_compat`). Phase
2a: SDK modules ship as callees only — the `open_stream` caller-side
surface stays in the runtime (proprietary) until the WASM async ABI
lands (spec 23 §11 Phase 2b).

Lockstep — paired with:
- `ixt-public`: feat/i199-streaming-wire (Cap'n Proto schema)
- `h-dv/ixt`: feat/i199-part2-streaming (ixt-core streaming module +
  MessageBus integration + integration tests)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Spec 20 §3.5 mandates `Rejected/Dropped/Deferred/Killed` — no fifth
term. Mirror the parent's enum-value rename so SDK consumers see the
same vocabulary as the runtime.

Wire-incompatible — accepted because no consumer has shipped (pre-1.0,
`feedback_no_premature_compat`).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
h-dv/ixt-sdk-rust!2
No description provided.