Deno v2.7.6stable Released Mar 18, 2026
Impact Score: 5/10

Deno v2.7.6 โ€” Release Notes & Engineering Impact

Source available โ€” automated, not human-reviewed

Component: deno ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Compatibility not verified โ€” check source notes
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Deno v2.7.6. Source highlight: feat(core): add cloneable resource registry for structured clone (#32672)

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

โœจ New Features & Capabilities (6)

  • feat(core): add cloneable resource registry for structured clone (#32672)
  • feat(core): update v8 to 146.8.0 with foreground task ownership (#32771)
  • feat(eval): auto-detect CJS vs ESM in deno eval (#32472)
  • feat(ext/node): add MIMEType, convertProcessSignalToExitCode, Symbol.dispose
  • feat(ext/signals): support additional signals on Windows (#32689)
  • feat(ext/telemetry): support array values in OTEL attributes (#32748)

โšก Performance & Enhancements (6)

  • perf(core): optimize V8-to-Rust string conversion with ValueView (#32688)
  • perf(ext/napi): use threadpool for async work instead of spawning threads
  • perf(ext/node): move `fs.cpSync` implementation to rust (#32687)
  • perf(ext/web): optimize TextEncoder/TextDecoder hot paths (#32735)
  • perf(ext/web): optimize URLPattern ops to reduce serde overhead and GC
  • perf(ext/web): optimize node:buffer base64 encode/decode (#32647)

๐Ÿ”ง Bug Fixes & Patches (6)

  • fix(cli): update typescript-go to 2026-03-09 (#32656)
  • fix(core): don't panic in to_v8_error when JS error builder callback fails
  • fix(core): prevent panic when multiple lazy-loaded ESM modules are loaded
  • fix(coverage): don't mark lines uncovered when zero-count range only partially
  • fix(ext/console): make timer and counter state per-instance to fix OTEL
  • fix(ext/crypto): support structuredClone for CryptoKey (#32674)
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
### 2.7.6 / 2026.03.18 - feat(core): add cloneable resource registry for structured clone (#32672) - feat(core): update v8 to 146.8.0 with foreground task ownership (#32771) - feat(eval): auto-detect CJS vs ESM in deno eval (#32472) - feat(ext/node): add MIMEType, convertProcessSignalToExitCode, Symbol.dispose for ChildProcess (#32793) - feat(ext/signals): support additional signals on Windows (#32689) - feat(ext/telemetry): support array values in OTEL attributes (#32748) - feat: add --cpu-prof-flamegraph to generate interactive SVG flamegraphs (#32572) - fix(cli): update typescript-go to 2026-03-09 (#32656) - fix(core): don't panic in to_v8_error when JS error builder callback fails (#32749) - fix(core): prevent panic when multiple lazy-loaded ESM modules are loaded during TLA (#32769) - fix(coverage): don't mark lines uncovered when zero-count range only partially overlaps (#32601) - fix(ext/console): make timer and counter state per-instance to fix OTEL console wrapping (#32719) - fix(ext/crypto): support structuredClone for CryptoKey (#32674) - fix(ext/fetch): retry on stale pooled HTTP/1.1 connections (#32566) - fix(ext/ffi): retain backing store references in nonblocking calls (#32775) - fix(ext/napi): call wrap/ref finalizers at shutdown (#32592) - fix(ext/napi): keep event loop alive while uv_async_t handle is active (#32702) - fix(ext/napi): prevent spurious TypeError from napi_coerce_to_object on null/undefined (#32695) - fix(ext/node): accept all TypedArrays in spawnSync input option (#32712) - fix(ext/node): allow IPv6 multicast addresses in UDP addMembership/dropMembership (#32739) - fix(ext/node): allow passing `FileHandle` as `fd` argument for `WriteStream` and `ReadStream` (#32770) - fix(ext/node): emit "connect" event on http.Server for CONNECT requests (#32599) - fix(ext/node): enable 8 already-passing child_process compat tests (#32710) - fix(ext/node): fix 8 Node.js compat test failures (#32755) - fix(ext/node): fix AbortController signal handling in child_process sโ€ฆ (#32713) - fix(ext/node): fix Buffer.concat, expose internal/buffer, implement markAsUntransferable (#32760) - fix(ext/node): fix IPC message prototype for child_process JSON (#32731) - fix(ext/node): fix TLA stall with native TTY handles and make stdio indestructible (#32792) - fix(ext/node): fix TLS JSStreamSocket resource leak causing process hang (#32325) - fix(ext/node): fix multiple deepEqual comparison issues (#32763) - fix(ext/node): fix perm checks in TCPWrap (#32721) - fix(ext/node): fix send() validation in child_process IPC (#32779) - fix(ext/node): handle cargo features during publish (#32636) - fix(ext/node): handle signal 0 in child_process.kill() (#32294) - fix(ext/node): implement safe, add, rem options for crypto.generatePrime (#32618) - fix(ext/node): improve Node.js crypto compatibility (#32690) - fix(ext/node): improve X509Certificate Node.js compatibility (#32671) - fix(ext/node): improve crypto.generateKeyPair validation (#32620) - fix(ext/node): improve worker_threads path validation and error handling (#32791) - fix(ext/node): include prototype env vars in child_process spawn (#32699) - fix(ext/node): remove extra properties from node:fs exports (#32670) - fix(ext/node): require --allow-net for udp.send (#32774) - fix(ext/node): rewrite node:tty on top of uv compat (#32777) - fix(ext/node): set up stdio streams on failed child_process spawn (#32698) - fix(ext/node): signal listeners added via `process.once` can now be removed (#32606) - fix(ext/node): support encrypted PEM export and deprecated hash option in crypto keygen (#32703) - fix(ext/node): use non-blocking write in fs.writev (#32673) - fix(ext/node): validate handle type in child_process send() (#32711) - fix(ext/node): wrap non-Error unhandled rejections in ERR_UNHANDLED_REJECTION (#32535) - fix(ext/otel): don't mark server spans as error for 4xx responses (#32722) - fix(ext/signals): prevent panic on FreeBSD (#32518) - fix(ext/telemetry): add `log.iostream` attribute to console logs (#32723) - fix(ext/telemetry): add exception.* attributes to OTEL log records (#32726) - fix(ext/web): support %j JSON format specifier in console.log (#32684) - fix(ext/web): upgrade QuotaExceededError to DOMException derived interface (#32244) - fix(lsp): align organize imports output with tsgo (#32677) - fix(npm): handle read-only bin files when setting up node_modules/.bin (#32632) - fix(npm): resolve bundled npm deps in packages properly when not using a `node_modules` directory (#32679) - fix(npm): retain authorization header on http->https redirect (#29878) - fix(npm): support npmrc certfile + keyfile (#32655) - fix(process): allow unref'd child processes to outlive parent (#32563) - fix(repl): fix panic when pressing Tab at beginning of line (#32750) - fix(runtime): apply source maps to CPU profiler output (#32634) - fix(runtime): display proper error when throwing in event handlers (#32663) - fix(runtime): reduce memory retention after web worker termination (#32617) - fix(runtime): use XML-valid entity in flamegraph SVG (#32716) - fix(test): allow test functions to override reported location (#32732) - fix(tsc): move more node resolution errors to typescript diagnostics (#32697) - fix(watch): dispatch unload and process exit events on restart (#32664) - fix(web): support structuredClone for DOMException (#32675) - fix: restore --env-file parent directory traversal and do not error in `deno compile` for not found env file (#32686) - fix: wake event loop when V8 posts foreground tasks from background threads (#32450) - perf(core): optimize V8-to-Rust string conversion with ValueView (#32688) - perf(ext/napi): use threadpool for async work instead of spawning threads (#32776) - perf(ext/node): move `fs.cpSync` implementation to rust (#32687) - perf(ext/web): add write buffering for FsFile.writable streams (#32676) - perf(ext/web): optimize TextEncoder/TextDecoder hot paths (#32735) - perf(ext/web): optimize URLPattern ops to reduce serde overhead and GC pressure (#32766) - perf(ext/web): optimize node:buffer base64 encode/decode (#32647) - perf(ext/web): reduce promise allocations in streams (#32652) - perf(fmt): speed up file diffing (#30644) - perf(install): avoid unnecessary package info fetches when running lifecycle scripts (#32653) - perf(linux): trim glibc malloc arena after module loading (#32662) - perf(lsp): replace dissimilar with imara-diff (#32700) - perf(npm): run lifecycle scripts in parallel (#32666)