What changed
The observability surface (Logger, initOtel / init_otel, withSpan / with_span, executeTracedRequest / execute_traced_request, and the rest of the public API) moves from the standalone iii-observability packages into the @iii-dev/helpers package as a new observability submodule.
| Submodule | Node | Python | Rust |
|---|---|---|---|
| observability | @iii-dev/helpers/observability | iii_helpers.observability | iii_helpers::observability |
@iii-dev/helpers/observability/internal that provides getMeter and getTracer. This entry point is not part of the public API; it is reserved for first-party iii packages.
OpenTelemetry dependencies
The OpenTelemetry dependencies are now bundled in@iii-dev/helpers / iii-helpers directly. For SDK users this is net-neutral: the root SDK already depended on iii-observability, which pulled in otel. The dependency now flows through the helpers package instead.
Deprecated shims
The standalone packages remain published but are deprecated. They re-export the public API from the helpersobservability submodule. Importing from the old packages continues to work but emits a deprecation signal:
| Language | Deprecated package | Deprecation mechanism |
|---|---|---|
| Node | @iii-dev/observability | @deprecated JSDoc on every re-export |
| Python | iii-observability (PyPI) | DeprecationWarning at import time |
| Rust | iii-observability (crates.io) | #![deprecated] crate-level attribute |
getMeter and getTracer symbols are not re-exported by the shim and now live at @iii-dev/helpers/observability/internal (previously @iii-dev/observability/internal before the migration).
Migration
Replace imports of the standaloneiii-observability packages with the observability submodule path from helpers.
Node: