First sub-phase of ADR-0023 Phase 3 (telemetry sampler hot-reload), per
the Mistral-produced phase plan validated 2026-05-05 (Q-037 in
mistral-quirks.md).
This is the isolated telemetry-package change: adds ReconfigureTracerProvider
that builds a new TracerProvider with updated sampler settings, swaps the
global, and gracefully shuts down the old. No-op when oldTP is nil
(telemetry-disabled-at-startup is out of scope for Phase 3).
The wiring (config callback → server-level invocation) lands in sub-phases
3.2 and 3.3 — kept separate for clean rollback semantics.
Tests:
- 3 new tests in pkg/telemetry/telemetry_test.go covering nil no-op, the
global TP swap, and error-tolerance when old TP shutdown fails.
- go test -race ./pkg/telemetry/... passes.
Verifier verdict (skill-driven, mental run): APPROVE. Function is 17 lines,
single responsibility, defensive on nil; tests cover positive + invariant
+ tolerance.