All notable changes to this project will be documented in this file.
The format follows Keep a Changelog and this project adheres to Semantic Versioning.
1.2.1 (2026-06-25)
1.2.0 (2026-06-20)
- config: support OPENCODE_SPAN_ATTRIBUTES (93866c5)
- handlers: add agent metadata to logs and spans (c2759e9)
- config: preserve canonical project.id (0d02eac)
1.1.0 (2026-06-04)
- trace: support remote W3C parent context (1da0a85)
- trace: support remote W3C parent context (83e3d42)
- added protobuf exporters from @opentelemetry (19e600f)
- probe: reject scheme-less endpoint URLs (df7a62b)
1.0.0 (2026-05-18)
- handlers: opencode.lines_of_code.count semantics have changed. Dashboards that sum() the counter previously saw inflated numbers; they will now see the correct net session totals. Existing queries do not need to change, but the numeric results will be smaller (and correct).
- otel: prewarm dynamic OTLP headers helper (6f62b8b)
- handlers: address code-review feedback on lines_of_code semantics (a25022c)
- handlers: address maintainer feedback on lines_of_code semantics (7f0802a)
- handlers: emit lines_of_code.count as session delta, add .total gauge (9eaefc7)
0.9.0 (2026-05-01)
- otel: refresh dynamic headers on auth failure (b65dd2e)
- bundle plugin to JS for server mode compatibility (37a86e8), closes #35
- emit TypeScript declarations alongside bundled JS (ce22030)
- otel: harden dynamic header helper (2810d31)
- use prepack instead of prepublishOnly (bd7a4f9)
0.8.0 (2026-04-21)
- traces: align spans with OpenInference semantics (ce6ca28)
0.7.0 (2026-04-13)
- otel: add OTLP HTTP exporter support (d679862)
- otel: add OTLP HTTP/protobuf exporter support via
OPENCODE_OTLP_PROTOCOL
0.6.0 (2026-03-26)
- config: add OPENCODE_DISABLE_TRACES for per-type trace suppression (89cb9b9)
- tracing: add OpenTelemetry traces with gen_ai.* and tool spans (0a00b43)
- tracing: add OpenTelemetry traces with gen_ai.* and tool spans (6c848a7), closes #19
- traces: apply metricPrefix to opencode span names and fix out-of-order parentage (65f1e70)
0.5.0 (2026-03-21)
- handlers: add agent usage metrics and sub-agent tracking (2d12f88)
0.4.1 (2026-03-16)
- Normalize token and cost units for Claude compatibility (a8b35dc)
- otel: normalize session token and cost units (12bfafe)
- otel: normalize token and cost units for claude compatibility (aa3deca)
0.4.0 (2026-03-15)
- config: add OPENCODE_DISABLE_METRICS to suppress individual metrics (8ec7c48)
- ci: remove NODE_AUTH_TOKEN to allow OIDC trusted publishing (fa4cbc7)
- config: address code review findings on disable-metrics feature (1929327)
0.3.0 (2026-03-14)
- observability: add debug logging and enhanced metrics (a1b0a8c)
- otel: use UCUM-compliant unit strings for all metric instruments (46681d8)
- BREAKING — Package renamed to
@devtheops/opencode-plugin-otel. Update your opencode config from"opencode-plugin-otel"to"@devtheops/opencode-plugin-otel".
- Release workflow now uses npm trusted publishing (OIDC) with Node 22.14.0 and creates a GitHub release with changelog notes and npm package link.
- Release workflow —
.github/workflows/release.ymlpublishes to npm automatically when av*tag is pushed, gated by typecheck and tests. OPENCODE_OTLP_HEADERS— new env var for comma-separatedkey=valueOTLP auth headers (e.g.x-honeycomb-team=abc,x-tenant=org). Copied toOTEL_EXPORTER_OTLP_HEADERSbefore the SDK initialises.OPENCODE_RESOURCE_ATTRIBUTES— new env var for comma-separatedkey=valueOTel resource attributes (e.g.service.version=1.2.3,deployment.environment=production). Copied toOTEL_RESOURCE_ATTRIBUTESbefore the SDK initialises.- JSDoc on all exported functions, types, and constants.
- Regression tests covering
OTEL_*passthrough behaviour — pre-existing values are preserved whenOPENCODE_*vars are unset;OPENCODE_*vars overwrite when set. - README table of contents, usage examples for headers and resource attributes, and a security note advising that
OPENCODE_OTLP_HEADERSmay contain sensitive tokens and should not be committed to version control.
package.jsonmain/modulenow point directly atsrc/index.ts; rootindex.tsre-export removed.filesfield added topackage.json— published package contains onlysrc/, reducing install size.- All user-facing env vars are now consistently
OPENCODE_-prefixed.loadConfigcopiesOPENCODE_OTLP_HEADERS→OTEL_EXPORTER_OTLP_HEADERSandOPENCODE_RESOURCE_ATTRIBUTES→OTEL_RESOURCE_ATTRIBUTESso the OTel SDK picks them up natively. parseEnvIntnow rejects partial numeric strings such as"1.5"or"5000ms", returning the fallback instead of silently truncating.
parseHeadersremoved fromsrc/otel.ts— the OTel SDK readsOTEL_EXPORTER_OTLP_HEADERSnatively onceloadConfigcopies the value across.- Manual
release:patch/release:minor/release:majornpm scripts removed in favour of the tag-based CI workflow.