Changelog

denoland/deno · · 7 commits

Deno tightens telemetry, profiling, and coverage

Fixes OTEL console/HTTP span semantics, applies source maps to CPU profiles, and corrects coverage and Node UDP behavior.

Telemetry now tags console logs with stdout/stderr (bartlomieju2989e30)

OpenTelemetry log records emitted from console methods now include log.iostream, distinguishing stderr-producing calls like console.warn/console.error from stdout methods. This improves semantic correctness and makes backend filtering and analysis more accurate.

HTTP server spans stop treating 4xx as errors (bartlomieju622a15e)

Server-side request tracing now follows OTel HTTP conventions: only 5xx responses set error status, while 4xx responses are treated as client errors. The change prevents healthy server requests like 404s from showing up as faults in tracing backends.

CPU profiler output now uses original TypeScript locations (bartlomieju24bc84e)

--cpu-prof profiles are now post-processed through source maps before being written, so call frames point at original TS lines and columns instead of transpiled JS. That makes profiling output much more actionable when debugging Deno apps.

Console timers and counters are isolated per Console instance (bartlomieju895fa89)

console.time/count state is no longer shared across all Console objects, which fixes spurious warnings and double-accounting when OTEL wraps the console. This is a targeted correctness fix for OTEL_DENO=true environments.

UDP multicast now accepts IPv6 memberships (kajukitli408ddbe)

Node’s UDP polyfill now validates multicast addresses against the socket family, allowing the previously unreachable IPv6 join/drop path to work. This unblocks IPv6 multicast usage that was incorrectly rejected as invalid.

Coverage no longer marks lines uncovered for tiny interior gaps (bartlomiejuad32e93)

The coverage calculator now only zeroes a line when a zero-count V8 range overlaps an edge of that line, rather than any partial overlap. This fixes misreported uncovered lines in finally blocks and similar control-flow patterns.

Other misc changes

  • Node test submodule updated to Node.js 25.8.1 (bartlomieju62a57bc)
  • Node child_process validation refactors and compatibility test config tweaks (bartlomieju62a57bc)
  • OTEL test expectations updated for new log.iostream and server-status behavior (bartlomieju2989e30, bartlomieju622a15e, bartlomieju895fa89)
  • Coverage fixture/output updates (bartlomiejuad32e93)