Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 0 additions & 30 deletions .changeset/traceparent-injection.md

This file was deleted.

31 changes: 31 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand Down
Loading