> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tracelit.io/llms.txt
> Use this file to discover all available pages before exploring further.

# v0.1.1 — Apr 27, 2026

> .NET SDK v0.1.1 — Apr 27, 2026

# v0.1.1 — Apr 27, 2026

<Badge>Latest</Badge>

**New**

* `TracelitClient.Metrics.Gauge(name, callback, ...)` — observable gauge with a pull-based callback, no background timer needed
* `ResourceAttributes` now supports `Dictionary<string, string>` and is applied to all signals (traces, metrics, logs)
* Non-DI `TracelitClient.Configure` + `TracelitClient.Start` + `TracelitClient.Shutdown` path for console and worker apps
* `./release.sh` helper — bumps version, commits, tags, and triggers the NuGet publish workflow in one command

**Improvements**

* `AddTracelit()` now registers `ILogger` → OTLP bridge automatically — no separate `AddOpenTelemetryLogging()` call needed
* `ErrorAlwaysOnSampler` upgrades `Drop` decisions to `RecordOnly` (not `RecordAndSample`) so unsampled error spans don't appear in trace waterfalls but are still exported to the logs table
* `dotnet.gc.*` and `dotnet.thread_pool.*` metrics now exported via `System.Diagnostics.Metrics` runtime instrumentation (no reflection)
* `process.memory.rss` poller uses `IHostedService` in DI apps so it respects graceful shutdown

**Fixes**

* Fixed `TracelitClient.Tracer.StartActiveSpan` returning `null` when called before `Start()` — now returns a no-op span instead
* Fixed `Validate()` throwing a `NullReferenceException` instead of a descriptive `ArgumentException` when `ApiKey` was not set
* Fixed W3C `traceparent` propagation header not being injected on `HttpClient` requests when the activity had no parent
