Releases: denoland/deno
Releases · denoland/deno
v2.6.8
Immutable
release. Only release title and notes can be modified.
2.6.8 / 2026.02.02
- feat(npm): support
jsr:scheme in package.json (#31938) - feat: Windows on ARM builds (#31917)
- fix(ext/node): enable defensive option on
DatabaseSync(#32004) - fix(ext/node): error formatting compatibility (#31970)
- fix(ext/node): implement
sqlite'SQLTagStore(#31945) - fix(ext/node): use primordials in
_fs_fchown.ts(#32007) - fix(flags): correct zsh completions for script arg (#31994)
- fix(install): clean up associated config and lock files during uninstall
(#31984) - fix(types): correct types for Worker events (#31981)
- fix: Reload the
CronHandlerImplif necessary when the control socket
receives new envs (#31996) - fix: upgrade deno_core to 0.383.0 (#32014)
v2.6.7
Immutable
release. Only release title and notes can be modified.
2.6.7 / 2026.01.29
- feat(ext/node): implement mock API for node:test module (#31954)
- feat(node): implement
FileHandle.readv()method (#31943) - feat(npm): use JSR for
@jsrscope (#31925) - feat: External Socket-Based Cron Implementation (#31952)
- feat: V8 14.5 (#31873)
- feat: add --inspect-publish-uid flag for VSCode debugging (#31927)
- fix(ext/http): use serve address override only once (#31935)
- fix(ext/net): remove socket file when dropping unix listener (#31947)
- fix(ext/node):
sqlite'sStatementSynccompatibility (#31941) - fix(ext/node): align assert throws/rejects signatures (#31934)
- fix(ext/node): fix usage of new V8 string APIs (#31963)
- fix(ext/node): implement
sqlite's missing options (#31919) - fix(ext/node): pass test-child-process-bad-stdio node compat test (#31851)
- fix(ext/node): read NODE_OPTIONS for --require and --inspect-publish-uid
(#31949) - fix(ext/node): retry stale keepAlive connections in http client (#31932)
- fix(ext/node): support setImmediate promisify.custom (#31920)
- fix(ext/node): use primordials in
_fs_ftruncate.ts(#31944) - fix(ext/node): use primordials in
ext/node/polyfills/tls.ts(#31816) - fix(ext/web): support object in
DOMExceptionsecond argument for Node.js
compat (#31939) - fix(node): throw ERR_INVALID_ARG_TYPE for invalid fs.readFile path (#31918)
- fix(unstable): lint ast comments from first file showing in others (#31956)
- fix(x): use local npm package even if npm specifier is used, forward unstable
flags (#31942) - fix: allow reading /dev/tty without requiring --allow-all (#31105)
- fix: enable edns for Deno.resolveDns (#31951)
- fix: graceful server shutdown with open, un-upgraded connections (#31959)
- fix: use
locked-tripwireto prevent unlocked cargo installs (#31973)
v2.5.7
Immutable
release. Only release title and notes can be modified.
2.5.7 / 2026.01.27
- fix: deno cross compile for intel mac target (#31714)
- fix: fetch fd leak (#31375)
- fix(bundle): avoid name clash in hack (#31409)
- fix(bundle): do not error on failing to clean up esbuild dir (#31408)
- fix(bundle): fix import.meta.main transform with jsr entrypoint (#31415)
- fix(bundle): treat bun specifiers as external by default (#31411)
- fix(check): fix nil deref with
--unstable-tsgo(#31416) - fix(compile): ensure temp dir exists during x64 codesign (#31672)
- fix(compile): intel mac compile fix (#31575)
- fix(compile): sentinal conflict with strtab on intel mac (#31587)
- fix(ext/node): autopadding behavior on
crypto.Cipheriv(#31389) - fix(ext/node): prevent cipher operations after finalize (#31533)
- fix(ext/node): truncate first non-hex value on Buffer.from (#31227)
- fix(node): ensure process.argv is an array of strings (#31322)
- fix(node): stub missing process.sourceMapsEnabled (#31358)
- fix(node/crypto): respect authTagLength in createCipheriv for GCM cip… (#31253)
- fix(node/process): make
process.stdin.isTTYwritable (#31464)
v2.6.6
Immutable
release. Only release title and notes can be modified.
2.6.6 / 2026.01.22
- feat(cli/tsc): show progress bar for TSGO downloads (#31893)
- feat(inspector): accept bare host and bare port for --inspect flag (#31881)
- feat(inspector/unstable): add /ws/events endpoint in inspector server, notify
watcher restart event in it (#31901) - feat(task):
globstar,failglob,nullglob, andpipefailsupport
(#31913) - feat: instrument cron with OTEL (#31916)
- fix(check): improve
@types/package resolution for the global resolver
(#31868) - fix(doc): non-determinism in
deno doc --lint(#31911) - fix(dx): always spawn subprocess for dx (#31897)
- fix(ext/crypto): add support for SHA3 (#31668)
- fix(ext/node):
assertcompatibility (#31821) - fix(ext/node): fix deadline resolution for queued timers (#31860)
- fix(ext/node): implement PerformanceObserver (#31875)
- fix(ext/node): implement getValidStdio for child_process (#31850)
- fix(ext/node): improve child_process CLI argument parsing (#31825)
- fix(ext/node): inspector.open() and inspector.close() (#31898)
- fix(ext/node): prevent derefencing symlinks on
fs.rm(#31886) - fix(ext/node): properly implement process.features (#31864)
- fix(ext/node): validate fd in tty.isatty and enable pseudo-tty tests (#31892)
- fix(ext/sqlite): double free of Session after database closed (#31830)
- fix(ext/web): export PerformanceObserver and PerformanceObserverEntryList
(#31887) - fix(publish): do not include tsconfig imports in publish graph (#31907)
- fix(publish): include
npm:@types/package resolution in published packages
(#31855) - fix: don't ever set 1005 outbound close code (#31845)
v2.6.5
Immutable
release. Only release title and notes can be modified.
2.6.5 / 2026.01.15
- feat(ext/canvas): support gif, webp for
createImageBitmap(#31402) - feat(ext/web): add performance.clearResourceTimings() and
setResourceTimingBufferSize() (#31603) - feat(node/fs): implement FileHandle.readableWebStream() (#31745)
- fix(audit): respect --level flag for exit code (#31721)
- fix(ci): rename
trusted-signing-actiontoartifact-signing-action(#31849) - fix(cli/test): close Node HTTP connections before sanitizer check (#31782)
- fix(ext/fetch): read file urls via vfs (#31814)
- fix(ext/fetch): support ipv6 destination host with http and socks proxy
(#31683) - fix(ext/node):
DatabaseSyncgarbage collection invalidating associated
resources (#31737) - fix(ext/node): add tls.setDefaultCACertificates support (#31522)
- fix(ext/node): emit deprecation warning for SlowBuffer (#31772)
- fix(ext/node): fix use-after-free in StatementSync JS iterator (#31770)
- fix(ext/node): use correct block sizes for HMAC algorithms (#31775)
- fix(ext/web): handle empty TextDecoder input when stream is true (#31691)
- fix(io): ignore
BrokenPipeerror inop_print(#31844) - fix(node/child_process): ChildProcess constructor without args (#31838)
- fix(node/child_process): improve arg type validation for execFile and fork
(#31829) - fix(node/child_process): reject null bytes in arguments (#31828)
- fix(node/child_process): use correct syscall name in spawn error (#31836)
- fix(npm): deduplication pass for initially partially resolved graphs (#31787)
- fix(runtime): handle
optionsparameter inDeno.errors.*constructors
(#31510) - fix(task): preserve signal-based exit codes for child processes (#31789)
- fix(tsgo): nil deref for exported symbols (#31786)
- fix(webgpu): correctly expose
GPUCompilationInfo&GPUCompilationMessage
(#31780) - fix: add more details when panicking getting dir path from deno.json (#31805)
- fix: allow multiple --allow-all args (#31833)
- fix: queue dynamic imports for modules with pending TLA (#31670)
- fix: update config schema for read permission to include ignore property
(#31785)
v2.6.4
2.6.4 / 2026.01.05
- fix(compile): make compile work with
--unstable-npm-lazy-caching(#31704) - fix(ext/node): enable keepAlive connection reuse for HTTP Agent (#31709)
- fix(ext/node): handle errors in sqlite session filter callback (#31756)
- fix(ext/node): support TypedArray and DataView targets in Buffer.copy()
(#31734) - fix(ext/node): support for inspector.url() (#31705)
- fix(ext/node): support numbered positional parameters in node:sqlite (#31722)
- fix(ext/websocket): prevent sending multiple close frames (#31747)
- fix(install): wait for package installations before applying patches (#31711)
- fix(node/crypto): integrate async_hooks for domain error handling (#31751)
- fix(serve): net permissions in config file (#31718)
- fix(task): prioritize member
package.jsonwhendeno.jsononly in root
(#31736) - fix(webgpu): update wgpu to 28.0.0 (#31163)
- fix: deno cross compile for intel mac target (#31714)
- fix: update urlpattern to 0.4.2 (#31193)
v2.6.3
v2.6.2
2.6.2 / 2025.12.19
- feat(unstable): add sandbox subcommand (#31568)
- fix(audit): fix deserde for transitive npm audit actions (#31671)
- fix(check): handle workspace members having different jsx import sources and
importing each other (#31654) - fix(check): regression with tsgo and node globals (#31621)
- fix(cli): deno tunnel when token storage isn't working or without deno.json
(#31584) - fix(compile): ensure temp dir exists during x64 codesign (#31672)
- fix(ext/node):
sqlite:backupcompatibility (#31610) - fix(ext/node): add error handling functions and tests for UV bindings (#31639)
- fix(ext/node): avoid env permission for TERM in console and readline (#31638)
- fix(ext/node): fix hot loop in
setImmediatewith a pending timer (#31643) - fix(ext/node): stub out Module.register and Module.registerHooks (#31666)
- fix(ext/node): support named pipe listen, connect and open (#31624)
- fix(ext/telemetry): otel baggage propagation (#31620)
- fix(fetch): fix SOCKS5 proxy URL validation logic (#31604)
- fix(flags): implement a better sandbox subcommand (#31657)
- fix(inspector): worker debugging support via CDP (#31527)
- fix(x): cache on demand when running, resolve packages with only one binary,
don't fail on node-gyp if not present (#31619) - fix(x): fix shim script when use custom alias name, re-enable alias tests
(#31653) - fix: panic on dropped inspector session (#31658)
- fix: update glob implementation to match with latest node (#31627)
v2.6.1
2.6.1 / 2025.12.15
- feat(unstable): deploy config allow app to be optional (#31567)
- fix(add): include type-only imports when building graph (#31552)
- fix(cli): add streams as transferable types (#31586)
- fix(compile): intel mac compile fix (#31575)
- fix(compile): sentinal conflict with strtab on intel mac (#31587)
- fix(ext/node):
DatabaseSynccompatibility (#31515) - fix(x): correct alias deno command location for Windows (#31573)
- fix(x): fix executing native binary on windows + some cleanup (#31551)
- fix: --preload and --require flags only available in runtime subcommands
(#31614) - fix: adjust deno_cache version (#31553)
- fix: source map file names to non-existent paths (#31564)
v2.6.0
2.6.0 / 2025.12.10
Read more: http://deno.com/blog/v2.6
- feat(BREAKING/install): require
--for script arg indeno install -gand
support installing multiple packages (#31292) - feat(cli): add approve-scripts AKA "approve-builds" subcommand (#31472)
- feat(cli): filter out common internal frames that add noise, dim and grey
internal frames in stack traces (#31247) - feat(cli): print working dir in grey in stack traces, relative paths in
check + compile output (#31194) - feat(config): allow storing npm constraints to allow running lifecycle scripts
for (#31075) - feat(coverage): add dark-mode toggle for html output (#31140)
- feat(ext/node): implement FileHandle.appendFile(data[, options]) (#31301)
- feat(ext/web): add
ImageDataFloat16Arraysupport (#31394) - feat(ext/web): stabilize
BroadcastChannel(#30770) - feat(ext/web): transferable {Readable,Writable,Transform}Stream (#31126)
- feat(init/npm): add --yes flag to bypass prompt (#31499)
- feat(install): add
--lockfile-onlyflag (#31376) - feat(lint): plugin API has env and read access (#31327)
- feat(node): allow subpath imports that start with '#/' (#31520)
- feat(permissions): allow
Deno.env.toObject()for partial env permission
(#31267) - feat(permissions): allow flags should override deny when more specific
(#31224) - feat(process): support integer signals in Deno.kill and child.kill (#31153)
- feat(unstable): add socket.dev integration for
deno audit(#31106) - feat(unstable): support authenticated socket.dev audit reports (#31370)
- feat(upgrade): ability to show additional message on upgrade (#31170)
- feat: V8 14.2 (#31178)
- feat:
--ignore-read(#31363) - feat:
deno init --empty(#31516) - feat: add --require run arg to support commonJS (#31201)
- feat: add Float16Array support (#31410)
- feat: add
--ignore-env=...(#31187) - feat: add
deno x(aliasdx) for conveniently running binaries from
packages (#31138) - feat: add native source maps support (#31268)
- feat: include
@types/nodetype declarations out of the box (#31502) - feat: support
publish: falseindeno.json(#30852) - feat: use Node.js timers by default (#31272)
- feat: wasm source phase imports (#31486)
- fix(audit): remove unwrap in favor of log, don't print empty reports (#31479)
- fix(bundle): Deno.bundle work in Worker (#31316)
- fix(bundle): avoid name clash in hack (#31409)
- fix(bundle): do not error on failing to clean up esbuild dir (#31408)
- fix(bundle): don't use createRequire when targeting browser in Deno.bundle
(#31534) - fix(bundle): fix import.meta.main transform with jsr entrypoint (#31415)
- fix(bundle): support android (#31521)
- fix(bundle): treat bun specifiers as external by default (#31411)
- fix(check): ensure
@types/nodeis cached when already in resolution (#31235) - fix(check): fix nil deref with
--unstable-tsgo(#31416) - fix(check): move types not found error to tsc diagnostic (#31509)
- fix(check): move unknown builtin node: module errors to tsc diagnostics
(#31449) - fix(cli): make --eval-file flag work without equals sign (#31151)
- fix(cli): put tasks first in zsh dynamic completions (#31350)
- fix(compile): support --preload flag in deno compile (#31152)
- fix(config): support UTF-16 surrogate pairs in unicode escape sequences in
json config (#31264) - fix(deps): use windows-sys for all windows targets (#31308)
- fix(ext/napi): suppress deprecated Buffer warnings (#31245)
- fix(ext/net): support IPv6 zone indices in Deno.connect() (#31123)
- fix(ext/node): Add sqlite
setAllowUnknownNamedParametersoption (#31202) - fix(ext/node): FileHandle compatibility (#31164)
- fix(ext/node):
StatementSync.iterate()should resetis_iter_finishedflag
on every call (#31361) - fix(ext/node):
url.domainToASCIIreturns empty string for invalid domains
(#31219) - fix(ext/node): autopadding behavior on
crypto.Cipheriv(#31389) - fix(ext/node): define process.versions.sqlite (#31277)
- fix(ext/node): ensure 'exit' event is fired only once for
worker_threads
(#31231) - fix(ext/node): export ppid (#31137)
- fix(ext/node): fix sqlite extension used for testing; ensure related tests are
actually meaningful (#31455) - fix(ext/node): implement
DatabaseSync.aggregate()(#31461) - fix(ext/node): implement
DatabaseSync.function()and better error details
(#31386) - fix(ext/node): implement
dns.lookupService(#31310) - fix(ext/node): implement
process.setegid()(#31155) - fix(ext/node): implement
process.setgid()andprocess.setuid()(#31162) - fix(ext/node): implement
process:seteuid()(#31160) - fix(ext/node): implement performance.timerify() (#31238)
- fix(ext/node): implement util.getSystemErrorMessage() (#31147)
- fix(ext/node): prevent cipher operations after finalize (#31533)
- fix(ext/node): reimplement
setImmediateAPI (#30328) - fix(ext/node): respect abort signal option on
FileHandle.readFile(#31462) - fix(ext/node): respects
flagoption onfs.readfileandfs.readfilesync
(#31129) - fix(ext/node): segfault on calling
StatementSyncmethods after connection
has closed (#31331) - fix(ext/node): sqlite
setAllowUnknownNamedParameterserror message (#31319) - fix(ext/node): sqlite.DatabaseSync explicit resource management compatibility
(#31311) - fix(ext/node): truncate first non-hex value on Buffer.from (#31227)
- fix(ext/signals): don't run exit hooks at non-exit times (#31269)
- fix(ext/web): Event dispatch should continue after reporting exception
(#31297) - fix(ext/web): console.dir respects indent level (#31412)
- fix(install): report installed npm packages when not using node_modules, fix
double counting (#31536) - fix(install): rewrite node_modules .bin shim generation for windows to be like
npm (#31494) - fix(lsp):
organizeImportswithout resolving specifiers (#31230) - fix(lsp): don't provide organizeImports action when client provides it
(#31530) - fix(lsp): lint-ignore directives follow leading comments (#31200)
- fix(lsp): set lockfile_skip_write unconditionally (#31191)
- fix(lsp): store assigned compiler options for cache files (#31377)
- fix(node): ensure process.argv is an array of strings (#31322)
- fix(node): missing
statfsexport fromnode:fs/promises(#31528) - fix(node): stub missing process.sourceMapsEnabled (#31358)
- fix(node): support advanced serialization in IPC (#31380)
- fix(node/assert): deepStrictEqual now correctly handles Number objects
(#31233) - fix(node/crypto): respect authTagLength in createCipheriv for GCM cip…
(#31253) - fix(node/net): return string
familyinserver.address()(#31465) - fix(node/process): make
process.stdin.isTTYwritable (#31464) - fix(node/timers): ensure active timers entry is deleted on
Timeout.prototype.refresh(#31436) - fix(node:console): ensure that the node:console implementation has an
implementation foremitWarningin scope (#31263) - fix(resolver): fall back to execution if can't resolve types (#31507)
- fix(schema): add bundle to unstable field schema (#31395)
- fix(test): Remove ANSI Escape Codes for Junit Reports (#30854)
- fix(tsgo): do not error out on non js/ts imports from npm packages (#31478)
- fix(tunnel): misc fixes (#30968)
- fix(types): add Symbol.iterator to NodeListOf (fixes #31382) (#31384)
- fix(unstable): don't panic on invalid reported lint range (#31261)
- fix:
is_elfpanic in sui (#31388) - fix: change errors message suggesting to run approve-scripts (#31493)
- fix: clippy::derivable_impls (#31460)
- fix: fetch fd leak (#31375)
- fix: fix npx running in test, make approve-scripts test less flaky (#31501)
- fix: make '@types' package resolution more consistent (#31512)
- fix: skip doing npm resolution in more cases (#31305)
- fix: update JSDoc for Deno.cwd() API (#31256)
- fix: update deno_error to 0.7.1 (#31450)
- fix: update permission-broker-response.v1.json (#31328)
- fix: upgrade denokv_* to 0.13 and rusqlite to 0.27 (#31374)
- fix: upgrade to swc_ecma_parser 27 (#31427)
- fix: wpt assert expectation correctly even if the filter has a layer (#30574)
- perf(node): implement getOwnNonIndexProperties in native code (#31393)
- perf(node): optimize Buffer compare (#31425)