# What changed in @earendil-works/pi-telemetry

> 25 changes in @earendil-works/pi-telemetry 0.84 to 1 from its official release notes, upgrade guides and advisories: 3 breaking, 1 security, 15 new APIs and options. Each one cited. Sources checked 2026-11-11. HTML: https://unstale.sh/npm/@earendil-works/pi-telemetry/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @earendil-works/pi-telemetry 1

### Breaking changes

- Contexts can carry an optional metrics capability on roots, spans, and extracted parents. (1.4.0) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#140---2026-10-21)
- Contexts can carry an optional propagation capability on roots, spans, and extracted parents. (1.4.0) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#140---2026-10-21)
- Adapters must implement addLink() for links with context targets and optional attributes. (1.4.0) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#140---2026-10-21)

### Security

- Escapes control characters in span and event names, linked trace and span ids, attribute keys, and error names and messages so ids from another process's carrier are not emitted raw. (1.5.1) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#151---2026-11-09)

### New APIs and options

- Adds a span clock that provides wall-clock milliseconds at microsecond resolution, anchored to Date.now() and recalibrated when the clocks diverge by more than 10 ms. (1.5.1) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#151---2026-11-09)
- Creates metrics from schema definitions with exact instrument names, kinds, and required or optional low-cardinality attributes. (1.4.0) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#140---2026-10-21)
- Exports renderTrace() for plain-text span trees with attributes, durations, errors, events, and cross-trace links; merged spans are deduplicated by ID and links are never followed. (1.4.0) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#140---2026-10-21)
- Shared no-op metric instruments are available. (1.4.0) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#140---2026-10-21)
- A shared no-op propagation implementation is available. (1.4.0) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#140---2026-10-21)
- Initial spans can specify links with context targets and optional attributes, including settled target spans and extracted remote parents. (1.4.0) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#140---2026-10-21)
- Defines a backend-independent representation for trace discovery, trace retrieval, and metric queries. (1.4.0) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#140---2026-10-21)
- Optional metrics support adds counters, up-down counters, and histograms with boundary hints and exemplar contexts. (1.4.0) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#140---2026-10-21)
- Optional propagation injection and extraction use opaque string-map carriers, with passive root fallback for absent or invalid carriers. (1.4.0) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#140---2026-10-21)
- Defines backend-independent trace discovery, trace retrieval, and metric queries. (1.4.0) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#140---2026-10-21)

### Behavior and default changes

- Trace output prints lengths of time to the microsecond. (1.5.1) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#151---2026-11-09)
- Adapters trust typed instrumentation inputs; malformed values have unspecified behavior. Carrier extraction checks required string identities but does not validate their format. (1.4.0) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#140---2026-10-21)

### Fixes and other changes

- The package root export now has a source condition, allowing workspace tests that resolve with source to work without a build. (1.5.0) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#150---2026-11-02)
- The `./testing` export now has a source condition, allowing workspace tests that resolve with source to work without a build. (1.5.0) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#150---2026-11-02)
- Its type is now TelemetrySpan, matching the shared inert span it provides. (1.4.0) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#140---2026-10-21)

## @earendil-works/pi-telemetry 0.84

### New APIs and options

- Adds a callback-based telemetry context contract for integrations. (0.84.0) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#0840---2026-08-06)
- Adds a deterministic in-memory reference adapter. (0.84.0) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#0840---2026-08-06)
- Adds typed span starters for multiple schemas with explicit child propagation. (0.84.0) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#0840---2026-08-06)
- Adds a shared no-op context. (0.84.0) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#0840---2026-08-06)
- Adds typed utilities for serializable schemas. (0.84.0) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#0840---2026-08-06)

### Tooling

- Adds a reusable conformance suite for adapters. (0.84.0) — [release notes](https://github.com/earendil-works/pi/blob/c8390defa9b69a05629a1a0877cd91aa18585ecd/packages/telemetry/CHANGELOG.md#0840---2026-08-06)
