7f89db105805b11f3682f045bcc2a4668a12a259
FWD-15: forward_stream now sends through SharedHttpClient::stream_client — a client derived from the same config with the total request timeout removed and connect + read timeouts retained. reqwest 0.13's per-request override can lengthen a client-level total timeout but never clear it (request-scoped None falls back to the client default), so the derived client is the only correct mechanism. Both clients rebuild-and-swap together atomically (FWD-12). A healthy >30s subscription survives; the read timeout stays as the staleness guard, matching the gateway's deadline: None dispatch contract (alkcall ADR-021). FWD-14: the streaming branch enforces a total streamed-bytes cap per subscription (HttpClientConfig::stream_total_byte_cap, default 1 GiB), accumulated across every chunk fed to the SSE parser; exceeding it terminates with a single terminal HTTP_413 error envelope. The SSE line-cap check moved before extend_from_slice so the reassembly buffer can never exceed the cap. Removing the total timeout without this cap would open an unbounded-memory window, so both land together. Wire tests: keepalive trickle past a scaled total-timeout deadline keeps delivering; over-cap stream terminates with exactly one terminal error; parser boundary tests for pre-extend cap checks. Verified: cargo test (302+5), --all-features (373+41), clippy --all-targets -D warnings (default + all-features), fmt --check, doc --no-deps clean.
Description
No description provided
5.7 MiB
Languages
Rust
99.9%