feat(rustbridge): add streaming responses and robust large-payload/backpressure handling to RustBridge

This commit is contained in:
2026-02-11 00:12:56 +00:00
parent dcb88ef4b5
commit 5fb991ff51
11 changed files with 798 additions and 84 deletions

View File

@@ -1,5 +1,18 @@
# Changelog
## 2026-02-11 - 1.2.0 - feat(rustbridge)
add streaming responses and robust large-payload/backpressure handling to RustBridge
- Introduce StreamingResponse type and export it (for-await-of iterator + .result promise)
- Add sendCommandStreaming API to send streaming commands and receive chunks + final result
- Implement buffer-based stdout newline scanner to handle large messages and avoid readline limits
- Add backpressure-aware writeToStdin to wait for drain when writing large outbound payloads
- Add maxPayloadSize option and enforce outbound/inbound size checks to prevent OOMs
- Add streamTimeoutMs (inactivity timeout) and reset timeout on each received chunk
- Improve stderr handling (cross-chunk buffering and trimmed emits)
- Update mock test binary and extensive tests for streaming, large payloads, concurrency, and error cases
- Add TypeScript types for streaming commands (TStreamingCommandKeys, TExtractChunk, IManagementStreamChunk)
## 2026-02-10 - 1.1.2 - fix(rust-binary-locator)
use import.meta.resolve and url.fileURLToPath to locate bundled Rust binary in ESM environments