From d5563d7971b465a0227f789ac7a6948b038c9a61 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 15 Aug 2026 00:04:15 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=A6=8B=20New=20version=20release?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .changeset/traceparent-injection.md | 30 ---------------------------- CHANGELOG.md | 31 +++++++++++++++++++++++++++++ package.json | 2 +- 3 files changed, 32 insertions(+), 31 deletions(-) delete mode 100644 .changeset/traceparent-injection.md diff --git a/.changeset/traceparent-injection.md b/.changeset/traceparent-injection.md deleted file mode 100644 index 11d44cc..0000000 --- a/.changeset/traceparent-injection.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -'@smooai/fetch': minor ---- - -Rust: optional `otel` feature that injects W3C trace context (`traceparent`) into -every outbound request, so a call made through this client continues the caller's -trace instead of starting a new root. Off by default — the crate does not link -OpenTelemetry unless you ask for it. Guards an invalid span context and never -overwrites a `traceparent` the caller set explicitly. - -TypeScript: the same injection at the same place — the single-request site, so every -retry carries a current traceparent — behind an optional `@opentelemetry/api` peer -dependency. Without it installed (or without a registered SDK) it is a no-op, not a -crash, and no all-zero `traceparent` is ever emitted. - -Python: the same injection at the same place — the single-request site, so retries carry -a current traceparent — behind an optional `smooai-fetch[otel]` extra. Without -`opentelemetry-api` installed it is a no-op, not an import error. - -Go: the same injection at the same place — `executeHTTPRequest`, the single-request -site inside the retry/timeout/breaker wrappers, so every attempt carries a current -traceparent. Uses the OTel global propagator, which defaults to a no-op, so a -service that never configured one sends nothing extra. Never overwrites a -caller-set `traceparent`, and emits nothing at all when there is no valid span -context. - -.NET: no change needed — `HttpClient`'s `DiagnosticsHandler` already injects -`traceparent` from the current `Activity`, ahead of redirects and connection -pooling, and this client keeps that handler chain intact. Tests were added to pin -that behaviour so a future custom primary handler cannot silently drop it. diff --git a/CHANGELOG.md b/CHANGELOG.md index b723ebf..ae43603 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,36 @@ # @smooai/fetch +## 3.4.0 + +### Minor Changes + +- 2c20134: Rust: optional `otel` feature that injects W3C trace context (`traceparent`) into + every outbound request, so a call made through this client continues the caller's + trace instead of starting a new root. Off by default — the crate does not link + OpenTelemetry unless you ask for it. Guards an invalid span context and never + overwrites a `traceparent` the caller set explicitly. + + TypeScript: the same injection at the same place — the single-request site, so every + retry carries a current traceparent — behind an optional `@opentelemetry/api` peer + dependency. Without it installed (or without a registered SDK) it is a no-op, not a + crash, and no all-zero `traceparent` is ever emitted. + + Python: the same injection at the same place — the single-request site, so retries carry + a current traceparent — behind an optional `smooai-fetch[otel]` extra. Without + `opentelemetry-api` installed it is a no-op, not an import error. + + Go: the same injection at the same place — `executeHTTPRequest`, the single-request + site inside the retry/timeout/breaker wrappers, so every attempt carries a current + traceparent. Uses the OTel global propagator, which defaults to a no-op, so a + service that never configured one sends nothing extra. Never overwrites a + caller-set `traceparent`, and emits nothing at all when there is no valid span + context. + + .NET: no change needed — `HttpClient`'s `DiagnosticsHandler` already injects + `traceparent` from the current `Activity`, ahead of redirects and connection + pooling, and this client keeps that handler chain intact. Tests were added to pin + that behaviour so a future custom primary handler cannot silently drop it. + ## 3.3.10 ### Patch Changes diff --git a/package.json b/package.json index e8de3c2..35e4502 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@smooai/fetch", - "version": "3.3.10", + "version": "3.4.0", "description": "A powerful fetch client library built on top of the native `fetch` API, designed for both Node.js and browser environments. Features built-in support for retries, timeouts, rate limiting, circuit breaking, and Standard Schema validation.", "homepage": "https://github.com/SmooAI/fetch#readme", "bugs": {