main
chore: Happy New Year 2026 (#31748)
chore: deprecate run itests (#26444)
chore(tests): use docs.deno.com in tests to prevent GitHub rate limits (#29400)
fix: link to docs in JSON import error message (#34611)
fix: add hint to run with `--no-check` when type checking fails (#28091)
refactor(ext/web): align error messages (#25871)
fix(check): compiler options from workspace members (#27785)
chore(ext/web): regression test for AbortSignal.any() controller-only GC (#34516)
fix(ext/web): prevent GC of AbortSignal.any() (#32118)
fix(ext/node): error formatting compatibility (#31970)
fix(ext/web): show state and supportsBYOB in ReadableStream inspect (#34932)
feat(permission): support suffix wildcards in `--allow-env` flag (#25255)
chore: remove itest macro (#31795)
refactor(permissions): split up Descriptor into Allow, Deny, and Query (#25508)
fix: better error message for bare run in file-like case (#29055)
chore(cli): new error message for missing dependency (#30901)
feat(ext/web): support structured clone for Blob and File (#33827)
feat(ext/web): stabilize `BroadcastChannel` (#30770)
fix(resolver): prefer exact version match in BYONM npm resolution (#32977)
fix(loader): reject non-JSON modules for JSON imports (#36135)
fix(resolver): handle tag version req in byonm resolver (#33962)
feat: stabilize text imports (#34238)
fix(node_resolver): handle CJS filesystem path edge cases (#36112)
fix(cjs): use loader sources for recursive analysis (#36111)
fix(runtime): capture blob worker roots before revocation (#35128)
feat: stabilize --node-conditions flag (#29628)
feat(cli): print working dir in grey in stack traces, relative paths in check + compile output (#31194)
feat: permissions in the config file (#30330)
fix(regression): do not error when specifying `--config` flag with `../` component (#30208)
feat(check): tsconfig "references", "extends", "files", "include" and "exclude" (#29843)
fix(runtime): better error message when Deno.consoleSize() has no tty (#34538)
feat(unstable): CSS module imports (with { type: "css" }) (#35093)
feat: include `@types/node` type declarations out of the box (#31502)
fix(core): preserve custom .stack getters in error/test formatter (#35246)
chore: test coverage for decorator access has method (#34998)
feat: default to TS for file extension and support ext flag in more scenarios (#25472)
fix(desktop): don't let op_desktop_send_error_report target caller-supplied URLs (#35940)
fix: add hint for missing `document` global in terminal error (#26218)
fix(types): Conform lib.deno_web.d.ts to lib.dom.d.ts and lib.webworker.d.ts (#24599)
chore: bump dprint-plugin-typescript to 0.96.0, remove deno-fmt-ignore-file (#33839)
fix: don't print duplicate parse diagnostics (#35933)
perf: avoid building module graph if dynamic specifier already in graph (#24035)
chore: update submodule std version (#30676)
fix: load changed non-remote dynamic imports at runtime (#29413)
feat(unstable): ability to only install dependencies older than a certain date (#30752)
fix: prevent panic on dynamic import with non-string error name (#32498)
fix(core): don't set ERR_MODULE_NOT_FOUND code on module linking errors (#34800)
fix: queue dynamic imports for modules with pending TLA (#31670)
tests(run): add spec tests for non-executable entrypoints (#34779)
fix: restore --env-file parent directory traversal and do not error in `deno compile` for not found env file (#32686)
fix: process level environment variables should take precedence over env files (#32407)
fix(cli): don't let --env-file set Deno's own runtime control vars (#35032)
fix(core): bound error graph conversion (#36070)
chore(lint): add .out file reference checker (#27078)
perf: monch 0.6 (#33643)
fix(repl): report descriptive syntax error instead of "Unexpected token '<'" (#35016)
chore(internal): reland eszip changes (#28294)
fix(runtime): display proper error when throwing in event handlers (#32663)
Reland refactor(core): move nextTick/immediate queues into core, replace ops with shared buffers (#32440) (#32465)
feat: Add `Deno.exitCode` API (#23609)
feat(node:http): add http information support (#27381)
feat: enable explicit resource management for JavaScript (#28119)
fix(ext/fetch): reject transport failures with Node's "fetch failed" shape (#35618)
fix(ext/http): include buffered request bytes in size hint (#34831)
feat(runtime): add request_builder_hook for fetch token and cdn-loop headers (#35088)
fix(ext/fetch): retry on stale pooled HTTP/1.1 connections (#32566)
fix(runtime): show import location for unsupported import attributes (#34824)
feat(unstable): repurpose `--unstable-detect-cjs` to attempt loading more modules as cjs (#27094)
feat(unstable): support TC39 import defer proposal (#32360)
fix(core): don't drain microtasks in mod_evaluate_sync mid-evaluation (#35707)
feat(run): resolve main module with workspace resolver (#29928)
fix: resolve local file when folder name matches import-mapped package (#32854)
fix: `import.meta.resolve` - do not error for non-existent files in npm packages (#29741)
fix: inspector rewrite resource name to url (#29216)
feat(inspector/unstable): add /ws/events endpoint in inspector server, notify watcher restart event in it (#31901)
fix(runtime): suggest Worker/node:vm alternatives for npm:isolated-vm (#34702)
fix(cli): jsx pragma-related swc panics (#30935)
fix(emit): regression - keep comments in emit (#23815)
chore: regression test for listenQueue not blocking main thread (#34537)
chore: regression test for KV panic on uncaught error with listenQueue (#34553)
chore: require a distributed KV database via env var (#35671)
fix(runtime): lazy-loaded globals should shadow on inherited [[Set]] (#34405)
feat(unstable): support caching npm dependencies only as they're needed (#27300)
feat(check): type-check with native tsc by default (#35938)
fix(resolver): resolve linked packages by bare specifier (#35228)
feat: make 'globalThis.location' a configurable property (#25812)
fix(runtime): source map maybe cjs modules (#35013)
fix: discover config file for jsr: entrypoints (#35838)
fix(run): skip the cjs suggestion for mjs/mts modules (#26698)
fix(install): report installed npm packages when not using node_modules, fix double counting (#31536)
chore: add test to ensure parsing only happens once on first load (#23837)
fix(runtime): suggest --allow-scripts for `bindings` native addon error (#34666)
fix(runtime): suggest N-API alternatives for legacy V8/nan addons (#34695)
fix(node): ensure process.argv is an array of strings (#31322)
feat: make `setImmediate` and `clearImmediate` as globals (#29877)
fix(ext/node): read NODE_OPTIONS for --require and --inspect-publish-uid (#31949)
feat: stabilize bare node built-in resolution (#33316)
fix(resolver): collapse redundant slashes in file specifiers (#34713)
fix: show referrer range in deno_core loader errors (#30981)
fix(node): classify required js files as commonjs by default (#34673)
fix(ext/node): handle node child_process with --v8-options flag (#24804)
refactor(runtime): allow disabling the OffscreenCanvas global via env var (#35287)
docs(runtime): clarify worker Deno.exit behavior (#34167)
feat(lockfile): default to lockfile v5 (#28950)
test: rewrite some ignored tests to spec tests (#25652)
fix(npm): make peer dependency warning actionable and show importers (#35242)
feat(permissions): allow `Deno.env.toObject()` for partial env permission (#31267)
feat(cli): auto-migrate pnpm-workspace.yaml on resolution failure (#34993)
feat: add support for --preload/--import flag (#29626)
fix: support npm: specifiers in --preload and --import (#34346)
test: add regression test for --preload with same module as main (#31190)
fix(os): serialize process environment updates (#36074)
Revert "fix(runtime): throw a descriptive error for disabled __proto__ accessor (#34730)" (#34772)
fix: opt-in mitigation for React RCE/DoS CVEs (#34676)
fix(ext/node): initialize named stdio exports lazily (#35428)
feat: add `--allow-import` flag (#25469)
fix: improved support for cjs and cts modules (#26558)
fix(ext/node): surface ERR_REQUIRE_ASYNC_MODULE/CYCLE_MODULE codes and fix TLA retry (#34060)
fix: support loading `npm:` and `jsr:` specifiers in required ES modules (#31974)
feat: add --require run arg to support commonJS (#31201)
fix(coverage): count a branch-junction line as covered when either arm runs (#35858)
feat: `deno run` with no arguments prints list of available tasks (#30592)
fix(cli/run): resolve conflict when dir has same name as a task (#29538)
feat: upgrade V8 to 150.2.0 (#36098)
fix(ext/http): display localhost url once on windows (#31088)
fix(ext/http): use serve address override only once (#31935)
feat: use Node.js timers by default and remove global proxy (#33249)
fix: do not download compilerOptions -> types when not type checking (#24473)
fix(resolver): scope sloppy import hints to prepared modules (#36221)
feat: add native source maps support (#31268)
tests: update sourcemap tests for npm-only source existence check (#31601)
fix(ext/node_sqlite): keep attach limit capped under scoped permissions (#35232)
fix(ext/node): allow ATTACH DATABASE with `--allow-all` (#30763)
fix(ext/node): support numbered positional parameters in node:sqlite (#31722)
feat(ext/tls): add `SSLKEYLOGFILE` support for TLS key logging (#31867)
fix: support cjs, cts, mjs, and mts for the `--ext` flag (#30398)
fix(ext/web): structuredClone of non-serializable Web types throws DataCloneError (#33465)
feat: stabilize Temporal API (#31928)
fix(runtime): make Deno.test.* sub-methods no-op under `deno run` (#35344)
chore: update std in test util (#27892)
fix(info): normalize trailing spaces in file path args on Windows (#35008)
BREAKING: `DENO_FUTURE=1` by default, or welcome to Deno 2.0 (#25213)
perf(http): don't add Vary header if response is not compressed (#33892)
chore: report server kind in control-sock Serving event (#35672)
fix: accept U+30FB KATAKANA MIDDLE DOT in identifiers (#35147)
fix(cli): include the typed name in unrecognized subcommand error (#34882)
fix: unref stdin read (#23534)
fix(runtime): suggest --unstable-unsafe-proto after __proto__ access (#35192)
feat: add stable --unsafe-proto flag (#34738)
fix(permissions): require --allow-net for Unix domain socket ops (#34395)
fix: flaky cron socket tests (#32023)
fix: update message for unsupported schemes with npm and jsr (#26884)
feat: Upgrade V8 to 13.4 (#28080)
fix(config): hook up verbatimModuleSyntax for the emit pipeline (#34495)
refactor(resolver): allow disabling verbatimModuleSyntax via env var (#35288)
feat: wasm source phase imports (#31486)
fix: format wasm stack traces per W3C spec (#32246)
test: de-flake 'wasm_unreachable' test (#30157)
fix(webtransport): avoid url parse panic (#36066)
fix(ext/web): fix infinite loop in WebTransport datagram overflow handling (#33075)
fix(ext/web): handle failed webtransport datagram setup (#36067)
feat: Show hints when using `window` global (#25805)
fix: don't panic when running with // as a filepath (#28189)
fix(core): preserve WebAssembly streaming callback across new contexts (#34679)