Repository navigation
v3.5.0
Minor Changes
-
a5434b0: Add an optional, default-off connect timeout to all five ports. It bounds only the connection-establishment phase, so a black-holed connect — a SYN to a dead pod IP still lingering in a ClusterIP's iptables — fails in ~that window and the configured retry can land on a live endpoint, instead of stalling until the whole-request timeout. Slow-but-alive handlers are unaffected, and leaving it unset preserves the previous behavior exactly.
- TypeScript:
connectTimeoutMs/FetchBuilder.withConnectTimeout(ms). Node only, via an undiciAgentdispatcher;undiciis an optional peer dependency, imported lazily and only when a connect timeout is requested. Ignored in browser/worker builds, which expose no such knob. - Python:
TimeoutOptions(connect_timeout_ms=...), mapped tohttpx.Timeout(connect=...). - Rust:
FetchOptions::connect_timeout_ms/FetchBuilder::with_connect_timeout, mapped toreqwest'sconnect_timeout. - Go:
ClientBuilder.WithConnectTimeout(d), applied to a cloned default transport's dialer. A caller-supplied*http.Clientis left untouched. - .NET:
SmooFetchOptions.ConnectTimeout/SmooFetchBuilder.WithConnectTimeout(ts), mapped toSocketsHttpHandler.ConnectTimeout. Not applied toIHttpClientFactory-owned handlers, which own their own handler.
All five regression tests read their knobs from
spec/connect-timeout-corpus.jsonso the timing thresholds cannot drift apart per language. - TypeScript:
Patch Changes
-
5c8c71e: Drop two runtime dependencies from the published package.
@faker-js/faker— a test-data generator — was a runtime dependency, imported at module load, solely to build cosmetic names for the internal mollitia modules (smooai-fetch-retry-blue-cat). Those names only need to be unique within the process, so they come from a counter now.@standard-schema/utilswas declared but never imported by anything insrc/; it reaches this package transitively through@smooai/utils, which declares it itself.The remaining runtime dependencies (
mollitia,lodash.merge,@smooai/logger,@smooai/utils,@standard-schema/spec) are each load-bearing and stay.