releases.shpreview
Home/Deno
Deno

Deno

$npx @buildinternet/releases get deno
Apr 28, 2026
viaDeno

2.7.14 / 2026.04.28

  • feat(ext/node): add fs.Utf8Stream
  • feat(upgrade): delta updates via bsdiff patches (#33274)
  • fix(bundle): treat CSS same-document fragment URLs as external (#33492)
  • fix(cache): add missing CacheStorage.keys() and Cache.keys() methods (#33275)
  • fix(config): don't exclude workspace members from deploy file patterns (#33562)
  • fix(coverage): exclude transformer-injected helpers from coverage (#33481)
  • fix(doc): remove background from operators in dark mode code blocks (#33267)
  • fix(ext/bundle): clearer error when Deno.bundle is called in compiled binary (#33503)
  • fix(ext/crypto): throw TypeMismatchError for non-TypedArray in getRand (#33470)
  • fix(ext/fetch): don't mutate caller's options in Deno.createHttpClient (#33497)
  • fix(ext/fetch): use byte ReadableStream for Node Readable request bodies (#33432)
  • fix(ext/fs): normalize Deno.watchFs paths so events drop ./ segments (#33490)
  • fix(ext/napi): implement napi_async_init and napi_async_destroy (#33282)
  • fix(ext/net): default Deno.listenDatagram hostname to 0.0.0.0 (#33496)
  • fix(ext/node): accept X.509v1 server certs in tls.createServer (#33505)
  • fix(ext/node): accept string mode in fs.mkdir and fs.mkdirSync (#33409)
  • fix(ext/node): add Server BlockList, asyncDispose, and misc net improvements (#33417)
  • fix(ext/node): add _idleStart and _idleTimeout to Timeout (#33604)
  • fix(ext/node): align crypto random* validation with Node (#33456)
  • fix(ext/node): align fs.truncate / ftruncate argument validation with Node (#33418)
  • fix(ext/node): align module.builtinModules / getBuiltinModule with Node (#33404)
  • fix(ext/node): align node:module behavior with Node (#33482)
  • fix(ext/node): align node:test it/describe with Node, enable passing compat tests (#33593)
  • fix(ext/node): align util.styleText with Node (#33547)
  • fix(ext/node): allow https.Agent() without new, enable passing compat tests (#33601)
  • fix(ext/node): async fs.stat/lstat throwIfNoEntry + deprecate fs.Stats (#33436)
  • fix(ext/node): attach input URL to ERR_INVALID_FILE_URL_PATH (#33398)
  • fix(ext/node): attach path/syscall to fs.lstat / realpath / link errors (#33446)
  • fix(ext/node): brand-check SecureContext._external accessor (#33569)
  • fix(ext/node): cache hash digest so it survives stream.pipeline (#33440)
  • fix(ext/node): cancelling Readable.toWeb(req) no longer destroys the socket (#33570)
  • fix(ext/node): close fd on error in http2 stream respondWithFile (#33614)
  • fix(ext/node): correct buffer-length check in Readable._fromList decoder branch (#33624)
  • fix(ext/node): defer drain in http2 shutdownWritable so pushStream after end() works (#33619)
  • fix(ext/node): drain pending TLS cleartext in enc_write_cb (#33378)
  • fix(ext/node): emit Buffer for http2 'goaway' opaqueData (#33502)
  • fix(ext/node): emit DEP0031 deprecation warning for ecdh.setPublicKey( (#33468)
  • fix(ext/node): emit DEP0182 deprecation for short AES-GCM auth tag (#33469)
  • fix(ext/node): emit HPE_INVALID_TRANSFER_ENCODING for CL+chunked respo (#33488)
  • fix(ext/node): emit StatWatcher 'stop' event asynchronously (#33448)
  • fix(ext/node): emit TimeoutNaNWarning for invalid timer durations (#33472)
  • fix(ext/node): emit http2 frameError on send failure with translated HTTP/2 error code (#33631)
  • fix(ext/node): emit stream-level PROTOCOL_ERROR in node:http2
  • fix(ext/node): emit tlsClientError instead of crashing on TLS init failure (#33429)
  • fix(ext/node): enable test-als-defaultvalue-original (AsyncLocalStorage default value) (#33464)
  • fix(ext/node): encode http2 headers as Latin-1 to fix response splitting (#33531)
  • fix(ext/node): encode more chars in url.pathToFileURL() (#33397)
  • fix(ext/node): enforce HTTP/2 server header list size limits (#33494)
  • fix(ext/node): enforce http2 maxSessionInvalidFrames limit (#33515)
  • fix(ext/node): expose http2 sensitive headers received with NV_FLAG_NO_INDEX flag (#33626)
  • fix(ext/node): fix EEXIST error and data loss in writeFileSync on Windows (#33413)
  • fix(ext/node): fix ERR_INVALID_CHAR message & OutgoingMessage.prototype.write (#33430)
  • fix(ext/node): fix TLS client certificate authentication verification (#33576)
  • fix(ext/node): fix TLS socket error ordering and app data leak before identity verification (#33585)
  • fix(ext/node): fix TLS socket lifecycle and readStop backpressure (#33524)
  • fix(ext/node): fix closeIdleConnections destroying active connections (#33596)
  • fix(ext/node): fix fs.glob skipping siblings with */../ patterns (#33372)
  • fix(ext/node): fix spawnSync internal API for monkey-patching and killSignal (#33545)
  • fix(ext/node): flush GOAWAY before destroying http2 socket and expose internal/http2/core (#33566)
  • fix(ext/node): flush HTTP/2 client preface after settings submission (#33387)
  • fix(ext/node): forward enableConnectProtocol setting to peer in HTTP/2 SETTINGS frame (#33616)
  • fix(ext/node): handle undefined http2 ping payload and cancel pending pings on destroy (#33561)
  • fix(ext/node): hide aggregateTwoErrors frame in AggregateError stack (#33402)
  • fix(ext/node): honor http2 strictFieldWhitespaceValidation option (#33506)
  • fix(ext/node): honor requestCert/ca on node:tls server, populate getPeerCertificate() (#33439)
  • fix(ext/node): honor weight option in http2 client.request and emit DEP0194 (#33622)
  • fix(ext/node): http2 createConnection support and per-frame socket writes (#33520)
  • fix(ext/node): implement BlockList.rules / isBlockList / toJSON / fromJSON (#33445)
  • fix(ext/node): implement Socket.resetAndDestroy with TCP RST in node:net (#33415)
  • fix(ext/node): implement StatWatcher.ref() / unref() (#33408)
  • fix(ext/node): implement dns Resolver cancel() and timeout support (#33580)
  • fix(ext/node): implement dns.reverse() and fix dns.lookup() family parameter (#33579)
  • fix(ext/node): implement fs.mkdtempDisposableSync / fsPromises.mkdtempDisposable (#33533)
  • fix(ext/node): implement node:cluster fork/Worker and worker-side detection (#33493)
  • fix(ext/node): implement process.debugPort with ToInt32 coercion (#33403)
  • fix(ext/node): import kIncomingMessage/kServerResponse in http2 allowHTTP1 fallback (#33435)
  • fix(ext/node): improve Node.js timer compatibility (#33479)
  • fix(ext/node): improve perf_hooks timerify and add missing exports (#33581)
  • fix(ext/node): include accepted values in Console colorMode error (#33424)
  • fix(ext/node): isolate parentPort from globalThis in worker_threads (#32596)
  • fix(ext/node): make Buffer.prototype methods generic-callable (#33466)
  • fix(ext/node): make http2 session.origin() round-trip origins and respect TLS servername (#33629)
  • fix(ext/node): make process.constructor a proper instanceof check (#33447)
  • fix(ext/node): name custom-promisified functions after their originals (#33407)
  • fix(ext/node): null-proto child_process options to block prototype pollution (#33555)
  • fix(ext/node): pass reusePort flags in Server.listen() without host (#33530)
  • fix(ext/node): pass signal name to process signal handlers (#33425)
  • fix(ext/node): pass stream fd to child process stdio instead of inheriting (#33525)
  • fix(ext/node): plumb llhttp error code, reason, and bytes parsed through HTTPParser (#33591)
  • fix(ext/node): prevent duplicate close emit when http2 client socket i (#33538)
  • fix(ext/node): re-arm Windows named pipe server after accept (#33369)
  • fix(ext/node): rebind http2 state buffers post-snapshot, enforce maxHeaderListPairs (#33495)
  • fix(ext/node): reject non-ArrayBufferView data in fs.writeFileSync (#33406)
  • fix(ext/node): rename _destroySsl to _destroySSL to match Node.js API (#33599)
  • fix(ext/node): replace unwrap with error propagation in parallel cp (#33396)
  • fix(ext/node): return relative path from fs.watch with recursive option (#33428)
  • fix(ext/node): strip trailing dot from SRV target in dns.resolveSrv() (#33578)
  • fix(ext/node): submit http2 RST_STREAM before flushing END_STREAM DATA frame on respondWithFD read (#33633)
  • fix(ext/node): support ALPNCallback in http2.createSecureServer (#33521)
  • fix(ext/node): support BlockList, AbortSignal, and constructor options in node:net Socket (#33414)
  • fix(ext/node): support ignore option in fs.watch and fs.promises.watch (#33610)
  • fix(ext/node): support encoding option in fs.readdir; don't double-call glob callback (#33501)
  • fix(ext/node): support http2 pushStream and client push events (#33516)
  • fix(ext/node): support reusePort option and fix bind/pipe handling in node:net (#33416)
  • fix(ext/node): support util.promisify on http2.connect (#33489)
  • fix(ext/node): support v1 X.509 certs and http2 ALPN fallback (#33510)
  • fix(ext/node): throw ERR_INVALID_ARG_VALUE when rmdir gets options.recursive (#33565)
  • fix(ext/node): throw ERR_INVALID_URL from http/https request string URL (#33427)
  • fix(ext/node): throw TypeError for Symbol keys/values in process.env (#33399)
  • fix(ext/node): timer _destroyed flag, Symbol.dispose, and setInterval abort (#33528)
  • fix(ext/node): track http2 custom settings and SETTINGS ACK callbacks (#33518)
  • fix(ext/node): treat unsolicited HTTP/2 PING ACK as connection-level protocol error (#33625)
  • fix(ext/node): use AbortSignal.addEventListener in addAbortListener (#33557)
  • fix(ext/node): use ERR_INVALID_ARG_TYPE for tls.createServer non-object options (#33589)
  • fix(ext/node): use ERR_INVALID_ARG_VALUE in module.createRequire (#33449)
  • fix(ext/node): use Node's address-type check in dgram Socket.send (#33420)
  • fix(ext/node): use node:timers for http server connection checks, expo (#33483)
  • fix(ext/node): use proper error codes for require() invalid arguments (#33609)
  • fix(ext/node): validate fs.watch boolean options (#33627)
  • fix(ext/node): validate boolean arg in process.setSourceMapsEnabled (#33473)
  • fix(ext/node): validate ciphers option in tls.createSecureContext() (#33597)
  • fix(ext/node): validate dgram options.recvBufferSize / sendBufferSize (#33444)
  • fix(ext/node): validate oaepHash in publicEncrypt/privateDecrypt (#33388)
  • fix(ext/node): validate options.type in Readable.toWeb (#33560)
  • fix(ext/node): validate process.chdir argument is a string (#33401)
  • fix(ext/node): walk sandbox prototype chain in vm property_query (#33463)
  • fix(ext/node): wire JSStreamSocket handle write/shutdown for http2 (#33526)
  • fix(ext/node): wire up captureRejection handler for http2 servers (#33542)
  • fix(ext/node): yield to I/O in http2 write path so stream pipeline finishes (#33541)
  • fix(ext/web): align AbortSignal.timeout error message with Node (#33460)
  • fix(ext/web): allow transferring non-serializable types in structuredClone (#33491)
  • fix(ext/web): handle late write racing with TransformStream cancel (#33478)
  • fix(ext/web): narrow ReadableStreamBYOBRequest.view to Uint8Array (#33477)
  • fix(ext/web): retain source from MessageEventInit (#33500)
  • fix(ext/web): route console.dirxml through the log printer (#33443)
  • fix(ext/web): set ERR_MISSING_ARGS code on URL.revokeObjectURL no-arg (#33471)
  • fix(ext/web): structuredClone of non-serializable Web types throws DataCloneError (#33465)
  • fix(ext/webidl): set ERR_ILLEGAL_CONSTRUCTOR code on illegal constructor calls (#33535)
  • fix(ext/webidl): set ERR_INVALID_THIS code on brand-check TypeError (#33467)
  • fix(node/buffer): fix panic in transcode with odd-length UTF-16LE input (#33390)
  • fix(node/compat): disable flaky test-child-process-exec-kill-throws on Windows (#33426)
  • fix(node/compat): disable flaky test-fs-read-stream-pos on Windows (#33421)
  • fix(node/compat): fix shard report merging and fetching in CI reporting (#33431)
  • fix(permissions): normalize paths for macOS filesystem comparison (#33451)
  • fix(task): match workspace directory name in --filter (#33499)
  • fix(task): use explicit workspace root check in directory-name fallback (#33540)
  • fix(x): forward --unstable-* flags to JSR and URL targets (#33450)
  • fix: bound fs.readFile on non-terminating sources (#33262)
  • fix: drop config-only unstable features from unstable_args() (#33452)
  • fix: match single-char wildcard segments in npm package imports (#33513)
  • perf(ext/node): pool 64KB read buffers to reduce allocation pressure (#33395)
  • perf: optimize worker and MessagePort message passing (#32657)
  • perf: upgrade rusty_v8 to 147.4.0 (#33422)

Full Changelog: https://github.com/denoland/fresh/compare/2.3.2...2.3.3

What's Changed

Full Changelog: https://github.com/denoland/fresh/compare/2.3.1...2.3.2

Apr 27, 2026

What's Changed

Full Changelog: https://github.com/denoland/fresh/compare/2.3.0...2.3.1

Apr 24, 2026

What's Changed

New Contributors

Full Changelog: https://github.com/denoland/fresh/compare/2.2.2...2.3.0

Fresh 2.3: Zero JS by default, View Transitions, and Temporal support

Fresh 2.3 ships true zero-JS pages, View Transitions, CSP nonce support, IP filtering, and Temporal API support in islands.

Apr 22, 2026
viaDeno

2.7.13 / 2026.04.22

  • feat(ext/node): implement node:repl module (#32799)
  • feat(ext/node): rewrite node:http with llhttp and native TCPWrap (#33208)
  • feat(upgrade): support installing from a PR (#33252)
  • fix(audit): migrate to bulk advisory endpoint (#33292)
  • fix(console): find nodejs.util.inspect.custom on Proxy objects via get trap (#33265)
  • fix(doc): Add Prism support for JSX/TSX code blocks (#33255)
  • fix(ext/http): treat empty Host header as missing in request URL (#33234)
  • fix(ext/napi): defer GC weak-callback finalizers to the event loop (#33260)
  • fix(ext/napi): implement real V8 handle scopes and callback scopes (#33281)
  • fix(ext/napi): implement zero-copy external Latin-1 strings (#33283)
  • fix(ext/node): ChildProcess.kill() returns false when process already exited (#33305)
  • fix(ext/node): address node:http rewrite review comments (#33299)
  • fix(ext/node): auto-start server-side STARTTLS handshake, add TLS upgrade tests (#33303)
  • fix(ext/node): defer JS stream encOut to avoid reentrant CppGC borrow (#33304)
  • fix(ext/node): enable HTTP parser consume fast path (#33354)
  • fix(ext/node): enforce maxHeaderSize in HTTP parser (#33306)
  • fix(ext/node): fix EEXIST error and file corruption with writeFileSync on Windows (#33253)
  • fix(ext/node): fix Module._resolveLookupPaths and require.resolve compat (#33261)
  • fix(ext/node): fix multiple http2 bugs (#33315)
  • fix(ext/node): fix playwright on windows (#33295)
  • fix(ext/node): flush HTTP/2 HEADERS frame after client request (#33300)
  • fix(ext/node): free uv_write and uv_shutdown requests in every exit path (#33350)
  • fix(ext/node): http client compat improvements (#33337)
  • fix(ext/node): http2 improvements — constants, error codes, settings, validation (#33332)
  • fix(ext/node): improve node:tls compat (validation, pipes, JS streams) (#33331)
  • fix(ext/node): support FD-indexed stdio inheritance in spawnSync (#33341)
  • fix(ext/node): support RSA-PSS keys in crypto.verify with null algorithm (#33314)
  • fix(runtime): warn on unsupported web Worker options and fix recv panic (#33310)
  • fix(test): fix specific_canary upgrade test on Windows (#33286)
  • fix: add note for canary's 30-day retention period (#33271)
  • fix: restore glibc < 2.27 compatibility for Linux release builds (#33259)
  • fix: update v8 crate to 147.2.1 (#33318)
  • perf(ext/node): elide async_hooks emit in timers when no hooks registered (#33355)
  • perf(ext/node): flush-free header fast path in HTTP parser (#33351)
  • perf(ext/node): reduce writev op allocations and write copies (#33352)
  • perf(libs/core): poll only ready handles and yield between I/O batches (#33349)
  • perf: reduce memory usage of Command.output() (#33335)
Apr 9, 2026
viaDeno

2.7.12 / 2026.04.09

  • feat(ext/node): add fs.SyncWriteStream (#33226)
  • feat(ext/node): add llhttp-based HTTPParser with native cppgc binding (#33202)
  • feat(ext/node): add native TLSWrap cppgc object (Rust core) (#33183)
  • feat: native uv_pipe_t implementation with NativePipe and FdTable (#33165)
  • fix(core): fix uv_pipe_open handle lifecycle to match libuv (#33225)
  • fix(core): free UvLoopInner on uv_loop_t drop to prevent worker memory leak (#33200)
  • fix(core): handle WouldBlock in op_print for non-blocking stdio (#33221)
  • fix(core): use c_char instead of i8 in uv_buf_t base cast (#33179)
  • fix(ext/napi): use per-isolate Private key for napi_wrap/napi_unwrap (#33204)
  • fix(ext/node): add dns.getDefaultResultOrder() API (#33197)
  • fix(ext/node): create net.Socket from file descriptors (#33150)
  • fix(ext/node): implement TCP.open(fd) (#33155)
  • fix(ext/node): implement timeout, killSignal, and pid for child_process spawnSync (#32810)
  • fix(ext/node): implement uv_ref for native TCP handles (#33174)
  • fix(ext/node): remove dead legacy TCP server accept path (#33172)
  • fix(ext/node): return real OS file descriptors from node:fs APIs (#33039)
  • fix(ext/node): rewrite Pipe.open(fd) to use raw fd ops (#33136)
  • fix(ext/node): support numeric FDs in child_process stdio array (#33140)
  • fix(ext/node): throw on cipher update with input >= 2^31-1 bytes (#33201)
  • fix(ext/webgpu): accept ArrayBuffer in GPUQueue.writeBuffer() as data source (#33152)
  • fix(io): remove global stdio statics, handle non-blocking stdin (#33219)
  • fix(node): validate resolved main path stays within package directory (#33170)
  • fix(otel): add timeout to OTEL HTTP exporter to prevent hangs (#33159)
  • fix(permissions): check deny rules against resolved IPs to prevent numeric hostname bypass (#33203)
  • fix(permissions): normalize IPv4-mapped IPv6 addresses in net permission checks (#33223)
  • fix(repl): surface CDP protocol errors and fix race in wait_for_response (#33190)
  • fix(runtime): cache canonicalized watch paths, fix spurious events (#33123)
  • fix(schema): fix the publish: false of deno.json schema (#33196)
  • fix: linked packages with peer deps failing to cache from lockfile (#33143)
  • fix: update release template workflow URLs to .generated.yml (#33116)
  • perf(ext/node): use aws-lc-sys EVP API for chacha20-poly1305 (#33110)
Apr 1, 2026
viaDeno

2.7.11 / 2026.04.01

  • feat: add alpha and beta release channel support (#33098)
  • fix(ext/node): fire fs.watch events for immediate writes (#32935) (#32989)
  • fix(watch): reduce graceful shutdown timeout from 5s to 500ms (#33099)
Mar 31, 2026
viaDeno

2.7.10 / 2026.03.31

  • feat: add include and exclude fields to compile config (#33024)
  • fix(ext/http): gracefully handle consumed external in OTel ops (#33027)
  • fix(ext/node): process.argv[0] is equivalent to execPath (#28915)
  • fix(ext/node): add chacha20-poly1305 cipher support (#33084)
  • fix(ext/node): drain pending messages before emitting worker exit event (#32623)
  • fix(ext/node): escape shell metacharacters in child_process args on Windows (#33071)
  • fix(ext/node): fix BadResource error in FileHandle.readLines() (#32685)
  • fix(ext/node): improve GCM cipher compat with Node.js (#33079)
  • fix(ext/node): improve sign/verify crypto compat with Node.js (#33083)
  • fix(ext/node): return pid from spawnSync (#33081)
  • fix(ext/web): fix infinite loop in WebTransport datagram overflow handling (#33075)
  • fix(install): all package.json aliases should be added to node_modules (#33068)
  • fix(lsp): don't double-encode query/fragment in notebook cell URIs (#33070)
  • fix(lsp): suggest import map aliases in auto-imports for local directories (#33048)
  • fix(npm): resolve linked packages not published to npm registry (#33021)
  • fix(outdated): use dist-tags.latest for Latest column, matching npm/pnpm/bun (#32939)
  • fix(resolver): resolve npm packages that shadow Node built-in names in BYONM mode (#32865)
  • fix(serde_v8): use actual bytes written in to_utf8_slow (#33074)
  • fix: use case-insensitive path matching for permissions on Windows (#33073)
Mar 28, 2026

What's Changed

New Contributors

Full Changelog: https://github.com/denoland/fresh/compare/2.2.1...2.2.2

Mar 27, 2026
viaDeno

2.7.9 / 2026.03.27

  • fix(cli): show clean error instead of panic for invalid --unsafely-ignore-certificate-errors value (#32868)
  • fix(compile): strip duplicate exe path from argv when standalone binary relaunches (#33016)
  • fix(compile): use execPath for process.argv[1] in standalone binaries (#32990)
  • fix(ext/http): use clone_external in op_http_metric_handle_otel_error (#33005)
  • fix(ext/node): util.stripVTControlCharacters compatibility (#32942)
  • fix(ext/node): add Symbol.dispose and Symbol.asyncDispose to fs.Dir (#33000)
  • fix(ext/node): rewrite Windows TTY reading to match libuv (console mode, encoding, raw + line mode) (#32999)
  • fix(ext/node): use constant-time comparison for secret key equality (#32994)
  • fix(publish): vite import.meta.hot not type checking (#32127)
  • perf(ops): replace per-op generated slow metrics wrappers with shared dispatch (#32889)
Mar 25, 2026
viaDeno

2.7.8 / 2026.03.25

  • feat(core): implement NodeRuntime CDP domain and fix --inspect-brk blocking (#32714)
  • feat(ext/crypto): implement P-521 sign, verify, and ECDH derive (#32602)
  • feat(ext/napi): add node_api_create_object_with_named_properties (#32906)
  • feat(ext/telemetry): add console exporter for OpenTelemetry (#32717)
  • feat(ext/telemetry): copy relevant span attributes to HTTP metrics (#32720)
  • feat: use lockfile from jsr package for global install (#32490)
  • fix(audit): respect package.json overrides in vulnerability checks (#32878)
  • fix(cli): fix arrow keys in interactive picker on Windows (#32978)
  • fix(cli): parse --frozen flag for deno update and deno outdated (#32975)
  • fix(compile): skip Node-to-Deno arg translation in standalone binaries (#32980)
  • fix(ext/console): handle throwing Symbol.toStringTag getter gracefully (#32917)
  • fix(ext/napi): pass valid env to tsfn call_js_cb after close race (#32957)
  • fix(ext/node): fs.cp across allowed dirs with ignored read permissions (#32927)
  • fix(ext/node): child_process improvements (internalMessage, argv0, DEP0190) (#32885)
  • fix(ext/node): close libuv handle on HandleWrap.close() for new-style handles (#32958)
  • fix(ext/node): defer uv_write callbacks to prevent re-entrancy panic (#32919)
  • fix(ext/node): do not throw error for readline.createInterface outside TTY (#32874)
  • fix(ext/node): don't fire upgrade event for h2c requests (#32866)
  • fix(ext/node): drain all ready connections in poll_tcp_handle to prevent accept starvation (#32943)
  • fix(ext/node): emit request "close" before socket "free" in keep-alive path (#32811)
  • fix(ext/node): enable node compat test for v8.getHeapStatistics (#32833)
  • fix(ext/node): enable node:fs compat tests + lchmod fix (#32892)
  • fix(ext/node): fix Buffer.concat truncating buffers larger than 4GB (#32913)
  • fix(ext/node): fix IPC stdio handling in child_process (#32920)
  • fix(ext/node): fix node:domain across async boundaries (#32897)
  • fix(ext/node): freeze os.constants.signals to match Node.js (#32836)
  • fix(ext/node): implement process.threadCpuUsage() (#32829)
  • fix(ext/node): improve process.hrtime argument validation (#32837)
  • fix(ext/node): improve readline and EventEmitter compat (#32826)
  • fix(ext/node): pass uid/gid to spawn and implement process.getgroups (#32772)
  • fix(ext/node): preserve TLS upgrade state on reconnect (#32838)
  • fix(ext/node): return all own properties from VM context property enumerator (#32911)
  • fix(ext/node): set fd property on TTY ReadStream and WriteStream (#32880)
  • fix(ext/node): sqlite prepare() options, defensive default, iterator invalidation (#32756)
  • fix(ext/node): support http2 createConnection sockets (#32733)
  • fix(ext/node): support numeric FDs in child_process stdio array (#32959)
  • fix(ext/node): update process.versions.napi to 9 (#32870)
  • fix(ext/web): AbortSignal.any() memory leak with long-lived signals (#32916)
  • fix(ext/web): handle null options in removeEventListener (#32605)
  • fix(fmt): delegate component expression formatting to markup_fmt (#29763)
  • fix(fmt): update markup_fmt to 0.27.0 and malva to 0.15.2 (#32949)
  • fix(inspector): send executionContextDestroyed on process.exit() (#32934)
  • fix(lockfile): truncate frozen lockfile error diff to 50 lines (#32976)
  • fix(napi): add test coverage and fix escape_handle/throw bugs (#32960)
  • fix(node/http): stop leaking TCP wrappers on HTTPS upgrade with createConnection TLSSocket (#32961)
  • fix(npm): approve-scripts detects packages when lockfile is disabled (#32842)
  • fix(npm): create shims for all bin entries during global npm install (#32607)
  • fix(npm): skip file: and link: dependencies in npm packages (#32876)
  • fix(npm): use box-drawing style for deprecated package warnings (#32979)
  • fix(resolver): fall through to .deno/ when BYONM node_modules version mismatches (#32981)
  • fix(resolver): prefer exact version match in BYONM npm resolution (#32977)
  • fix: handle inner quotes in double-quoted env values in .env file (#32930)
  • fix: include Temporal types in deno types output (#32952)
  • fix: make flamegraph SVG fill full browser viewport (#32727)
  • fix: rewrite approve_scripts_no_lock as PTY tests, skip lockfile test on Windows (#32853)
  • fix: skip flaky test-process-threadCpuUsage-worker-threads on Windows (#32886)
  • perf(ext/web): use simdutf for base64 encode/decode (#32743)
  • perf: upgrade to jsonc-parser 0.32 (#32864)
Mar 19, 2026
viaDeno

2.7.7 / 2026.03.19

  • fix(core): implement select fallback on macOS (#32812)
  • fix(ext/node): add disabled process function stubs in worker threads (#32809)
  • fix(ext/node): add key/IV length validation for aes-128-cbc and ecb cipher modes (#32824)
  • fix(ext/node): improve node:dns module compatibility (#32704)
  • fix(ext/node): improve process.title and support --title flag (#32201)
  • fix(ext/node): set kLastWriteWasAsync in JS write path to prevent double callback (#32814)
  • fix(ext/node): skip normalization in path.win32.join for reserved device names (#32808)
  • fix(ext/node): support interface option for IPv6 multicast membership (#32754)
  • fix(ext/node): use constant-time comparison for GCM auth tag verification (#32817)
  • fix(ext/node): validate process.exitCode and fix process constructor name (#32806)
  • fix(watch): support graceful shutdown via SIGTERM dispatch (#32564)
  • perf(ext/webidl): optimize dictionary converters (#32729)
Mar 18, 2026
viaDeno

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)
Mar 11, 2026
viaDeno

2.7.5 / 2026.03.11

  • feat(coverage): add function coverage to summary and HTML reports (#32507)
  • feat(doc): support npm packages in deno doc (#32435)
  • feat(ext/node): add node_api_create_object_with_properties API (#31443)
  • feat(ext/node): implement KeyObject.toCryptoKey() and KeyObject.from(CryptoKey) (#32523)
  • feat(otel): allow feeding permission audit data into OTEL (#32501)
  • feat: --cpu-prof flags for CPU profiles (#31909)
  • fix(console): prevent multi-line object values in console.table (#32604)
  • fix(core): switch to V8 Explicit microtask policy for correct nextTick ordering (#32466)
  • fix(ext/http): allow rejecting HTTP upgrades with non-101 status codes (#32615)
  • fix(ext/napi): run async work execute callback on a worker thread (#32560)
  • fix(ext/node): add node_api_create_property_key_(latin1/utf8) (#32559)
  • fix(ext/node): add missing http2 header constants (#32611)
  • fix(ext/node): emit DEP0198 warning for SHAKE digests without outputLength (#32521)
  • fix(ext/node): emit correct error codes for unsupported PQC key types (#32533)
  • fix(ext/node): fix multiple DiffieHellman crypto bugs (#32531)
  • fix(ext/node): fix multiple node:dgram compatibility issues (#32520)
  • fix(ext/node): handle generateKeyPair 2-arg call and enable PQC tests (#32619)
  • fix(ext/node): implement ECDH.convertKey and fix related ECDH bugs (#32532)
  • fix(ext/node): implement node:v8 heap APIs (#32483)
  • fix(ext/node): implement proper resourceLimits for node:worker_threads (#32430)
  • fix(ext/node): improve getCipherInfo and allow repeated Hmac digest() (#32522)
  • fix(ext/node): improve node:dns compat (#32536)
  • fix(ext/node): initialize debuglog testEnabled with safe default (#32598)
  • fix(ext/node): make TTY stdout/stderr indestructible (#32530)
  • fix(ext/node): make tty ReadStream/WriteStream callable without new (#32537)
  • fix(ext/node): multiple readline improvements (#32538)
  • fix(ext/node): napi_set_instance_data on exit (#32509)
  • fix(ext/node): rewrite http2 implementation (#32418)
  • fix(ext/node): run worker_threads eval code in sloppy mode (#32428)
  • fix(ext/node): support des-ede3-cbc cipher and allow Cipheriv/Decipheriv without new (#32519)
  • fix(ext/node): use max salt length as default for RSA-PSS signing (#32534)
  • fix(ext/otel): remove panicking unwraps in telemetry code (#32557)
  • fix(ext/websocket): handle non-ASCII bytes in WebSocket response headers (#32594)
  • fix(lsp): properly sync root files with tsgo (#32455)
  • fix(lsp): tsgo scope attribution for asset files (#32608)
  • fix(napi): remove unimplemented Node-API symbols from napi_sys (#32593)
  • fix(npm): memoize peer cache hit checks to prevent combinatorial explosion (#32609)
  • fix(npm): support npmrc email authorization (#32616)
  • fix: ensure binaries distributed in @deno/... npm packages are exectuable (#32581)
  • fix: flush CPU profile and coverage data on Deno.exit() (#32591)
  • fix: normalize capture to boolean in removeEventListener options (#32508)
  • fix: prevent panic on dynamic import with non-string error name (#32498)
  • fix: set process.features.openssl_is_boringssl to true (#32512)
  • fix: support value substitution when loading environment variable files (#32495)
  • perf(ext/node): move most fs.cp logic to rust (#32580)
  • perf(lsp): drop jsx import source cache (#32506)
  • perf(npm): improve decompression speed more (#32547)
  • perf(npm): less syscalls in tarball extraction (#32541)
  • perf(npm): remove folder canonicalization in tarball extract (#32540)
  • perf(npm): use libdeflater and preallocate buffer (#32511)
Mar 5, 2026
viaDeno

2.7.4 / 2026.03.05

  • fix(core): uv_compat cleanup and fixes (#32458)
  • fix(deploy): correctly handle version lookup (#32489)
  • fix(ext/node): deep assert compatibility (#32434)
  • fix(ext/node): use sync writes for TTY stdout/stderr WriteStream (#32488)
  • fix(test): restart all tests on env file change (#32461)
  • perf(npm): actually improve npm install -g deno binary startup performance (#32467)
Mar 4, 2026
viaDeno

2.7.3 / 2026.03.04

  • fix(deploy): dont use jsr api for deploy subcommand (#32441)
  • fix(ext/node): handle partial writes to process.stdout/stderr (#32433)
  • fix(ext/node): make UDP socket ops synchronous, implement missing dgram methods (#32381)
  • fix(ext/node): support HTTP over Windows named pipes in node:http (#32414)
  • fix(npm): don't panic when peer dep is not in snapshot (#32454)
  • fix(npm): regression where resolution was missing dependencies (#32453)
  • perf(npm): improve npm install deno binary startup performance (#32439)
Mar 3, 2026
viaDeno

2.7.2 / 2026.03.03

  • feat: v8 14.6, fix require(esm), libuv compat (#32347)
  • fix(ci): fix ordering of platforms in ecosystem_compat_slack (#32393)
  • fix(cli): load multiple env files in the correct order (#32354)
  • fix(compile): store self extracting dir in hidden dir beside executable (#32329)
  • fix(core): store Global<Context> ptr for libuv-compat callbacks (#32361)
  • fix(coverage): correct line and branch counts in coverage reports (#32312)
  • fix(coverage): warn instead of erroring when source files are missing (#32398)
  • fix(ext/console): support iterators in console.table (#32379)
  • fix(ext/crypto): fix P-521 EC key export for all formats (#32412)
  • fix(ext/crypto): handle wrong algorithm in subtle.importKey without panicking (#32410)
  • fix(ext/node): CBC decipher setAutoPadding(false) incorrectly strips bytes (#32403)
  • fix(ext/node): gracefully exit on invalid NODE_CHANNEL_FD instead of panicking (#32421)
  • fix(ext/node): handle emoji width correctly in readline (#32383)
  • fix(ext/node): implement KeyObject.equals, fix createCipheriv with KeyObject/null IV (#32409)
  • fix(ext/node): implement missing X509Certificate methods (#32270)
  • fix(ext/node): make execPath named export a real string (#32396)
  • fix(ext/node): make setAutoPadding(false) a no-op for GCM ciphers (#32290)
  • fix(ext/node): make fsPromises.watch() a proper AsyncIterable with close() (#32378)
  • fix(ext/node): provide CJS globals in worker_threads eval mode (#32266)
  • fix(ext/node): rename conflict callback field typo (#32306)
  • fix(ext/node): return first created path from recursive "node:fs" mkdir call (#32300)
  • fix(ext/node): support DER-encoded keys in publicEncrypt/privateDecrypt (#32291)
  • fix(ext/node): support Ed25519, X25519, and P-521 keys in X509Certificate.publicKey (#32267)
  • fix(ext/node): support RSA PSS padding option in crypto sign/verify (#32269)
  • fix(ext/node): support SEC1 EC private key import/export in node:crypto (#32401)
  • fix(ext/node): support process.stdout resize events (#32343)
  • fix(ext/node): use internal compileFunction binding in CJS wrap (#32373)
  • fix(install): do not panic if lockfile incorrectly says package has a bin (#32345)
  • fix(install): global install should not warn about using node_modules dir for npm specifiers (#32341)
  • fix(jupyter): handle shutdown and interrupt requests per protocol (#32359)
  • fix(node): implement resolveObjectURL for node:buffer (#32382)
  • fix(node): implement process.umask properly (#32385)
  • fix(node): preserve AsyncLocalStorage context in stream.finished callback (#32389)
  • fix(node): support ECDSA with secp256k1 in node:crypto (#32390)
  • fix(node/buffer): fix base64 decoding for strings with hyphens (#32298)
  • fix(node/crypto): handle empty input in decipher final with auto_pad=false (#31958)
  • fix(node/vm): support vm.constants.DONT_CONTEXTIFY in createContext (#32337)
  • fix(npm): NPM_CONFIG_REGISTRY correctly overrides .npmrc (#32394)
  • fix(npm): peerDependency resolution leading to multiple versions being installed + hanging (#32358)
  • fix(test): dedupe discovered workspace test modules (#32380)
  • fix: fix some stack frame dimming, and make the console log more aligned with cli formatting (#32399)
  • fix: process level environment variables should take precedence over env files (#32407)
  • fix: validate cron schedule when using cron socket (#32406)
  • fix:(ext/node): escape simple quotes in node:child_process (#32336)
  • perf(install): improve parallelism of fetches during npm resolution (#32416)
  • perf(install): move HTTP decompression for registry requests off the async event loop (#32400)
  • perf(install): request abbreviated packuments from npm registry (#32364)
  • perf(install): split tarball extraction into decompress + write, limit write concurrency (#32408)
  • perf(install): use aws-lc-rs for tarball integrity hashing (#32365)
Feb 25, 2026
viaDeno

2.7.1 / 2026.02.25

This is a maintenance release to fix wrong output of deno --version in v2.7.0.

Last Checked
18m ago
Domain
deno.com
Accounts
denoland
Tracking since May 24, 2022