SHA256
4
0
forked from pool/deno

Update to 2.9.0 #9

Merged
avindra merged 1 commits from :main into main 2026-07-02 04:04:19 +02:00
Contributor

Sun Jun 28 18:38:44 UTC 2026 - Jaime Marquínez Ferrándiz jaime.marquinez.ferrandiz@fastmail.net

  • Update to version 2.9.0:
    • 2.9.0 (#35502)
    • feat(npm): publishing-trust ranking and no-downgrade trust policy (#34927)
    • feat: enable default minimum dependency age (#35458)
    • fix(deploy): use JSR latest for deploy CLI (#35493)
    • fix(ext/node): avoid panic when vm.SourceTextModule uses import.meta (#35375)
    • fix(lsp): report TS2307 for unresolved imports in .d.ts entrypoints (#35469)
    • fix(ext/node): support AbortSignal.timeout in node:test mock.timers (#35474)
    • fix(ext/crypto): pad JWK to multiple of 8 bytes for AES-KW wrap (#35475)
    • fix(ext/node): implement process.resourceUsage() (#35468)
    • feat(desktop): autodetect Vite framework (#35470)
    • fix(ext/node): implement t.assert.fileSnapshot for node:test (#35478)
    • fix(desktop): add macOS desktop Info.plist keys (#35484)
    • fix(desktop): use native Wayland instead of XWayland on Wayland systems (#35485)
    • fix: Headers inspect for duplicate Set-Cookie values (#35461)
    • fix(node): expose lazy console stdio streams (console._stdout/_stderr) (#35488)
    • feat(http): disable Deno.serve automatic compression by default (#35486)
    • fix(ext/http): apply automatic compression for zero-arg serve handlers (#35490)
    • fix(desktop): add Bluetooth usage descriptions to macOS Info.plist (#35472)
    • feat(fmt): add sortNamedImports and sortNamedExports options (#33313)
    • feat(npm): install jsr deps into node_modules via npm-compat registry (#35029)
    • chore: bump libsui to 0.16.0 (#35467)
    • feat(ext/web): web locks api (#31166)
    • fix(core): don't cache WebIDL sequence keys in thread-local v8::Eternal (#35462)
    • perf(workers): incremental message-passing cleanups (#35108)
    • fix(ext/http): close active WebSockets on Deno.serve shutdown (#35105)
    • fix(publish): continue publishing workspace after a package fails (#35133)
    • feat(task): input-based caching with files/output/env (#34509)
    • fix(ext/kv): validate remote KV URL when opening the connection (#35106)
    • fix(test): ignorelist leaks from sanitizer-ignoring tests (#35005)
    • feat(lsp): add inferred type request (#35099)
    • fix(lsp): honor --env-file from deno.json test task in test runner (#34905)
    • fix(runtime): capture blob worker roots before revocation (#35128)
    • fix(desktop): hide bundled libc++ symbols so the desktop runtime can be dlopen'd on Linux (#35424)
    • feat(cli): add deno watch subcommand (#35301)
    • feat(http): allow disabling serve compression (#35253)
    • feat(compile): persist Web Storage/KV in a per-app data directory (#34618)
    • fix(ext/node): forward permissions when spawning deno with subcommand args (#35443)
    • feat(cli): auto-migrate pnpm-workspace.yaml on resolution failure (#34993)
    • feat: add "preferPackageJson" deno.json setting (#35392)
    • feat(fmt): infer config from .editorconfig (#34071)
    • feat(desktop): default UI backend to webview (#35442)
    • fix(core): always register isolate to prevent silent foreground task drop (#35408)
    • fix(ext/node): initialize named stdio exports lazily (#35428)
    • fix(ext/crypto): allow deriving AES-OCB keys (#35426)
    • chore: add tests for JSDoc @event, @fires, @emits, @listens (#34688)
    • feat(cli): add deno list subcommand to list declared dependencies (#34972)
    • fix(desktop): Wayland support for CEF and webview backends (#35425)
    • fix(ext/node): import attributes and custom module types in registerHooks ESM hooks (#35028)
    • fix(core): unwrap global exports in Wasm ESM integration (#34912)
    • fix(pack): include assets matched by publish.include in the tarball (#35331)
    • feat(test): add --changed and --related flags to deno test (#35199)
    • fix(node/test): route nested top-level test() to a subtest (#35406)
    • feat(desktop): --compress for self-extracting app bundles (#35420)
    • feat(desktop): add Windows .msi installer output format (#35378)
    • build: add support for loong64 and ppc64 (#35410)
    • perf(macos): enable chained fixups to cut pre-main startup (~0.8ms) (#35409)
    • feat(install): seed deno.lock from bun.lock (#35394)
    • feat(test): built-in snapshot testing via t.assertSnapshot (#35139)
    • feat(ext/node): implement node:test mock.module (#35329)
    • fix(coverage): merge coverage for modules loaded with different hash/search params (#35354)
    • fix(ext/node): fix node:test hook ordering and error handling (#35393)
    • fix(pack): surface slow type diagnostics (#35379)
    • fix(test): skip invalid doctest import bindings (#35382)
    • fix(ext/node): avoid panic deserializing empty buffers over child_process IPC (#35340)
    • feat(install): seed deno.lock from yarn.lock (#35350)
    • test: bound npm/playwright_compat so a wedged step fails fast (#35396)
    • chore(tests): bump npm/playwright test fixture to 1.60.0 (#35405)
    • fix(test/node): mark test-worker-fshandles-open-close-on-termination as flaky (#35387)
    • fix(npm): symlink workspace npm members into root node_modules by name (#35383)
    • fix(node): propagate source thread id to process workerMessage event (#35374)
    • fix(install): seed pnpm workspace members and catalog deps (#35376)
    • perf(runtime): lazy-load node:buffer and node:timers globals (#35373)
    • perf: lazy-load OSX frameworks with lzld (#35341)
    • fix(update): refetch npm metadata so stale cache doesn't hide newer versions (#35380)
    • feat(desktop): add Linux .deb and .rpm installer output formats (#35296)
    • perf: V8 code cache for residual lazy-loaded ESM modules (#35338)
    • feat(task): add --jobs/--concurrency flag to deno task (#35318)
    • docs: consolidate Deno.bundle reference category (#35342)
    • feat: deno remove --global as alias for deno uninstall --global (#35327)
    • feat(install): seed deno.lock from pnpm-lock.yaml (#35346)
    • fix(tests): skip npm/playwright_compat on windows-aarch64 (#35358)
    • fix(runtime): make Deno.test.* sub-methods no-op under deno run (#35344)
    • feat(install): seed deno.lock from package-lock.json (#35330)
    • refactor: add the zero-cost CLI argument parser engine (#35334)
    • perf(snapshot): guard against lazy modules leaking into eager snapshot (#35332)
    • refactor(core): route residual lazy_loaded_js code cache through ModuleLoader (#35335)
    • perf: gate eager node bootstrap to node workers (#35337)
    • refactor: extract CLI flag types into deno_cli_parser crate (#35333)
    • fix(jupyter): report cell errors instead of failing silently (#35328)
    • docs: improve JSDoc for Deno namespace types from docs feedback (#35326)
    • perf: startup time (22ms -> 15ms) (#34450)
    • chore: bump node_compat test suite to Node.js 26.3.0 (#34746)
    • feat(task): add --if-present flag to deno task (#35315)
    • docs(cli): clarify install --node-modules-dir, --dev, --reload, --check help (#35325)
    • feat(task): set npm_execpath, npm_node_execpath and npm_command for package.json scripts (#35317)
    • fix(resolver): better hint when importing a linked package by the wrong name (#35319)
    • docs(ext/net): clarify Deno.TcpConn.setNoDelay Nagle's algorithm wording (#35324)
    • fix(ext/node): fail node:test on unhandled rejection and enforce timeout (#35297)
    • docs: fix dead MDN link to Body interface (#35266)
    • fix(ext/signals): build windows-sys only on Windows (#35283)
    • fix(ext/net): cancel in-flight reads when closing TCP/Unix/Vsock streams (#35294)
    • refactor(runtime): allow disabling the OffscreenCanvas global via env var (#35287)
    • refactor(resolver): allow disabling verbatimModuleSyntax via env var (#35288)
    • feat(ext/node): implement node:test mock.timers (#33946)
    • perf(core): reduce snapshotted cppgc op member templates (#35298)
    • fix(ext/node): don't apply requestTimeout to active streaming responses (#35291)
    • fix(ext/node): support HTTP/2 on the DENO_SERVE_ADDRESS override listener (#35089)
    • fix(serve): exit cleanly on SIGTERM/SIGINT in deno serve (#32862)
    • refactor(ext/fetch): check net deny list against connected peer addr (#34418)
    • fix(npm): don't apply import map to npm bin main module (#35097)
    • fix(test): use # instead of $ as the doc test virtual file sigil (#35095)
    • fix(ext/node): stop coloring non-TTY streams in util.styleText (#35236)
    • feat(install): warn on package.json engines mismatch (#34225)
    • feat(coverage): add configurable coverage thresholds (#35056)
    • fix(install): resolve package.json dependencies in global install (#35135)
    • fix(core): preserve custom .stack getters in error/test formatter (#35246)
    • fix(upgrade): stream zstd delta patch to avoid 2GiB OOM (#35284)
    • fix(ext/net): set transport on address for TlsListener (#35258)
    • fix(ext/node): single source of truth for emulated Node version (#35273)
    • fix(lsp): include tsconfig roots in script names (#34136)
    • docs: update Chocolatey install link to community.chocolatey.org (#35282)
    • feat(cli): provide a node on PATH when Node.js is not installed (#34969)
    • chore: deprecate no-op --unstable-node-globals flag (#35278)
    • fix(ext/node): check --allow-net for proxied request target in node:http(s) (#35241)
    • fix(npm): slim cached full packument when minimumDependencyAge is set (#35285)
    • fix(permissions): don't require --allow-run for process.kill on self (#34382)
    • refactor(cli): restrict DENO_UNSTABLE_CONTROL_SOCK to local transports (#35276)
    • feat(napi): implement Node-API version 10 (#35270)
    • feat(ext/net): implement Happy Eyeballs for Deno.connect and Deno.connectTls (#31726)
    • feat(node): bump reported process.version to v26.3.0 (#34747)
    • fix(desktop): correct libdenort unpack path with non-executable extension (#35267)
    • feat(test): add retry and repeats options to Deno.test (#35053)
    • perf: startup profiling instrumentation + clap fast-path (#35263)
    • feat: deno desktop subcommand (#33441)
    • feat(runtime): add request_builder_hook for fetch token and cdn-loop headers (#35088)
    • feat(cli): add deno link and deno unlink subcommands (#34359)
    • feat(test): add --shard flag to split a test run across machines (#35057)
    • fix(task): set npm lifecycle env vars when running package.json scripts (#35252)
    • chore(tools): make lint.js work in jj checkouts (#35255)
    • perf(snapshot): minify snapshot sources (#35183)
    • fix(ext/node): preserve AsyncLocalStorage context across node:net callbacks (#35237)
    • fix(ext/node): keep dns.lookup permission token internal (#35224)
    • fix(ext/fs): truncate should not follow a terminal symlink (#35239)
    • feat: add stable --unsafe-proto flag (#34738)
    • fix(runtime): suggest --unstable-unsafe-proto after proto access (#35192)
    • fix(npm): make peer dependency warning actionable and show importers (#35242)
    • fix(ext/node): restore Node binding signature for zlib write/writeSync (#35238)
    • fix(ext/fetch): require --allow-net for Unix proxy in createHttpClient (#35231)
    • feat: support ignore option in Deno.watchFs (#31582)
    • fix(ext/node): allow registerHooks with no resolve or load hook (#35235)
    • fix(ext/node): implement worker_threads.isInternalThread (#35234)
    • fix(npm): avoid spurious npm re-resolution that fails under --cached-only (#35051)
    • feat(ext/crypto): support remaining modern WebCrypto algorithms (#35223)
    • fix(resolver): resolve linked packages by bare specifier (#35228)
    • fix(ext/napi): restore Explicit microtask policy in napi_resolve_deferred (#35212)
    • feat(bundle): add --declaration flag to generate rolled-up .d.ts files (#33838)
    • feat(lockfile): auto-resolve git merge conflicts in deno.lock (#34726)
    • perf(ext/web): port console/inspect to Rust (cppgc object wrap) (#35087)
    • feat(fmt): use lax-markup for HTML, XML, SVG, and components (#35174)
    • fix(coverage): don't panic in summary reporter without a common root (#35211)
    • fix(repl): highlight regex literals correctly (#35103)
    • feat(test): show sub-millisecond test durations (#35200)
    • feat(install): create node_modules for workspace members (#34970)
    • fix: cache 404 responses for remote modules (#35138)
    • feat(fmt): use lax-css for CSS, SCSS, and Less (#35160)
    • feat(unstable): CSS module imports (with { type: "css" }) (#35093)
    • feat(test): add Deno.test.each for parameterized tests (#34938)
    • fix(core): handle async op promise id wraparound (#35126)
    • perf(ext/crypto): port WebCrypto from JS to Rust (#34966)
    • feat(fmt): use lax-sql for SQL formatting (#35161)
    • feat: stabilize bare node built-in resolution (#33316)
    • feat: stabilize "links" field in deno.json (#34996)
    • perf(core): skip source ASCII checks in release runtime setup (#35186)
    • fix(serve): update request_signal_streaming spec for legacy abort warning (#35193)
    • feat: support navigator.userAgentData (#34743)
    • fix(install): remove stale root node_modules symlink on deno remove (#35137)
    • fix(serve): shut down old workers on watcher restart (#35136)
    • fix(core): make uv_compat ready queues thread-safe (#35175)
    • fix(ext/fetch): keep content-encoding and content-length on decompressed responses (#35124)
    • fix(lsp): make requests work for files opened from node_modules (#35176)
    • feat(ext/http): deprecation warning for legacy request abort (#34397)
    • fix(runtime): don't silently lose Deno.watchFs events (#35122)
    • fix(permissions): require --allow-net for Unix domain socket ops (#34395)
    • fix(ext/node): make registerHooks resolve hook work for nested imports (#35169)
    • fix(npm): support catalog: protocol in deno.json imports (#35168)
    • chore(wpt): upgrade deno_dom to fix silent empty test bundles (#35184)
    • fix: accept U+30FB KATAKANA MIDDLE DOT in identifiers (#35147)
    • fix(check): treat npm .d.ts as CJS based on package.json (#35166)
    • chore: publish benchmark JSONL files (#35146)
    • chore: cover first node:http proxy request under test (#35001)
    • fix(permissions): treat Windows \\?\ verbatim paths as equivalent (#35096)
    • fix(ext/crypto): clamp X448 scalar per RFC 7748 (#35157)
    • fix(ext/node): implement test.TestContext.runOnly (#35158)
    • ci: guard release snapshot flags (#35164)
    • docs(runtime): clarify worker Deno.exit behavior (#34167)
    • ci: fix pnpm exec version check in npm publish workflow (#35156)
    • fix(publish): skip already-published versions before type checking (#35134)
    • fix(ext/node): trace v8 serializer delegate (#35132)
  • Update to version 2.8.3:
    • 2.8.3 (#35144)
    • fix(ext/fs): stream Deno.readDir entries (#35130)
    • perf(core): reduce native callback snapshot overhead (#35121)
    • fix(ext/http): surface errors thrown while streaming a Deno.serve body (#35104)
    • fix(repl): treat trailing . as incomplete input (#35101)
    • fix(ext/web): friendlier URLPattern construction errors (#35102)
    • fix(test): wait for worker termination before pending promise failures (#35127)
    • fix(test): handle escaped markdown code fences (#35125)
    • fix(jupyter): handle completion cursor_pos as Unicode codepoints (#35098)
    • fix(runtime): cancel prompt on esc (#35004)
    • fix(compile): run forked child's module instead of entrypoint (#34687)
    • fix(ext/web): don't trip debugger on handled stream writer-release rejection (#35100)
    • fix(ext/node): keep v8.serialize output readable by Node.js (#35118)
    • fix(permissions): allow non-recursive reads/writes on ancestors of deny (#34504)
    • fix(ext/node): keep node:vm ContextifyContext wrapper alive with its context (#35090)
    • feat(test): forward shebang permissions into deno test --doc (#35052)
    • fix(outdated): send npm Accept header when fetching package metadata (#35012)
    • test: reenable flaky fetch tests on Windows (#35058)
    • fix(ext/node): export runMain from node:module (#35065)
    • fix(test): do not report "only" notice when a test fails on its own (#35063)
    • fix(lint): name the offending plugin in lint plugin load errors (#35067)
    • fix(ext/fetch): preserve empty multipart filenames (#35009)
    • fix(info): normalize trailing spaces in file path args on Windows (#35008)
    • fix(ext/http): prefer brotli for equal compression q-values (#35011)
    • test(ext/http): cover h2 serve request behavior (#35082)
    • fix(ext/http): join split request headers consistently (#35081)
    • fix(ext/node): count forked child process sockets (#34096)
    • fix(ext/node): propagate nextLoad(newUrl) redirect to default loader (#35027)
    • fix(publish): preserve default export of export * re-exported module (#34709)
    • fix(lsp): start rename after extract refactors (#34832)
    • build(flake): update rusty-v8 and rust-overlay (#34839)
    • fix(coverage): improve HTML report PageSpeed score (#34980)
    • fix(ext/node_crypto): support PBES2/AES-CBC bags in tls.createSecureContext pfx (#34438)
    • fix(permissions): correct -A wording in raw-mode prompt message (#35070)
    • test: assert deno fmt --check does not modify files (#34811)
    • fix: resolve global install import maps from original cwd (#34165)
    • fix(ops): build fast-call errors without re-entering JS (#35042)
    • fix(permissions): don't hang prompt when stdin is in raw mode (#34457)
    • fix(ext/node): accept non-canonical RSA SPKI keys (#34134)
    • fix(ext/node): replay direct writes on stale http retry (#34992)
    • fix: ignore 0 value for OTEL_METRIC_EXPORT_INTERVAL (#35054)
    • fix(ext/node): guard TCPWrap.open against adopting tracked fds (#35045)
    • fix(check): honor ts suppressions for unresolved imports (#34163)
    • fix(ext/node): don't cache a pointer to the zlib result buffer (#35043)
    • fix(ext/webgpu): bounds-check + view-aware setBindGroup Uint32Array fast path (#33980)
    • fix(ext/node): fix asciiSlice & ucs2Slice & hexSlice being too slow (#34525)
    • fix(ext/node): transfer TCP handle ownership in http2 consumeStream (#35047)
    • fix(ext/ffi): accept Uint8Array in FFI buffer types (#34999)
    • fix(runtime): keep lazy Deno namespace APIs writable (#35050)
    • fix(http): handle raw h1 serve regressions (#35049)
    • chore: update webgpu (#34319)
    • perf(config): match glob paths relative to base (#35039)
    • fix(ext/web): repair text_decoder_stream bench after BlobStoreTrait change (#35044)
    • refactor(ext/web): extract BlobStoreTrait to allow custom blob store implementations (#34000)
    • docs: add jsdocs for URLSearchParams, Storage, FormData, EventSource (#34278)
    • fix(watch): keep watcher alive when script calls Deno.exit() (#35021)
    • fix(repl): show tab completions for navigator.gpu (#35006)
    • perf(ext/web): ASCII fast path for streaming TextDecoder.decode (#34299)
    • fix(fmt): align singleBodyPosition schema values (#34304)
    • fix(ext/node): enforce maxBuffer in child_process.spawnSync (#34053)
    • fix(runtime): source map maybe cjs modules (#35013)
    • fix(cli): generate type-only doc-test imports under verbatimModuleSyntax (#33508)
    • fix(lint): helpful error for Deno.lint.runPlugin outside deno test (#35018)
    • fix(inspector): attribute idle event-loop wait to (idle) in CPU profiles (#35034)
    • fix(resolver): prefer deno jsx options over tsconfig (#34141)
    • fix(ext/webgpu): update published crate repository url (#33916)
    • feat(ext/telemetry): honor OTEL_SPAN_EVENT_COUNT_LIMIT (#34795)
    • fix(core): use isolate_unchecked accessors for fast &v8::Isolate args (#33474)
    • fix(core): silence too_many_arguments on Callable trait method (#33475)
    • fix(bundle): respect --check and run the type checker (#33514)
    • refactor(lsp): use ToV8 for the getSignatureHelpItems request (#34783)
    • chore: upgrade deno_graph to 0.108.4 (#35035)
    • perf(lsp): cache shared workspace data across members (#32476)
    • Revert "test(node_compat): enable parallel/test-child-process-send-utf8.js" (#35036)
    • fix(ext/node): unblock static module loads when registerHooks is active (#35026)
    • fix(cli): don't let --env-file set Deno's own runtime control vars (#35032)
    • feat(ext/telemetry): honor OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT (#34787)
    • refactor(core): derive FromV8/ToV8 for JsError and BenchResult (#34749)
    • fix(ext/net): handle missing port and path in listen and listenDatagram (#31681)
    • fix(lsp): update cache after workspace folder changes (#32823)
    • fix(ext/node): implement url.fileURLToPathBuffer (#34883)
    • docs(cli): document environment variables advertised by flag help (#34774)
    • fix(ext/node): throw ERR_UNKNOWN_BUILTIN_MODULE for unknown node: builtins (#34766)
    • test(node_compat): enable parallel/test-child-process-send-utf8.js (#34778)
    • fix(ext/web): fire FileReader progress events as tasks (#34763)
    • feat(ext/telemetry): support OTEL_TRACES_SAMPLER (#34764)
    • chore: upgrade v8 to 149.3.0 (#35030)
    • fix(test): skip markdown roots when building watcher graph (#35003)
    • fix(repl): report descriptive syntax error instead of "Unexpected token '<'" (#35016)
    • fix(publish): ignore unused type parameter diagnostics from fast check (#35017)
    • fix(ext/web): writableStreamForRid accepts any ArrayBufferView/ArrayBuffer (#35020)
    • feat(fmt): add JSON trailing comma config (#33383)
    • fix(cli): accept allow-import for deno add (#35019)
    • fix(fmt): pass newlineKind option to JSON and Markdown formatters (#32579)
    • fix(serde_v8): add recursion depth limit to deserializer (#34984)
    • fix(publish): catch banned triple slash directives anywhere in file during dry-run (#35010)
    • test(cli): cover shebang doc test extraction (#35007)
    • fix(repl): print uncaught exceptions from timers at the prompt (#35002)
    • perf(ext/web): convert geometry.js from lazy_loaded_esm to lazy_loaded_js (#34997)
    • docs: update usage examples for ext crates (#34978)
    • fix(install): preserve workspace member resolution in global install (#34989)
    • fix(ext/fs): clarify that Deno.symlink() needs unscoped permissions (#34991)
    • chore: test coverage for decorator access has method (#34998)
    • fix(ext/node): keep sqlite iterator callbacks alive (#34982)
    • fix(ext/io): cancel pending readable stream reads (#34986)
    • fix(npm): support workspace: dependencies with an alias in package.json (#34990)
    • fix(npm): resolve workspace members with prerelease versions (#34928)
    • feat(workspace): auto-discover external deno.json import maps (#34803)
    • fix(ext/node): guard sqlite authorizer reentrant replacement (#34983)
    • fix(ext/node): trace v8 deserializer delegate (#34981)
    • fix(outdated): include catalog dependencies in deno outdated/update (#34977)
    • feat(outdated): warn about packages skipped due to registry errors (#34974)
    • fix(publish): detect circular workspace dependencies before authorization (#34823)
    • fix: throw ERR_DIR_CLOSED on use-after-close in Dir (#34910)
    • feat(ext/node): auto-instrument node:http2 with OpenTelemetry (#34510)
    • fix(ext/node): handle EMFILE in child_process.spawn and compound shell commands (#33544)
    • fix(update): show version requirement in interactive picker (#34671)
    • fix(ext/os): don't expose invalid env var keys from Deno.env.toObject() (#34711)
    • fix(serve): apply import map to main module in deno serve --watch (#34893)
    • fix(ext/node): wire ConnectionsList hooks so headersTimeout doesn't spuriously fire (#34356)
    • fix(clean): keep cleaning when cache files are locked and report holders (#34946)
    • fix(resolver): collapse redundant slashes in file specifiers (#34713)
    • fix(ext/node): clear nonblocking fd stdio for child pipes (#34962)
    • feat(ext/fetch): support priority in RequestInit (#34716)
    • fix(compile): resolve bare npm imports in --bundle worker sources (#34967)
    • fix(lockfile): write through deno.lock symlink instead of replacing it (#34826)
    • fix: support --inspect family in NODE_OPTIONS (#34717)
    • fix(check): surface unresolved imports in .d.ts entrypoints (#34168)
    • fix(cli): strip trailing CR from args so CRLF shebangs work (#34968)
    • fix(publish): improve error reporting for JSR manifest verification (#34690)
    • fix(ext/web): clearer error when a resource-backed stream is consumed after close (#34964)
    • fix(cli): collect re-exported names for deno test --doc injection (#33511)
    • fix(ext/node): fix broken encoding validation in indexOfBuffer (#33393)
    • fix(install): handle ETXTBSY when setting up node_modules (#33311)
    • fix(add): accept npm version ranges on the command line (#34799)
    • perf(ext/fs): use file identity instead of canonicalize in copyFile same-path guard (#34750)
    • fix(install): suppress peer dependency warnings for overridden packages (#34935)
    • fix(runtime): show import location for unsupported import attributes (#34824)
    • fix(bundle): apply node-style CJS interop on all platforms (#34939)
    • refactor(tls): deduplicate rustls-webpki (#34965)
    • refactor(wasm): remove wasm-encoder dependency (#34954)
    • fix(ext/web): support SharedArrayBuffer over BroadcastChannel (#34961)
    • feat: bump-version -c to handle deno.json + package.json in same dir (#34770)
    • fix(ext/crypto): align WebCrypto modern algorithms with the spec (#34941)
    • fix(ext/node): implement mock.property() in node:test (#34959)
    • chore: test coverage for format() preserves WHATWG URL credentials (#34951)
    • fix(ext/process): run shebang-less scripts via /bin/sh on ENOEXEC (#34945)
    • fix(ext/node): match Node's UTF-8 replacement for invalid bytes in Buffer decode (#34947)
    • fix(ext/node): support ChildProcess.send with net.Server handles (#34948)
    • feat(x): add deno x --ignore-scripts (#34952)
    • refactor(cron): remove saffron dependency (#34879)
    • refactor(fetch): remove tower-http decompression (#34867)
    • fix(core): externalize lazy loaded sources (#34936)
    • feat(ext/node): notify control socket when node:http server starts serving (#34949)
    • fix(bundle): instantiate .wasm imports instead of emitting raw bytes (#34923)
    • feat(ext/crypto): implement SubtleCrypto.supports() static method (#34903)
    • fix(ext/crypto): ML-KEM raw-seed, seed-form PKCS#8, and JWK (#34924)
    • perf(ext/http): add Deno-owned HTTP/1.1 serve path (#34446)
    • fix(ext/http): don't crash server on dead streaming-body resource (#34933)
    • fix(ext/fetch): block requests to bad ports per Fetch Standard (#34863)
    • fix(ext/crypto): support raw-public format for existing asymmetric keys (#34920)
    • fix(runtime): don't panic on missing SnapshotOptions when no snapshot (#34929)
    • fix(ext/web): show state and supportsBYOB in ReadableStream inspect (#34932)
    • refactor: reduce env_logger feature set (#34898)
    • fix(ext/crypto): move getPublicKey to SubtleCrypto and validate usages (#34913)
    • fix(lsp): ignore relative import map remaps (#34856)
    • fix(permissions): run special-file guard for no-follow ops (#34393)
    • fix(dotenv): include underscore in unbraced variable names (#34797)
    • feat(cli): suggest DENO_TLS_CA_STORE on untrusted TLS certificate (#34756)
    • feat(info): support --minimum-dependency-age flag (#34762)
    • fix(console): %c colors with same red component as previous color (#34784)
    • feat(config): support globs in links (#34849)
    • fix(resolver): don't treat a linked deno.json package as an npm link (#34841)
    • fix(cli): check worker's own permissions for dynamic asset imports (#34707)
    • fix(ext/websocket): send URL userinfo as Basic auth header (#34708)
    • fix(compile): prune managed npm snapshot to graph-reachable packages (#34741)
    • feat(lsp): show no-slow-types diagnostics for JSR packages (#34740)
    • fix(publish): allow stable text imports (#34692)
    • fix(run): error instead of panicking when watch flags are used with stdin (#34785)
    • test(node_compat): enable three passing vm tests (#34796)
    • fix(lsp): prefer exact import map remaps (#34855)
    • fix(watch): detect newly created files in fmt/lint/test/bench --watch (#34828)
    • fix(core): don't set ERR_MODULE_NOT_FOUND code on module linking errors (#34800)
    • feat(lsp): provide hover info for import map resolutions (#34854)
    • fix(ext/fs): report broken symlink read as NotFound, not FilesystemLoop (#34833)
    • fix(coverage): exclude linked/patched packages from coverage report (#34834)
    • fix(ext/crypto): ChaCha20-Poly1305 uses raw-secret format and iv param (#34915)
    • fix(bundle): don't panic when esbuild binary is busy or unavailable (#34845)
    • feat(ext/crypto): support ML-DSA JWK import/export (#34914)
    • fix(ext/crypto): use outputLength for SHAKE/cSHAKE/TurboSHAKE digests (#34911)
    • fix(lsp): suggest import map aliases for remaps (#34857)
    • fix(ext/kv): update access_token error message to new deno deploy console (#34918)
    • fix(ext/fetch): only match multipart delimiter lines (#34587)
    • fix(ext/web): URL.createObjectURL throws ERR_INVALID_ARG_TYPE for non-Blob args (#34878)
    • feat(lsp): diagnose import map files (#34864)
    • fix(ext/kv): validate batchSize and expireIn inputs (#34782)
    • feat(cli): support --env-file in dependency and registry subcommands (#34843)
    • fix(cli): include the typed name in unrecognized subcommand error (#34882)
    • tests(eval): add spec tests for eval error reporting and exit codes (#34884)
    • fix(ext/node): don't expose Module.register stub (#34894)
    • fix(watch): respect --watch-exclude in deno serve (#34847)
    • fix(ext/node): accept scoped IPv6 interface in dgram addMembership (#34899)
    • fix(bundle): rename sourcemap for HTML entrypoints (#34901)
    • fix(lsp): cache JSR type roots (#34886)
    • chore: test cover PE32 node.exe addon imports (#34848)
    • refactor(ext/crypto): move webcrypto key store to Rust (#34881)
    • docs(contributing): fix Windows build prerequisites (#34842)
    • fix(clean): support deno clean --dry-run without --except (#34846)
    • refactor(ffi): remove serde-value dependency (#34851)
    • fix(compile): support fs.fstatSync on vfs (#34892)
    • perf(lsp): cache lint and doc diagnostics per document module (#34875)
    • fix(check): ignore doc comment dynamic imports (#34888)
    • feat(compile): support watch mode (#34860)
    • fix(ext/node): match Node.js when dns.lookup hostname is falsy (#34887)
    • fix(net): preserve unix abstract socket paths (#34874)
    • fix(ext/process): treat Windows kill on exited process as NotFound (#34889)
    • chore: regression test for clearImmediate semantics across TCP socket close (#34852)
    • chore: test cover CJS bare builtin requires (#34853)
    • fix(ext/fetch): don't decompress empty body advertised as gzip/br (#34880)
    • fix(ext/http): include buffered request bytes in size hint (#34831)
    • feat(lsp): add Deno.test ignore and only code actions (#34861)
    • fix(ext/node): keep worker alive while holding a refed MessagePort (#34877)
    • fix(cache): retry locked cache database instead of deleting it (#34873)
    • fix(test): support blockquoted markdown doc tests (#34871)
    • fix(lsp): evict on-disk documents from cache when deleted or changed (#34858)
    • fix(runtime): serialize terminal permission prompts (#34821)
    • fix(ext/node): implement setKeepAlive on native TCPWrap (#34865)
    • fix(cli): don't suggest non-existent subcommand-flag combinations (#34810)
    • feat(lsp): report deno doc --lint diagnostics (#34733)
    • fix(check): treat .d.ts in ESM-supporting npm packages as ESM (#34613)
    • feat(info): add localPath to npm packages in deno info --json (#34806)
    • fix(ext/node): read proxy env vars without --allow-env (#34807)
    • fix(jupyter): verify HMAC signatures on incoming kernel messages (#34825)
    • fix(ext/node): bump emulated Node version to v24.15.0 (#34804)
    • feat(lsp): add "Debug" code lens for test steps (#34742)
    • test(ext/web): differential tests for geometry matrix math (#34817)
    • refactor: replace weak-table in lsp document cache (#34776)
    • refactor(lsp): remove fancy-regex from route matching (#34813)
    • refactor: replace nalgebra in web geometry (#34771)
    • fix(npm): run workspace package lifecycle scripts (#34615)
    • refactor(ext/node): use primordials across the node:* polyfill layer (#34721)
  • Update to version 2.8.2:
    • 2.8.2 (#34791)
    • tests(run): add spec tests for non-executable entrypoints (#34779)
    • fix(ext/web): honor PerformanceObserver buffered flag (#34748)
    • fix(ext/web): make MessageEvent.ports a frozen array (#34773)
    • chore: test node_modules symlinks in npm workspace with cyclic deps (#34759)
    • fix(npm): apply scoped registry auth to same-origin tarballs (#34698)
    • fix(jupyter): make kernel ZMTP handshake compatible with libzmq (#34755)
    • refactor(lsp): serialize positional TSC requests with ToV8 (#34775)
    • fix: resolve local file when folder name matches import-mapped package (#32854)
    • Revert "fix(runtime): throw a descriptive error for disabled proto accessor (#34730)" (#34772)
    • chore: regression tests for rename preserving import map alias (#34761)
    • fix(lsp): spurious diagnostics in Jupyter notebook cells (#34734)
    • fix(lsp): skip parent process check when PID isn't visible (#34744)
    • fix(install): handle pre-existing node_modules symlink on Windows (#34659)
    • fix(add): handle version tags like @latest in deno add for JSR packages (#32859)
    • fix: remove node_shim exec dependency (#34739)
    • fix(runtime): throw a descriptive error for disabled proto accessor (#34730)
    • fix(compile): enable ANSI colors on Windows in compiled binaries (#34701)
    • fix(ext/fs): error when copyFile source and destination are the same file (#34718)
    • chore: upgrade WPT submodule and refresh all expectations (#34573)
    • chore: regression test for legacy subpath main under .deno layout (#34737)
    • refactor: replace winapi usages with windows-sys (#34732)
    • fix: opt-in mitigation for React RCE/DoS CVEs (#34676)
    • fix(lsp): release idle memory back to the OS (#34727)
    • refactor(lsp): bundle import-completion services into CompletionContext (#34731)
    • perf(node): skip require permission checks when read is fully granted (#34722)
    • fix(lsp): limit node_modules auto-import aliasing (#34674)
    • feat(lsp): autocomplete jsr:/npm:/node: in deno.json(c) imports (#34724)
    • fix(lsp): use cached registry config when offline (#34723)
    • chore: add no-unused-vars regression test for JSX factory (#34725)
    • fix(node): avoid spurious ERR_MULTIPLE_CALLBACK on process.stdout/stderr (#34728)
    • feat(compile): improve --bundle dependency resolution and add --minify (#34536)
    • fix(check): make node:stream/web types alias the globals (#34606)
    • docs(cli): document undocumented runtime API declarations (#34715)
    • fix(tsc): resolve Web globals to Deno's versions in npm packages (#34634)
    • fix(task): restore terminal mode after task exits on Windows (#34685)
    • feat(ext/node): env/global proxy support for node:http and node:https (#34257)
    • fix(npm): share copy-package variants via symlink for class identity (#34691)
    • fix(napi): support ZeroMQ libuv addon symbols (#34657)
    • fix(install): run workspace member dependency lifecycle scripts with member INIT_CWD (#34700)
    • fix(runtime): suggest Worker/node:vm alternatives for npm:isolated-vm (#34702)
    • fix(fmt): update markup_fmt to fix quadratic inline CSS formatting (#34663)
    • fix(node): full re-export fallback for unresolvable member re-exports (#34689)
    • fix(ext/napi): clear error for Windows addons that link against node.exe (#34696)
    • fix(compile): cover CJS-deep imports under --bundle (#34534)
    • fix(runtime): suggest N-API alternatives for legacy V8/nan addons (#34695)
    • fix(core): preserve WebAssembly streaming callback across new contexts (#34679)
    • fix(ext/node): report real error code for failed dns.lookup (#34697)
    • fix(lsp): complete npm package exports (#34675)
    • fix(ext/fetch): preserve static request body length (#34546)
    • fix(lsp): recover from TSC isolate OOM instead of crashing the language server (#34693)
    • fix(lsp): use file uris for neovim virtual definitions (#34653)
    • fix(napi): report a clear error for legacy V8/nan native addons (#34683)
    • fix(lsp): walk to enabled nested workspaces (#34654)
    • fix(lsp): include configured deps in auto-imports (#34650)
    • fix(rt): support host-FS CJS files in the standalone runtime (#34560)
    • fix(ext/fs): retry without FILE_FLAG_BACKUP_SEMANTICS on Windows when driver rejects it (#34686)
    • fix(lsp): support test steps from imported helpers (#34648)
    • chore(lsp): test cover for wasm multi-value return types (#34652)
    • perf(ext/fetch): cache lowercased header names per Headers instance (#33683)
    • fix(lsp): handle parser panics while parsing documents (#34640)
    • perf(ext/node): gate node:http async resource entry (#34608)
    • feat(compile): scope --bundle npm embed to packages actually reached (#34532)
    • chore: cover same-dir import map auto-import alias (#34645)
    • fix(node): classify required js files as commonjs by default (#34673)
    • perf(http): remove legacy hyper 0.14 from deno_http (#34557)
    • feat(ops): add enum support to FromV8 derive (#34241)
    • fix(lsp): surface module-level uncaught errors in test runs (#34641)
    • fix(lsp): avoid empty import specifier completions (#34647)
    • fix(runtime): suggest --allow-scripts for bindings native addon error (#34666)
    • refactor(lsp): use ToV8 derive for LoadResponse (#34240)
    • fix(lsp): merge duplicate completion imports (#34658)
    • refactor(cli/lint): use FromV8 derive for PluginInfo (#34239)
    • fix(node): resolve CJS requires with multi-level relative specifiers on Windows (#34655)
    • fix(lsp): handle empty jsx completion ranges (#34651)
    • fix(lsp): complete string union literals containing dots (#34664)
    • fix(ext/node): capture IPC handle eagerly to fix cluster send deadlock (#34661)
    • fix(compile): transpile TypeScript imported at runtime (#34616)
    • fix(ext/fetch): implement missing Request properties (#34607)
    • fix(lsp): honor moduleResolution: "bundler" for npm dir imports (#34643)
    • fix(npm): clean node_modules after deno remove (#34110)
    • feat(jupyter): rewrite kernel in JS, drop zeromq/runtimelib deps (#34083)
    • feat(ext/node): support DENO_SERVE_ADDRESS override in node:http servers (#34662)
    • chore: deflake run_watch_reload_once (#34660)
    • refactor(ext/web): port ImageData to Rust with CPPGC/objectwrap (#33777)
    • fix: absolute links should be processed using directory functions (#34218)
    • fix(compile): bundle workers separately under --bundle (#34531)
    • refactor(lsp): remove unwrap() in PerformanceScopeMark drop (#34410)
    • fix(compile): allow process.chdir() into the VFS (#34610)
    • perf(runtime): update notify watcher dependency (#34567)
    • fix(compile): handle CJS and native addons in --bundle (#34529)
    • feat(task): support --env-file flag (#34508)
    • feat: bump deno_task_shell to 0.33.0 (#34642)
    • fix(test): wait for inspector to disconnect before exiting (#34559)
    • perf(ext/node): optimize empty node:http response end (#34493)
    • chore: bump tar from 0.4.45 to 0.4.46 (#34545)
    • fix(crypto): correct X448 PKCS#8 handling (#34578)
    • fix: link to docs in JSON import error message (#34611)
    • fix(compile): create code cache when importing JSON or Wasm modules (#34614)
    • feat(publish): unfurl import specifiers in Wasm modules (#34549)
    • fix(ext/node): expose gc from v8 setFlagsFromString (#34604)
    • fix(lsp): discover all tests when names are duplicated (#34624)
    • fix(ext/node): prevent buffer decode detach race (#34632)
    • fix(ext/fs): surface non-UTF-8 file names from read_dir (#34623)
    • fix: send BroadcastChannel messages before close (#34628)
    • fix(ext/node): honor windowsHide in child_process spawn (#34627)
    • fix(doc): handle non-ASCII doc lint diagnostics (#34626)
    • fix(node): support module-sync export condition (#34599)
    • test: correct source of tiny.wasm reproducer in comments (#34617)
    • docs: clarify listener close with pending accept (#34612)
    • feat(unstable): add --bundle flag to deno compile (#34527)
    • fix(compile): support workers loaded from blob URLs (#34574)
    • fix(compile): respect npm registry sub-paths when flattening node_modules (#34575)
    • fix(compile): don't surface graph errors for --include files (#34568)
    • chore: test vm SourceTextModule default import (#34598)
    • chore(ext/node): strengthen scrypt regression test for 128-byte keylen (#34601)
    • fix(ext/node): cover node:module SourceMap export (#34591)
    • fix(ext/http): reject Response-like return from respondWith (#34589)
    • fix(ext/node): add node:test/reporters builtin (#34595)
    • fix(node/repl): gate preview through V8 inspector throwOnSideEffect (#34566)
    • fix(ext/node): add stripTypeScriptTypes export (#34594)
    • fix(ext/node): add module findPackageJSON export (#34597)
    • chore: mark test-process-exit-code-validation.js flaky (#34588)
    • chore: test for describe.only without only failure (#34590)
    • fix(ext/napi): polyfill libuv thread + semaphore primitives (#34571)
    • fix: load classic blob worker main script directly (#34592)
    • fix(test): don't kill the deno process on top-level Deno.exit() (#34564)
    • fix(ext/node): export syncBuiltinESMExports from node:module (#34593)
    • fix(npm): downgrade latest tag for release age (#34581)
    • perf: replace ipnetwork with ipnet (#34580)
    • fix(ext/node): support vm dynamic import callback (#34572)
    • fix(jupyter): exit kernel process after sending shutdown reply (#34554)
    • test(compile): cover more sloppy import patterns (#34569)
    • fix(lsp): preserve URL extensions in typeof import(...) hovers (#34565)
    • fix(check): resolve npm packages without types when type checking (#34551)
    • fix(install): rewrite relative imports/scopes in copied deno.json (#34562)
    • fix(cache_dir): EnsureCachedStrategy must surface cached redirects (#34563)
    • perf(ext/web): convert hot stream queues to O(1) Queue, cache _state reads (#34437)
    • chore: update release doc template (#34425)
    • feat(task): support exclusion groups in task name wildcards (#34506)
    • perf(ext/node): cache member-export-props analysis (#34471)
    • fix(config): warn instead of erroring when workspace member dir is missing (#34511)
    • fix(cli/task): run recursive workspace tasks in parallel (#34512)
    • fix(compile): embed workspace package.json files in the VFS (#34530)
    • fix(task): preserve trailing backslashes in task arguments (#34505)
    • fix(install): allow "minimumDependencyAge" object without "age" (#34523)
    • fix(bundle): use node-style CJS interop for the Deno platform (#34533)
    • fix(compile): detect svelte-adapter-deno build output (#34535)
    • fix(ext/ffi): match V8 stack-arg layout in turbocall trampoline on Apple silicon (#34561)
    • fix(ext/node): resolve global cache packages when require referrer is outside DENODIR (#34497)
    • fix(ext/napi): polyfill more libuv symbols from compat layer (#34488)
    • chore: regression test for @types/node AbortSignal/AbortController merge (#34555)
    • fix(config): make config auto-discovery skip the same errors on every platform (#34558)
    • chore: regression test for KV panic on uncaught error with listenQueue (#34553)
    • fix(cli): suppress bug-report banner on broken pipe print panics (#34552)
    • fix(jupyter): keep kernel alive across transient peer disconnects (#34550)
    • chore: upgrade tokio-socks 0.5.1 -> 0.5.3 (#34526)
    • chore: test X-TypeScript-Types is picked up via import map (#34541)
    • chore: jupyter regression test for relative imports (#34494)
    • fix(config): hook up verbatimModuleSyntax for the emit pipeline (#34495)
    • chore: regression test for unsaved Jupyter notebook panic (#34528)
    • chore: regression test for listenQueue not blocking main thread (#34537)
    • fix(runtime): better error message when Deno.consoleSize() has no tty (#34538)
    • fix(ext/node): tolerate unreadable cwd in require._nodeModulePaths (#34542)
    • chore: regression test for deno test --coverage rejection reporting (#34540)
    • perf(node): lazy-load node:stream/web cluster out of the snapshot (#34548)
    • fix(ext/io): cancel pending FileResource reads on close (#34544)
    • chore: trim unused OpenTelemetry OTLP default features (#34547)
    • perf(node): lazy stdio + fix LazyEsmModuleLoader source consumption (#34440)
    • fix(resolver): don't resolve linked packages via bare specifier (#34519)
    • chore(lsp): regression test for inlay hints on computed property names (#34518)
    • fix(ext/node): disable repl preview when a custom eval is supplied (#34498)
    • fix(ext/net): re-enable 0-RTT support in QUIC (#34520)
    • fix(cache): skip WAL journal mode on WSL-1 (#34499)
    • fix(ext/node): refuse sqlite close() while a user callback is running (#34515)
    • fix(ext/http): reject Response-like return from serve handler (#34416)
    • chore(ext/web): regression test for AbortSignal.any() controller-only GC (#34516)
    • fix(add): replace panic with error when deno.json discovery fails (#34517)
    • fix(npm): hoist direct deps over higher transitive versions (#34470)
    • fix(ext/node): fix latin1Slice being too slow (#34503)
    • fix(npm): execute native binaries from npm package bin entries (#34375)
    • fix: reject empty package name in package.json dependencies (#34514)
    • fix(test): abort with a message when a test exits with sanitizeExit disabled (#34491)
    • chore(fmt): regression test for svelte switch-case in class interpolation (#34461)
    • fix(bundle): skip decorator pass when module has no decorators (#34489)
    • fix(ext/napi): disallow JS execution during napi_new_instance (#34496)
    • fix(config): warn instead of erroring when start dir is not a workspace member (#34458)
    • fix(ext/node): drop bogus Buffer.prototype._isBuffer marker (#34502)
    • feat(ext/crypto): add ML-DSA (FIPS 204) post-quantum signatures (#34448)
    • fix(core): TLA hang on dyn import when async dep triggers lazy ESM load (#34469)
    • fix(config): surface invalid "exports" map in linked/workspace packages (#34473)
    • fix(install): vendor type-only imports during deno ci (#34459)
    • fix(jupyter): use stable PATH entry for kernel binary path (#34492)
    • perf(ext/node): optimize node:http header matching (#34484)
    • test: regression test for RequestInit clash with @types/node (#34486)
    • fix(ext/node): support cyclic imports in vm.Module.prototype.link() (#34472)
    • test(ext/webgpu): regression test for 2d-array color attachment compute pass corruption (#34485)
    • fix(jupyter): send transient: {} in execute_result so nbclient doesn't crash (#34483)
    • chore(test): verify prompt() round-trips Unicode characters (#34482)
    • refactor: remove simd-json from process IPC parsing (#34477)
    • ci: only clone needed submodules in node_compat_test workflow (#34333)
    • feat(ext/crypto): implement ML-KEM (FIPS 203) post-quantum KEM (#34447)
    • fix(doc): don't lint private-type-ref for cross-package types (#34339)
    • fix(ext/web): forward console.group label to inspector log (#34341)
    • fix(ext/node): route node:fs.statfs through FileSystem trait (#34444)
    • fix(watch): register dynamic raw imports with file watcher (#34463)
    • fix(ext/console): degrade gracefully when getKeys throws (#24980) (#34464)
    • fix(watch): restore original cwd between watcher restarts (#34465)
    • fix(runtime/ops): unwatch shared RecommendedWatcher on FsWatcher close (#34467)
    • build: disable incremental compilation for release/bench profiles (#34480)
    • perf: enable safe ICF (identical code folding) when linking (#34478)
    • test(node_compat): ignore flaky test-dns-any.js (#34474)
    • perf(ext/node): bulk-build header array and trim header OWS in place (#34443)
    • perf(web): reduce Brotli CompressionStream binary size (#34432)
    • refactor: replace lol_html in bundle HTML rewriting (#34408)
    • fix(ext/node): vm dynamic import without callback throws ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING (#34427)
    • fix(ext/node): re-export inner spec for module.exports = require(X).Y (#34363)
    • fix(lsp): surface CSS imports as .js to TypeScript (#34419)
    • ci: get npm_publish working under pnpm 11 (#34451)
    • ci: put $PNPM_HOME/bin on PATH for npm_publish global install steps (#34449)
    • ci: fix npm_publish pnpm install failing under strict-dep-builds (#34445)
    • perf(ext/node): skip node:http perf timing without observers (#34409)
    • perf(cli): drop unused deno_ast bundler feature (#34424)
    • feat(ext/crypto): add ChaCha20-Poly1305, SHAKE, cSHAKE, TurboSHAKE, SHA-3 HMAC (#34417)
    • chore: add deno_canvas readme (#34423)
  • Update to version 2.8.1:
    • 2.8.1 (#34420)
    • fix(ext/node): emit 'error' event for fs.watch open failures (#34398)
    • fix(ext/node): tolerate non-AsyncWrap handles in _getNewAsyncId (#34413)
    • chore(ext/node): regression test for empty buffer TLS write panic (#34412)
    • fix(pack): remove automatic @deno/shim-deno injection (#34411)
    • fix(ext/fetch,ext/websocket): check resolved IPs against net deny list (#34236)
    • fix(ext/node): require env permission for process.loadEnvFile (#34350)
    • fix(ext/node): prevent panic on node:sqlite aggregate method (#34385)
    • fix(task): walk ancestor node_modules/.bin in BYONM mode (#34364)
    • feat(bundle): support browser field map in package.json (#34407)
    • fix(runtime): lazy-loaded globals should shadow on inherited Set (#34405)
    • fix(bundle): read package.json sideEffects field (#34406)
    • refactor: replace cache_control with focused parsers (#34402)
    • perf(ext/node): reuse keep-alive timer in node:http server (#34302)
    • fix(core): allow host objects to round-trip through core.deserialize (#34380)
    • fix(ext/node): do not throw NotFound for fs.exists (#34244)
    • fix(ext/node): extract cert/key from pfx in tls SecureContext (#34383)
    • fix(ext/node): accept array forms of cert/key/pfx in createSecureContext (#34379)
    • fix(ext/node): enforce minimum Miller-Rabin rounds in checkPrime (#34391)
    • fix(cli): clearer error when importing .node addon via ESM (#34361)
    • fix: support npm: specifiers in --preload and --import (#34346)
    • fix(ext/node): support PKCS#12 MACs other than SHA-1 (#34342)
    • fix(inspector): emit NodeWorker.attachedToWorker for late workers (#34377)
    • fix(ext/node): reset req.reusedSocket on transparent retry (#34376)
    • fix(ext/node): TLSSocket.authorized=false when client presents no cert (#34381)
    • fix(http): wake runtime after direct serve dispatch (#34387)
    • fix(node/util): don't invoke Proxy traps in util.inspect (#34373)
    • fix(ext/node): add missing node:util APIs getSystemErrorMap, transferableAbortSignal, transferableAbortController (#34372)
    • fix: panic in deno test --parallel (#34378)
    • refactor(ext/web): build timers directly on core.createTimer (#34358)
    • fix(transpile): preserve newlines after multi-line block comments (#34357)
    • fix(core): keep lazy_loaded_esm sources across concurrent loads (#34353)
    • fix(upgrade): zstd-compress bsdiff delta patches (#34354)
    • fix(config): don't panic when --config path can't be converted to URL (#34351)
    • chore: bump openssl from 0.10.79 to 0.10.80 (#34251)
    • fix(types): restore brotli in CompressionFormat for dom/webworker libs (#34349)
    • fix(ext/node): allow omitting arguments in base64Slice (#34318)
    • fix(ext/node): drop extra positional args in promisified fs.promises.* (#34347)
    • Revert "fix(ext/node): polyfill module.enableCompileCache and companions" (#34190) (#34348)
    • test: disable flaky cluster deadlock test (#34325)
    • chore: regression for JSDoc @example with decorator syntax (#34340)
    • fix(ext/node): attach register as static on Module (#34305)
    • refactor: replace quick-junit test reporter dependency (#34315)
    • refactor: remove shell-escape from install shims (#34313)
    • fix: allow --inspect=localhost:0 to resolve hostnames (#34230)
  • Update to version 2.8.0:
    • 2.8.0 (#34295)
    • refactor: remove base32 dependency from npm cache encoding (#34293)
    • perf(ext/net): reduce Quinn TLS provider size (#34294)
    • perf(ext/node): optimize direct ServerResponse string end (#34253)
    • feat(install): default to npm for deno install -g unprefixed packages (#34290)
    • feat(cli): add --watch flag to deno check (#34224)
    • feat(types): add Math.sumPrecise and Intl.Locale.prototype.variants (#34287)
    • chore: unpin twox-hash and update it to 2.1.2 (#34277)
    • fix(ext/image): handle bitmaps in createImageBitmap correctly (#34285)
    • feat(cli): accept deno audit fix as alias for deno audit --fix (#34273)
    • perf: use panic=abort in release builds (#34280)
    • perf: consolidate HTTP Brotli compressor setup (#34282)
    • fix(core): disable include_icu_data feature (#34279)
    • chore: add back locked-tripwire (#34275)
    • feat(ext/node): make Network.* CDP events fire under plain --inspect (#34270)
    • fix(fmt): panic on tagged HTML template with multi-level indent (#34263)
    • fix(ext/node): node:test with watch-mode events (#34254)
    • chore: upgrade deno_task_shell to 0.32.0 (#34267)
    • feat: add deno ci subcommand (#34235)
    • fix(ext/node): Node-compatible TAP reporter for node:test (#34255)
    • fix(ext/node): flesh out node:trace_events polyfill (#34216)
    • chore: bump deno_task_shell to 0.31.0 (#34266)
    • fix(ext/node): implement node:wasi preview1 compat (#34245)
    • feat: disable ops and resources sanitizers by default in deno test (#33250)
    • feat: v8 14.9 (#34226)
    • fix(ext/node): satisfy agent-base node:https stack-trace check (#34264)
    • fix(ext/node): attach addAbortListener to EventEmitter, fix errorMonitor (#34262)
    • fix(ext/node): readFile of large file via fd returns scrambled content (#34258)
    • feat(ext/node): emit Network.* inspector events for node:http (#34231)
    • feat: stabilize text imports (#34238)
    • fix(ext/node): expand diagnostics_channel coverage (#34243)
    • fix(ext/node): improve worker_threads MessagePort compatibility (#34250)
    • chore: remove unused deps (#34249)
    • feat(ext/node): support KeyObject structured clone over MessagePort (#34229)
    • fix(ext/node): throw ERR_INVALID_ARG_VALUE for falsy dns.lookup hostname (#34234)
    • chore: update sys_traits to 0.1.28 and unpin (#34139)
    • feat(ext/websocket): emit Network.* inspector events for WebSocket (#34222)
    • fix(cli): make deno why work with jsr deps (#34227)
    • refactor: use ToV8 on enums instead of serde (#31991)
    • feat(ext/fetch): emit Network.* inspector events for fetch() (#34220)
    • fix(ext/node): run load hook chain on every require() of a builtin (#34223)
    • fix(lsp): don't panic on unresolved dts import hover (#34112)
    • fix(ext/node): module hook fixes for ESM nextLoad, createRequire URL, and builtin redirects (#34219)
    • perf: lazy-load more modules in the snapshot (#34061)
    • feat(ext/node): restore module.registerHooks (#34081)
    • fix(ext/node): support TLS client resume compat tests (#34095)
    • feat(ext/node): buffer Network.* bodies for inspector body-fetch commands (#34201)
    • feat(ext/node): expose inspector.isEnabled() via process.binding('inspector') (#34203)
    • feat(ext/node): implement NodeRuntime.notifyWhenWaitingForDisconnect (#34204)
    • fix(ext/node): DSA keygen with arbitrary modulusLength (#34206)
    • chore: enable test-https-connecting-to-http (#34207)
    • chore: enable test-crypto-keygn-async-rsa node compat test (#34208)
    • fix(ext/node): export UV_EOF and fix Socket._final without connect (#34211)
    • chore: ignore async-loader node compat tests (#34210)
    • test: enable test-inspector-break-e.js (#34205)
    • chore: skip tests requiring internal JSStream binding (#34199)
    • chore: ignore tests failing on aarch64 release builds (#34196)
    • fix(ext/node): avoid panic in vm.createContext loop at isolate teardown (#34195)
    • fix(ext/node): add process._debugEnd() / process._debugProcess() (#34194)
    • chore: remove test-import-require-tla-twice failing on aarch64 (#34193)
    • fix: report eval scripts as [eval] URL for inspector (#34192)
    • chore: enable 397 passing-but-unenabled tests (#34184)
    • fix(ext/node): polyfill module.enableCompileCache and companions (#34190)
    • chore: regression test for process._getActiveHandles() in 'exit' handler (#34191)
    • chore: ignore es-module/test-cjs-legacyMainResolve tests (#34186)
    • fix(ext/node): add v8.startupSnapshot API polyfill (#34189)
    • fix(ext/node): per-request executionAsyncResource() for async_hooks (#34188)
    • fix(ext/node): tls server error message, rejection capture, two compat tests (#34183)
    • fix(ext/node): improve http server parser compat (#34094)
    • fix(doc): resolve npm entrypoints without types (#34147)
    • fix(ext/node): preserve raw socket connect when wrapping TLS (#34093)
    • fix(ext/node): complete TLS peer cert chains (#34098)
    • fix(ext/crypto): normalize P-521 SPKI exports (#34087)
    • fix(node): weakly track util.aborted resources (#34142)
    • fix(task): escape backticks in forwarded args (#34151)
    • fix(ext/node): isolate TLS client reject session resumption (#34097)
    • fix(ext/node): support shouldUpgradeCallback in http server (#34092)
    • fix(ext/node): add v8.GCProfiler (#34158)
    • fix(ext/node): implement TCP/TLS socket useUserBuffer (#34164)
    • chore: mark parallel/test-shadow-realm-* as ignored (#34155)
    • fix(ext/node): expose internal/net as requireable module (#34152)
    • fix(ext/node): add v8.queryObjects() and util.queryObjects() (#34159)
    • fix(ext/node): implement Module._stat (#34157)
    • fix(ext/node): refresh async id for reused agent sockets (#34138)
    • fix(ext/node): expose internal webstreams modules (#34107)
    • fix(ext/node): expose internal/async_hooks as requireable module (#34116)
    • fix(ext/node): expose internal/tty as requireable module (#34105)
    • fix(ext/node): add test.expectFailure to node:test (#34130)
    • fix(ext/node): normalize underscored V8 flags (#34129)
    • fix(ext/node): add linkRequests/moduleRequests/instantiate to node:vm (#34131)
    • fix(ext/node): expose internal/options as requireable module (#34117)
    • fix(ext/node): expose internal/fs/promises with FileHandle (#34118)
    • fix(ext/node): add active process resources APIs (#34101)
    • fix(ext/url): align URLSearchParams with Node for node:url compat (#34119)
    • feat(ext/node): implement Network CDP domain for inspector (#32707)
    • fix(ext/node): improve node:tls test compatibility (#34067)
    • fix(ext/node): improve https agent compat (#34091)
    • fix(ext/node): report directory imports with node error code (#34076)
    • fix(ext/node): align nextTick ordering in ESM (#34085)
    • feat(ext/node): add createHistogram to node:perf_hooks (#34003)
    • fix(ext/node): emit destroy for cleared immediates (#34084)
    • fix(ext/node): emit deprecation warnings for legacy stream/_tls_wrap requires and module.parent (#34086)
    • feat(ext/node): implement node:wasi (#34089)
    • fix(ext/node): expose internal/js_stream_socket and add default read path (#34088)
    • perf(ext/web): optimize TextEncoder encodeInto result (#34055)
    • fix(ext/node): reject structuredClone for file-backed Blobs (#34075)
    • fix(ext/crypto): add SHA3 support to crypto.subtle.digest (#32342)
    • fix(ext/node): expose E and SystemError from internal/errors (#34080)
    • Revert module loader hooks stack (#34077)
    • fix: bump deno_graph to 0.108.2 for wasm multi-value return types (#34070)
    • fix(task): support recursive task completions in workspaces (#32422)
    • fix(ext/crypto): validate raw key length on X25519/X448/Ed25519 importKey (#33944)
    • fix: fix CJS re-export analysis for npm packages (#33263)
    • fix(test): include --watch= in watched paths (fixes #21704) (#32621)
    • refactor(core): pre-resolve child imports before V8 module registration (#34050)
    • fix(ext/process): respect AbortSignal in Deno.Command.output() (#34069)
    • fix(ext/node): align node stream destroy named export (#33573)
    • feat(cli): support workspaces in deno bump-version (#33689)
    • refactor(tsc): drop redundant timer globals from Deno libs (#34028)
    • fix(core): short-circuit async-resolve when it returns an already-registered module (#34058)
    • fix(ext/fetch): close response_rid when abort races op_fetch_send completion (#33928)
    • fix(ext/node): surface ERR_REQUIRE_ASYNC_MODULE/CYCLE_MODULE codes and fix TLA retry (#34060)
    • fix(ext/node): use primordials in internal_binding/symbols.ts (#33865)
    • feat(ext/node): convert node:url/util/zlib to synthetic_esm (#34041)
    • fix(ext/websocket): don't panic on H2 stream reset in poll_write (#33982)
    • feat(core): synthetic_esm extension DSL + node:worker_threads canary (#34038)
    • fix(ext/node): fire uncaughtExceptionMonitor with correct origin for sync top-level throws (#34048)
    • fix(ext/node): implement displayErrors for vm scripts (#33942)
    • fix(ext/node): don't emit ServerResponse 'finish' after client abort (#34026)
    • fix(ext/node): implement vm.SyntheticModule constructor (#34014)
    • fix(ext/node): add util.setTraceSigInt stub (#34013)
    • feat(ext/node): implement postMessageToThread cross-thread messaging (#34015)
    • fix(ext/node): Worker rejects --heap-prof and --cpu-prof execArgv flags with wrong error (#34011)
    • ci: fix ARM Linux XL runner label (#34039)
    • fix(ext/url): URLSearchParams Node-compat error messages on invalid this and missing args (#34017)
    • refactor(ext/node): merge 02_init.js into 01_require.js (#34035)
    • ci: use larger ARM Linux runner for release LTO build on main/tags (#34034)
    • fix(ext/node): implement SocketAddress class (#34020)
    • fix(ext/node): tagged template literal support for SQL (#34018)
    • fix(ext/node): detect non-mtime stat changes in StatWatcher (#33950)
    • ci: use larger Linux runner for LTO release build on main/tags (#34029)
    • fix(ext/node): close named-pipe handles after child_process.spawn on Windows (#33941)
    • perf(ext/fetch): skip dict-converter walk on default init in Request/fetch/Response.json (#33999)
    • fix(node/sqlite): implement DatabaseSync.serialize() and deserialize() (#34010)
    • fix(ext/node): apply encoding to Dirent name/parentPath in fs.readdir (#33972)
    • fix(ext/node): prevent top-level await test(...) deadlock in node:test (#33947)
    • fix(node/fs): readSync with position argument returns EINVAL (#34021)
    • fix(ext/node): skip user module.register() load hooks for node:/ext: builtins (#34006)
    • fix(ext/napi): run weak-callback finalizers synchronously in second-pass (#34023)
    • ci: pin rustup-init to 1.28.2 to work around broken 1.29.0 (#34024)
    • perf(snapshot): dedupe JS sources between binary and v8 snapshot (#33992)
    • fix(ext/node): MessagePort.on('message') should deduplicate listeners (#33991)
    • ci: bump cacheVersion to 113 (#34022)
    • fix(ext/node): expose internal/url so require('internal/url') works (#34012)
    • perf(ext/webidl): hoist EMPTY_OPTS for converter opts default (#34007)
    • fix(ext/node): retry named-pipe connect on ERROR_PIPE_BUSY (Windows) (#33974)
    • feat(npmrc): support min-release-age (#33983)
    • perf(ext/node): convert net, _tls_common, _tls_wrap to lazy-loaded JS (#33997)
    • fix(ext/node): apply Deno's resolver inside loader-hook defaultResolve (#33964)
    • ci: update to use pull_request (#33981)
    • fix(ext/node): throw OpenSSL-shaped error from tls.createSecureContext when clientCertEngine is set (#33691)
    • fix(ext/node): omit glibc version fields on musl/non-Linux (#33987)
    • perf(ext/node): convert stream* polyfills to lazy-loaded JS (#33988)
    • fix(core): evaluate pre-instantiated module in lazy_load_esm_module (#33973)
    • fix(install): regenerate lockfile with --force on global install (#33970)
    • perf(ext/node): convert child_process, fs, http, http2, https, inspector to lazy-loaded JS (#33967)
    • refactor(ext): drop generics from deno_kv and deno_cron extensions (#33966)
    • fix(install): don't treat JS scripts with non-Node shebang as native binaries (#33971)
    • fix(workspace): clamp CLI include paths to member folder (#33949)
    • perf(ext/web): linear-time set/delete on FormData, URLSearchParams, Headers (#33961)
    • fix: handle native binary bin entries in global npm install (#33935)
    • perf(ext/node): convert timers, tls, tty, url, v8, worker_threads, zlib to lazy-loaded JS (#33960)
    • fix(resolver): handle tag version req in byonm resolver (#33962)
    • perf(ext/node): convert cluster, console, constants, crypto, dgram, dns to lazy-loaded JS (#33951)
    • perf(ext/node): convert fs internals, timers, tty, url, webstreams to lazy-loaded ESM (#33939)
    • test: ignore test-domain-no-error-handler-abort-on-uncaught tests (#33937)
    • perf(ext/node): convert fs helpers, streams, dgram, dns/utils to lazy-loaded ESM (#33936)
    • feat(ext/node): implement node:module SourceMap API (#32890)
    • feat(task): prefix output lines with task name when running in parallel (#33805)
    • fix(core): prevent TLA hang when has_tick_scheduled is set during async module evaluation (#33278)
    • chore: add Claude Code skills for PR review, issue triage, node compat, and code quality (#33933)
    • perf(ext/node): convert http2, readline, stream_base_commons to lazy-loaded JS (#33932)
    • fix(ext/node): enable test-crypto.js node compat test (#33822)
    • fix(ext/node): node:repl improvements (#33930)
    • fix(ext/node): node:test improvements (#33929)
    • perf(ext/node): convert child_process, cluster, console to lazy-loaded JS (#33925)
    • fix(ext/node): add ERR_REQUIRE_ASYNC_MODULE and ERR_REQUIRE_CYCLE_MODULE error codes (#33921)
    • perf(ext/node): convert internal/crypto to lazy-loaded JS (#33919)
    • fix(ext/node): prevent panic when importing node builtins after module.register() (#33920)
    • perf(ext/node): convert node:path to lazy-loaded JS (#33917)
    • fix(ext/node): run register() hooks in worker thread, add --experimental-loader flag (#33906)
    • perf(ext/node): convert more polyfills to lazy-loaded JS (#33913)
    • fix(ext/tls): upgrade rustls to fix SSL cert validation regression (#33912)
    • fix(ext/node): drive TLSWrap cycle on JSStream writes to fix deadlock (#33914)
    • perf(ext/node): convert more polyfills to lazy-loaded JS (#33909)
    • fix(ext/node): emit diagnostics_channel events for HTTP server (#33908)
    • perf(ext/node): convert more polyfills to lazy-loaded JS (#33902)
    • fix(ext/node): implement ALPNCallback and SNICallback for TLS server (#33360)
    • perf(ext/node): convert more polyfills to lazy-loaded JS (#33900)
    • fix(node): fix registerHooks for custom file type loaders (#33899)
    • feat(test): add timeout option to Deno.test() (#33815)
    • fix(ext/node): add post-resolution deny check in TCPWrap connect (#33880)
    • perf(ext/node): convert more polyfills to lazy-loaded JS (#33897)
    • fix: disable V8 external memory check to prevent panic on large TypedArrays (#33896)
    • test: use local server for ip_address_unsafe_ssl test (#33898)
    • fix(ext/node): improve module hooks support (#33877)
    • feat(ext/web): support structured clone for Blob and File (#33827)
    • perf(ext/node): convert more polyfills to lazy-loaded JS (#33882)
    • chore: upgrade Rust toolchain to 1.95.0 (#33294)
    • fix(ext/node): restore llhttp parser.data after execute to handle re-entrant calls (#33832)
    • fix(ext/node): emit http PerformanceObserver entries for HttpClient and HttpRequest (#33826)
    • perf(http): don't add Vary header if response is not compressed (#33892)
    • fix(ext/node): register sigwinch listeners for stdout/stderr (#33890)
    • chore: disable dns timeout test on windows (#33888)
    • perf(http): split clear-text HTTP autodetect connection task (#33887)
    • chore: update aws-lc-rs/aws-lc-sys to eliminate duplicate version (#33885)
    • fix(ci): disable test-child-process-send-returns-boolean.js on windows (#33883)
    • fix(ext/node): support abstract Unix sockets in node:net pipe bind (#33872)
    • fix(ext/node): fix child_process.send() backpressure return value (#33869)
    • perf(ext/node): convert node:events and stream internals to lazy-loaded JS (#33881)
    • perf(ext/node): convert node:util, node:assert to lazy-loaded (#33876)
    • feat(ext/node): support NODE_EXTRA_CA_CERTS (#33148)
    • feat(core): support lazy_loaded_esm modules via import statements (#33873)
    • feat(compile): add progress bar for deno compile (#33874)
    • perf(ext/node): convert more polyfills to lazy-loaded JS (#33871)
    • perf(ext/node): replace node: imports with core.loadExtScript for buffer and nextTick (#33862)
    • chore(deps): bump openssl from 0.10.78 to 0.10.79 (#33868)
    • chore: fix build (#33870)
    • feat(compile): support module.register() and module.registerHooks() in compiled binaries (#33853)
    • feat: add --package-json flag to deno add/install/remove/uninstall (#33199)
    • feat: add deno pack command to create npm tarballs (#32139)
    • fix(init): replace add(2,3) template with Deno.serve HTTP server (#33042)
    • feat(ext/node): support sending dgram.Socket handles over IPC (#33863)
    • perf(runtime): convert 8 runtime JS files to lazy-loaded scripts (#33864)
    • fix(ext/node): skip ESM load hook bridge for CJS modules (#33861)
    • perf(libs/core): drop libuv-style partial-read break to fix node:http p99 (#33860)
    • fix(ext/node): handle connectionsCheckingInterval option and send 408 for request timeout (#33836)
    • feat(ext/node): implement module.register() API (#33849)
    • fix(watch): apply --watch-exclude filter to file change events (#33854)
    • fix(ext/node): support node:fs APIs on VFS files in deno compile (#33803)
    • fix(ext/process): tolerate unlinked cwd in spawn (#33587)
    • fix(npm): resolve catalog: overrides from workspaces object form (#33816)
    • perf(core): SIMD ASCII fast path for op_decode (#33720)
    • feat(npm): add hoisted node_modules linker mode (#32788)
    • feat(ext/node): ESM import() support for module.registerHooks() (#33763)
    • feat: update TypeScript to 6.0.3 (#32944)
    • perf(http): directly dispatch into js request handler (#33845)
    • perf(ext/node): convert 62 more polyfill files to lazy-loaded scripts (#33835)
    • chore: bump dprint-plugin-typescript to 0.96.0, remove deno-fmt-ignore-file (#33839)
    • fix(update): deno update --lockfile-only should not update config (#33746)
    • perf(http): avoid ReadableStream when full body already buffered (#33844)
    • fix(ext/node): implement node:cluster on unix (#33752)
    • Revert "fix(ext/node): support AES-128-ECB cipher for PKCS#8 private key encryption and decryption" (#33837)
    • fix(ext/node): pass URL to kOnHeadersComplete when request has no headers (#33831)
    • feat: include node lib by default and use NodeJS.Timeout for timers (#33823)
    • fix: include node lib by default and use NodeJS.Timeout for timers (#33823)
    • fix(ext/node): accept CryptoKey input in createPublicKey/createPrivat… (#33750)
    • perf(ext/node): convert errors.ts, util.mjs, and foundation layer to lazy-loaded scripts (#33830)
    • ci: disable flaky Node compat test (#33833)
    • fix(ext/node): support AES-128-ECB cipher for PKCS#8 private key encryption and decryption (#33809)
    • fix(ext/node): implement noDelay property on net.Server and apply TCP_NODELAY to accepted (#33828)
    • fix(ext/node): enable test-crypto-sign-verify node compat test (#33810)
    • fix(ext/node): fix module resolution for nested package.json files (#33767)
    • perf(ext/node): convert validators.mjs and dependencies to lazy-loaded scripts (#33821)
    • fix(ext/node): propagate highWaterMark option from http.createServer to req and res (#33825)
    • fix(ext/node): emit DEP0192 deprecation warning when _tls_common is required (#33819)
    • fix(ext/node): enable quic node compat tests by correcting .mjs file extensions in config (#33824)
    • fix(ext/node): expose http2 test bindings and route pushStream through pushPromise (#33741)
    • fix(ext/node): throw ERR_INVALID_ARG_VALUE for odd-length headers array in http.ServerResp (#33820)
    • fix(ext/node): implement AES Key Wrap and Key Wrap with Padding ciphers (#33813)
    • fix(ext/node): enable test-crypto-rsa-dsa node compat test with DSA encrypted keys (#33811)
    • perf(ext): convert ext/kv and ext/webgpu JS sources to lazy-loaded scripts (#33818)
    • perf(ext): convert ext/process and ext/http JS sources to lazy-loaded scripts (#33817)
    • feat(ext/node): implement vm.SourceTextModule with microtaskMode afterEvaluate support (#33603)
    • fix(ext/node): enable test-crypto-keygen-async-explicit-elliptic-curve (#33812)
    • fix(ext/node): align crypto KeyObject PKCS#8 encryption, JWK input and PSS salt with Node (#33757)
    • fix(ext/node): allow explicit paramEncoding for EC key generation (#33807)
    • fix(ext/node): share TLS session cache and ticketer for tls.TLSSocket session resumption (#33693)
    • fix(ext/node): throw correct error for encrypted PEM key in privateDecrypt (#33808)
    • perf(ext): convert ext/telemetry and ext/cron JS sources to lazy-loaded scripts (#33801)
    • fix(publish): don't panic on provenance generation in non-GitHub CI (#33802)
    • fix(ext/node): emit Protocol error when http2 client connects to non-h2 server (#33740)
    • fix(ext/node): accept ArrayBufferView in tls.setDefaultCACertificates (#33700)
    • feat: support Deno.upgradeWebSocket with node:http upgrade events (#33342)
    • perf(ext/fs): convert ext/fs JS source to lazy-loaded script (#33800)
    • perf(ext): convert ext/cache, ext/canvas, ext/crypto JS sources to lazy-loaded scripts (#33778)
    • fix(ext/node): emit perf_hooks PerformanceEntry for http2 sessions and streams (#33618)
    • fix(npm): support catalog: protocol in overrides (#33799)
    • perf: monch 0.6 (#33643)
    • fix(ext/node): decrypt legacy Proc-Type/DEK-Info encrypted PEM private keys (#33769)
    • perf(ext): convert ext/fetch JS sources to lazy-loaded scripts (#33784)
    • fix(ext/node): wire up http2 per-session maxOutstandingPings flag (#33791)
    • fix(ext/node): TLSSocket.setServername throws typed errors (#33744)
    • fix(ext/node): fix TLS peer certificate multi-value fields, issuer chain, and EC curve names (#33782)
    • fix(ext/node): use core.loadExtScript for deno_web/deno_io polyfill deps (#33798)
    • perf(ext): convert ext/ffi JS source to lazy-loaded script (#33780)
    • fix(ext/node): support undici dispatcher for allowHTTP1 websocket upgrades (#33731)
    • fix(ext/node): handle HTTP/2 flow control (#33795)
    • fix(ext/node): support CA certificate introspection and off-thread loading tests (#33708)
    • fix(ext/node): implement h2 END_STREAM packing and Http2Session PerformanceObserver entries (#33796)
    • chore(ext/node): enable parallel/test-http2-client-unescaped-path node compat test (#33789)
    • fix(ext/node): import/export PKCS#8 and legacy encrypted PEM private keys (#33762)
    • fix(ext/node): wire HTTP/2 PING ack callbacks and emit payload buffer (#33794)
    • fix(ext/node): unblock fs.open on FIFOs and read pipes correctly in http2 respondWithFile (#33792)
    • fix(ext/node): implement ECDH validation and DH verifyError (#33751)
    • fix(ext/node): enable test-http2-server-shutdown-redundant (#33793)
    • fix(ext/node): wire http2 maxSettings option to nghttp2_option_set_max_settings (#33790)
    • perf(ext): convert ext/io, ext/os, ext/net JS sources to lazy-loaded scripts (#33779)
    • fix(ext/node): wrap process.chdir errors with path/dest/syscall (#33584)
    • fix(ext/node): support encoding option in fs.watch (#33634)
    • perf(ext/fetch): fast-path string in BodyInit_DOMString converter (#33676)
    • perf(ext/web): add hyper-fast path for TextDecoder.decode (#33674)
    • fix(ext/node): emit drained server close on next tick for Node parity (#33672)
    • feat(npm): add catalog: protocol for centralized dependency versions in workspaces (#32947)
    • feat(add/install): default to npm registry for unprefixed packages (#33246)
    • perf(ext/geometry): avoid heap allocation for the argument that requires a fixed length of sequence (#33688)
    • perf(ext/web): convert all ext/web JS sources to lazy-loaded scripts (#33760)
    • feat(core): add async module resolution support via ModuleResolveResponse (#32432)
    • fix(ext/node): align scrypt behavior and performance with Node (#33773)
    • test: enable parallel/test-http2-respond-errors.js (#33738)
    • fix(ext/node): set OSSL error codes and key-type checks in stateless diffieHellman (#33772)
    • fix(ext/node): throw ERR_CRYPTO_HASH_FINALIZED on subsequent Hash.digest() calls (#33774)
    • ci: run Node compat tests everyday (#33771)
    • fix(ext/node): implement missing node:test APIs (#33764)
    • fix(ext/node): support PKCS#8 encrypted private key PEM export via PBES2 (#33758)
    • fix(ext/node): decrypt encrypted private keys in publicEncrypt/privateDecrypt and ignore passphrase (#33770)
    • fix(ext/node): support encrypted PKCS#8 DER private key export and import (#33756)
    • fix(console): don't trigger proxy get trap for nodejs.util.inspect.custom (#33730)
    • fix(ext/node): pad DH shared secret and fix prime sign byte for stateless diffieHellman (#33761)
    • feat: OffscreenCanvas (#29357)
    • fix(ext/node): use proper error codes for tls.TLSSocket.setServername() (#33745)
    • feat(ext/telemetry): add gRPC protocol support for OTLP exporter (#30365)
    • feat(ext/node): implement module.registerHooks() API for CommonJS (#33733)
    • fix(ext/node): implement mock.getter, mock.setter, mockImplementation in node:test (#33755)
    • fix(ext/node): handle unhandled rejections in node:test without crashing runner (#33749)
    • fix(ext/node): support sending net.Socket and net.Server handles to child processes on unix (#33605)
    • feat(core): add Deno.core.loadExtScript() for lazy-loaded scripts (#33739)
    • fix(ext/node): fix TLS crash with Happy Eyeballs address fallback (#33641)
    • fix(ext/node): expose Http2Session and nghttp2ErrorString on http2 internalBinding (#33732)
    • fix(node/tls): handle detached ArrayBuffer in TLSWrap write methods (#33737)
    • fix(ext/node): validate fs.watch options.ignore (#33574)
    • perf(ext/node): true writev on tcp sockets for node:http (#33659)
    • fix(ext/node): route ServerHttp2Stream.respond through binding proto (#33736)
    • fix(ext/node): expose Http2Session and nghttp2ErrorString on http2 internalBinding (#33742)
    • feat: framework detection for deno compile (#33164)
    • fix(repl): drain microtasks after inspector polling to avoid 'Promise was collected' (#33735)
    • feat(x): add --package/-p flag for specifying package separately from binary (#32855)
    • feat: add deno transpile subcommand (#32691)
    • fix(ext/web): respect cancelable and passive flags in Event.returnValue setter (#33651)
    • fix(ext/web): convert MessageEvent ports via WebIDL sequence iteration (#33652)
    • fix(ext/node): validate data type in Cipheriv/Decipheriv update() (#33649)
    • fix(ext/node): add emitExperimentalWarning/pendingDeprecate to internal/util, support modifyPrototype option in util.deprecate (#33660)
    • fix(ext/node): expose internal/util/debuglog and add formatTime helper (#33665)
    • fix(ext/node): make hideStackFrames actually hide frames, expose internal/validators (#33673)
    • chore: ignore test-https-client-get-url (#33699)
    • perf(ext/web): lazy-init EventTarget listeners table (#33734)
    • fix(ext/node): expose Http2Stream and nghttp2ErrorString on http2 internalBinding (#33729)
    • perf(ext/webidl): fast path for createDictionaryConverter undefined input (#33692)
    • chore: disable http2 info headers errors case
    • perf(ext/web): structuredClone primitive fast path (#33728)
    • feat(cli): add deno why subcommand (#32908)
    • fix(ext/node): add tls.getCaCertificates() (#32032)
    • chore: skip test-http2-util-update-options-buffer (internal state buffers) (#33717)
    • fix(ext/node): defer http2 stream window replenishment while paused (#33640)
    • fix(ext/node): use queueMicrotask in fs.close to avoid sanitizer false-positive (#33714)
    • feat: implement deno audit --fix (#32909)
    • fix(ext/node): allow tls.Server SecureContext without cert/key for SNICallback (#33715)
    • fix(ext/node): bind setImmediate callback this to the Immediate instance (#33716)
    • fix(ext/node): map rustls record-decode errors to OpenSSL-style "wrong version number" (#33711)
    • fix(ext/node): expose TLS server name (SNI) on server-side TLSSocket via getServername op (#33725)
    • fix(node:http2): preserve timeout inspect links on proxied session sockets (#33721)
    • fix(ext/node): expose http2 internalBinding and add missing HTTP2_HEADER_* constants (#33726)
    • test: enable parallel/test-dns-lookup-promises-options-deprecated.js (#33710)
    • test: enable 3 already-passing Node compat tests (#33687)
    • perf(core): cap V8 platform thread pool to 4 threads (#33697)
    • perf(ext/websocket): lazy-load WebSocket and WebSocketStream JS (#33701)
    • test: enable 2 already-passing Node compat tests (#33706)
    • feat(install): add --os and --arch flags for cross-platform npm installs (#32785)
    • fix(ext/node): port internal/priority_queue and expose it via require (#33696)
    • fix(ext/node): dns resolveAny with real ANY query, retry/maxTimeout support (#33577)
    • fix(ext/node): enforce OpenSSL SECLEVEL key-strength check in createSecureContext (#33686)
    • fix(ext/node): cancel pending TLS writes when the socket closes (#33690)
    • feat(install): added --prod to skip dev deps and @types (#33248)
    • test: ignore parallel/test-fixed-queue.js (#33682)
    • perf(ext/web): fast path for TextEncoder.encodeInto (#33675)
    • fix(ext/node): preserve AsyncLocalStorage context across HTTP/2 client streams (#33677)
    • fix(ext/node): support signal option in fs.watch/fs.promises.watch (#33650)
    • test: enable 7 already-passing Node compat tests (#33669)
    • feat(cli): add deno bump-version subcommand (#30562)
    • fix(ext/node): align inspector WebSocket URL with Node.js format (ws://host:port/UUID) (#33592)
    • feat: use Node.js timers by default and remove global proxy (#33249)
    • feat: disable "no-process-global", "no-node-globals" lint rules by default (#33247)
    • fix(ext/node): emit ERR_HTTP2_MAX_PENDING_SETTINGS_ACK via session error instead of throwing (#33679)
    • fix(ext/node): apply http1Options to HTTP/2 secure server fallback (#33678)
    • feat(unstable): support TC39 import defer proposal (#32360)
    • fix(ext/node): add limits property on node:sqlite DatabaseSync (#33106)
    • fix(ext/node): expose http2 session setNextStreamID with capital-ID method name (#33666)
    • fix(ext/fs): run open_async on the blocking pool so FIFO opens don't stall the runtime (#33667)
    • fix(ext/node): add http2.performServerHandshake to polyfill (#33668)
    • fix(ext/node): emit DEP0111/DEP0119 from process.binding under --pending-deprecation (#33594)
    • fix(ext/node): bind to IPv6 wildcard for default Server.listen() to enable dual-stack (#33617)
    • fix(ext/node): forward http2 protocol errors from invalid frame callback to session error event (#33630)
    • fix(ext/node): send http2 GOAWAY before stream RSTs so peer sees session destroy code (#33637)
    • fix(ext/node): emit ERR_HTTP2_TOO_MANY_INVALID_FRAMES for empty DATA frames without END_STREAM (#33644)
    • fix(ext/node): use ASCII byte-truncation in http2 writeAsciiString polyfill (#33645)
    • feat(unstable): Geometry Interfaces Module Level 1 (#27527)
  • Update to version 2.7.14:
    • 2.7.14 (#33639)
    • feat(upgrade): delta updates via bsdiff patches (#33274)
    • fix(ext/node): treat unsolicited HTTP/2 PING ACK as connection-level protocol error (#33625)
    • chore: ignore parallel/test-http2-debug.js (#33628)
    • fix(ext/node): implement dns Resolver cancel() and timeout support (#33580)
    • fix(ext/web): retain source from MessageEventInit (#33500)
    • test: enable 9 already-passing Node compat tests (#33582)
    • fix(ext/node): submit http2 RST_STREAM before flushing END_STREAM DATA frame on respondWithFD read (#33633)
    • fix(ext/node): emit http2 frameError on send failure with translated HTTP/2 error code (#33631)
    • fix(ext/node): make http2 session.origin() round-trip origins and respect TLS servername (#33629)
    • fix(ext/node): use proper error codes for require() invalid arguments (#33609)
    • fix(ext/node): validate ciphers option in tls.createSecureContext() (#33597)
    • fix(ext/node): fix TLS client certificate authentication verification (#33576)
    • fix(ext/node): align node:test it/describe with Node, enable passing compat tests (#33593)
    • fix(ext/node): validate fs.watch boolean options (#33627)
    • fix(ext/node): brand-check SecureContext._external accessor (#33569)
    • fix(ext/node): support ignore option in fs.watch and fs.promises.watch (#33610)
    • fix(ext/node): allow https.Agent() without new, enable passing compat tests (#33601)
    • fix(ext/node): correct buffer-length check in Readable._fromList decoder branch (#33624)
    • fix(config): don't exclude workspace members from deploy file patterns (#33562)
    • fix(ext/net): default Deno.listenDatagram hostname to 0.0.0.0 (#33496)
    • fix(ext/node): close fd on error in http2 stream respondWithFile (#33614)
    • fix(ext/node): expose http2 sensitive headers received with NV_FLAG_NO_INDEX flag (#33626)
    • fix(ext/node): defer drain in http2 shutdownWritable so pushStream after end() works (#33619)
    • fix(ext/node): forward enableConnectProtocol setting to peer in HTTP/2 SETTINGS frame (#33616)
    • fix(ext/node): honor weight option in http2 client.request and emit DEP0194 (#33622)
    • chore: enable parallel/test-http2-generic-streams-sendfile (#33620)
    • chore: enable parallel/test-http2-write-finishes-after-stream-destroy (#33621)
    • chore: enable parallel/test-http2-server-close-idle-connection.js (#33615)
    • chore: enable parallel/test-http2-client-proxy-over-http2 (#33613)
    • fix(ext/node): plumb llhttp error code, reason, and bytes parsed through HTTPParser (#33591)
    • fix(ext/node): add _idleStart and _idleTimeout to Timeout (#33604)
    • fix(ext/node): rename _destroySsl to _destroySSL to match Node.js API (#33599)
    • chore: disable flaky node compat test (test-child-process-stdio-reuse-readable-stdio.js) (#33602)
    • Revert "fix(ext/node): make IPC writes synchronous to match Node.js behavior (#33522)" (#33598)
    • ci: shard node_compat tests into 3 parallel jobs (#33600)
    • fix(ext/node): fix closeIdleConnections destroying active connections (#33596)
    • test: ignore test-trace-events-bootstrap.js (#33590)
    • fix(ext/node): improve perf_hooks timerify and add missing exports (#33581)
    • fix(ext/node): throw ERR_INVALID_ARG_VALUE when rmdir gets options.recursive (#33565)
    • fix(ext/node): use ERR_INVALID_ARG_TYPE for tls.createServer non-object options (#33589)
    • fix(ext/node): fix TLS socket error ordering and app data leak before identity verification (#33585)
    • fix(ext/node): implement dns.reverse() and fix dns.lookup() family parameter (#33579)
    • fix(ext/node): implement node:cluster fork/Worker and worker-side detection (#33493)
    • fix(ext/node): handle undefined http2 ping payload and cancel pending pings on destroy (#33561)
    • fix(ext/node): cancelling Readable.toWeb(req) no longer destroys the socket (#33570)
    • fix(ext/node): strip trailing dot from SRV target in dns.resolveSrv() (#33578)
    • fix(ext/node): track http2 custom settings and SETTINGS ACK callbacks (#33518)
    • fix(ext/node): http2 createConnection support and per-frame socket writes (#33520)
    • fix(task): use explicit workspace root check in directory-name fallback (#33540)
    • fix(ext/webidl): set ERR_ILLEGAL_CONSTRUCTOR code on illegal constructor calls (#33535)
    • test: enable 7 already-passing Node compat tests (#33568)
    • fix(ext/node): make IPC writes synchronous to match Node.js behavior (#33522)
    • chore: enable parallel/test-worker-http2-generic-streams-terminate (#33563)
    • fix(ext/node): flush GOAWAY before destroying http2 socket and expose internal/http2/core (#33566)
    • fix(ext/node): validate options.type in Readable.toWeb (#33560)
    • chore(tests): enable 158 passing node compat tests (part 2/3) (#33411)
    • fix(ext/node): fix spawnSync internal API for monkey-patching and killSignal (#33545)
    • fix(ext/node): yield to I/O in http2 write path so stream pipeline finishes (#33541)
    • fix(ext/node): align util.styleText with Node (#33547)
    • fix(ext/node): null-proto child_process options to block prototype pollution (#33555)
    • fix(ext/node): use AbortSignal.addEventListener in addAbortListener (#33557)
    • fix(ext/node): wire up captureRejection handler for http2 servers (#33542)
    • fix(ext/node): align node:module behavior with Node (#33482)
    • fix(ext/node): wire JSStreamSocket handle write/shutdown for http2 (#33526)
    • fix(ext/node): encode http2 headers as Latin-1 to fix response splitting (#33531)
    • fix(ext/node): pass stream fd to child process stdio instead of inheriting (#33525)
    • fix(ext/node): fix TLS socket lifecycle and readStop backpressure (#33524)
    • fix(ext/node): implement fs.mkdtempDisposableSync / fsPromises.mkdtempDisposable (#33533)
    • fix(ext/node): prevent duplicate close emit when http2 client socket i (#33538)
    • test: ignore test-child-process-spawnsync-shell compat test (#33532)
    • fix(ext/node): pass reusePort flags in Server.listen() without host (#33530)
    • feat(ext/node): add fs.Utf8Stream
    • fix(ext/node): enforce HTTP/2 server header list size limits (#33494)
    • fix(ext/node): enforce http2 maxSessionInvalidFrames limit (#33515)
    • fix(ext/node): support v1 X.509 certs and http2 ALPN fallback (#33510)
    • fix(ext/node): support ALPNCallback in http2.createSecureServer (#33521)
    • fix(ext/node): timer _destroyed flag, Symbol.dispose, and setInterval abort (#33528)
    • perf: optimize worker and MessagePort message passing (#32657)
    • test(node_compat): enroll parallel/test-crypto-hash-stream-pipe.js (#33519)
    • fix(task): match workspace directory name in --filter (#33499)
    • fix(ext/node): isolate parentPort from globalThis in worker_threads (#32596)
    • fix(coverage): exclude transformer-injected helpers from coverage (#33481)
    • fix: match single-char wildcard segments in npm package imports (#33513)
    • fix(ext/node): use node:timers for http server connection checks, expo (#33483)
    • 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): accept X.509v1 server certs in tls.createServer (#33505)
    • fix(ext/node): emit stream-level PROTOCOL_ERROR in node:http2
    • fix(ext/bundle): clearer error when Deno.bundle is called in compiled binary (#33503)
    • fix(ext/node): emit Buffer for http2 'goaway' opaqueData (#33502)
    • fix(ext/node): support encoding option in fs.readdir; don't double-call glob callback (#33501)
    • fix(ext/fetch): don't mutate caller's options in Deno.createHttpClient (#33497)
    • fix(bundle): treat CSS same-document fragment URLs as external (#33492)
    • fix(ext/node): fix EEXIST error and data loss in writeFileSync on Windows (#33413)
    • fix(ext/node): support util.promisify on http2.connect (#33489)
    • fix(ext/node): honor http2 strictFieldWhitespaceValidation option (#33506)
    • test: enable parallel/test-http2-too-many-streams.js (#33507)
    • fix(ext/node): rebind http2 state buffers post-snapshot, enforce maxHeaderListPairs (#33495)
    • chore: clean up WPT runner output (#33487)
    • fix(ext/fs): normalize Deno.watchFs paths so events drop ./ segments (#33490)
    • fix(ext/node): improve Node.js timer compatibility (#33479)
    • fix(ext/web): narrow ReadableStreamBYOBRequest.view to Uint8Array (#33477)
    • fix(ext/node): emit HPE_INVALID_TRANSFER_ENCODING for CL+chunked respo (#33488)
    • fix(ext/web): allow transferring non-serializable types in structuredClone (#33491)
    • chore(tests): enable 157 passing node compat tests (part 3/3) (#33412)
    • fix(ext/node): return relative path from fs.watch with recursive option (#33428)
    • chore(wpt): update cache-storage-keys expectation after #33275 (#33484)
    • fix(ext/web): structuredClone of non-serializable Web types throws DataCloneError (#33465)
    • fix(ext/node): emit DEP0182 deprecation for short AES-GCM auth tag (#33469)
    • fix(ext/webidl): set ERR_INVALID_THIS code on brand-check TypeError (#33467)
    • chore(tests): enable 158 passing node compat tests (part 1/3) (#33410)
    • fix(ext/web): handle late write racing with TransformStream cancel (#33478)
    • fix(ext/web): set ERR_MISSING_ARGS code on URL.revokeObjectURL no-arg (#33471)
    • fix(x): forward --unstable-* flags to JSR and URL targets (#33450)
    • fix(ext/node): validate boolean arg in process.setSourceMapsEnabled (#33473)
    • fix(ext/node): align crypto random* validation with Node (#33456)
    • fix(permissions): normalize paths for macOS filesystem comparison (#33451)
    • fix(ext/node): emit TimeoutNaNWarning for invalid timer durations (#33472)
    • fix(ext/node): make Buffer.prototype methods generic-callable (#33466)
    • fix(ext/node): emit DEP0031 deprecation warning for ecdh.setPublicKey( (#33468)
    • fix(ext/crypto): throw TypeMismatchError for non-TypedArray in getRand (#33470)
    • fix(cache): add missing CacheStorage.keys() and Cache.keys() methods (#33275)
    • fix(ext/node): walk sandbox prototype chain in vm property_query (#33463)
    • fix(doc): remove background from operators in dark mode code blocks (#33267)
    • fix(ext/node): enable test-als-defaultvalue-original (AsyncLocalStorage default value) (#33464)
    • fix: bound fs.readFile on non-terminating sources (#33262)
    • fix(ext/node): use ERR_INVALID_ARG_VALUE in module.createRequire (#33449)
    • fix: drop config-only unstable features from unstable_args() (#33452)
    • test: enable 20 already-passing Node compat tests (#33461)
    • test: ignore parallel/test-webcrypto-webidl.js (#33454)
    • fix(ext/web): align AbortSignal.timeout error message with Node (#33460)
    • test: ignore 3 unsupportable crypto tests (#33455)
    • fix(ext/node): add Server BlockList, asyncDispose, and misc net improvements (#33417)
    • fix(ext/node): pass signal name to process signal handlers (#33425)
    • test: ignore 2 unsupportable crypto tests (#33457)
    • fix(ext/node): honor requestCert/ca on node:tls server, populate getPeerCertificate() (#33439)
    • fix(ext/node): implement StatWatcher.ref() / unref() (#33408)
    • fix(ext/node): use Node's address-type check in dgram Socket.send (#33420)
    • test: ignore parallel/test-crypto-fips.js (#33453)
    • fix(ext/node): validate process.chdir argument is a string (#33401)
    • fix(ext/node): replace unwrap with error propagation in parallel cp (#33396)
    • fix(ext/node): emit tlsClientError instead of crashing on TLS init failure (#33429)
    • fix(ext/node): align fs.truncate / ftruncate argument validation with Node (#33418)
    • fix(ext/node): throw ERR_INVALID_URL from http/https request string URL (#33427)
    • fix(ext/node): cache hash digest so it survives stream.pipeline (#33440)
    • fix(ext/node): implement BlockList.rules / isBlockList / toJSON / fromJSON (#33445)
    • fix(ext/node): validate dgram options.recvBufferSize / sendBufferSize (#33444)
    • fix(ext/node): emit StatWatcher 'stop' event asynchronously (#33448)
    • fix(ext/node): attach path/syscall to fs.lstat / realpath / link errors (#33446)
    • fix(ext/web): route console.dirxml through the log printer (#33443)
    • fix(ext/fetch): use byte ReadableStream for Node Readable request bodies (#33432)
    • fix(ext/node): make process.constructor a proper instanceof check (#33447)
    • fix(ext/node): include accepted values in Console colorMode error (#33424)
    • fix(ext/node): fix ERR_INVALID_CHAR message & OutgoingMessage.prototype.write (#33430)
    • docs: clarify --watch-hmr does not restart on file changes (#33381)
    • fix(ext/node): import kIncomingMessage/kServerResponse in http2 allowHTTP1 fallback (#33435)
    • chore: bump tokio-eld to 0.3 to fix UAF causing deno test SIGSEGV (#33375)
    • fix(ext/node): implement Socket.resetAndDestroy with TCP RST in node:net (#33415)
    • fix(ext/node): async fs.stat/lstat throwIfNoEntry + deprecate fs.Stats (#33436)
    • perf: upgrade rusty_v8 to 147.4.0 (#33422)
    • perf(ext/node): pool 64KB read buffers to reduce allocation pressure (#33395)
    • fix(node/compat): fix shard report merging and fetching in CI reporting (#33431)
    • fix(ext/node): support BlockList, AbortSignal, and constructor options in node:net Socket (#33414)
    • 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(ext/node): accept string mode in fs.mkdir and fs.mkdirSync (#33409)
    • fix(ext/node): validate oaepHash in publicEncrypt/privateDecrypt (#33388)
    • fix(ext/node): implement process.debugPort with ToInt32 coercion (#33403)
    • ci: shard node_compat tests into 3 parallel jobs (#33298)
    • fix(node/buffer): fix panic in transcode with odd-length UTF-16LE input (#33390)
    • fix(ext/node): drain pending TLS cleartext in enc_write_cb (#33378)
    • fix(ext/node): reject non-ArrayBufferView data in fs.writeFileSync (#33406)
    • fix(ext/node): attach input URL to ERR_INVALID_FILE_URL_PATH (#33398)
    • fix(ext/node): name custom-promisified functions after their originals (#33407)
    • fix(ext/node): throw TypeError for Symbol keys/values in process.env (#33399)
    • fix(ext/node): hide aggregateTwoErrors frame in AggregateError stack (#33402)
    • fix(ext/node): align module.builtinModules / getBuiltinModule with Node (#33404)
    • fix(ext/node): flush HTTP/2 client preface after settings submission (#33387)
    • fix(ext/node): encode more chars in url.pathToFileURL() (#33397)
    • chore(deps): bump openssl from 0.10.72 to 0.10.78 (#33376)
    • fix(ext/node): re-arm Windows named pipe server after accept (#33369)
    • fix(ext/node): fix fs.glob skipping siblings with */../ patterns (#33372)
    • Revert "fix(ext/napi): implement real V8 handle scopes and callback scopes" (#33363)
    • fix(ext/napi): implement napi_async_init and napi_async_destroy (#33282)
  • Update to version 2.7.13:
    • 2.7.13 (#33359)
    • perf(ext/node): elide async_hooks emit in timers when no hooks registered (#33355)
    • fix(ext/node): enable HTTP parser consume fast path (#33354)
    • perf(ext/node): flush-free header fast path in HTTP parser (#33351)
    • fix(ext/node): free uv_write and uv_shutdown requests in every exit path (#33350)
    • perf(libs/core): poll only ready handles and yield between I/O batches (#33349)
    • perf(ext/node): reduce writev op allocations and write copies (#33352)
    • fix(ext/node): http client compat improvements (#33337)
    • fix(ext/node): support FD-indexed stdio inheritance in spawnSync (#33341)
    • refactor: replace ext/web timer imports with core timers or node:timers (#33121)
    • perf: reduce memory usage of Command.output() (#33335)
    • fix(ext/napi): defer GC weak-callback finalizers to the event loop (#33260)
    • fix(ext/http): treat empty Host header as missing in request URL (#33234)
    • fix(ext/node): http2 improvements — constants, error codes, settings, validation (#33332)
    • fix(ext/node): improve node:tls compat (validation, pipes, JS streams) (#33331)
    • fix: update v8 crate to 147.2.1 (#33318)
    • fix(ext/node): fix multiple http2 bugs (#33315)
    • fix(ext/napi): implement zero-copy external Latin-1 strings (#33283)
    • fix(ext/node): support RSA-PSS keys in crypto.verify with null algorithm (#33314)
    • fix(ext/node): defer JS stream encOut to avoid reentrant CppGC borrow (#33304)
    • fix(ext/node): ChildProcess.kill() returns false when process already exited (#33305)
    • test(npm): add regression test for update breaking peer dep lockfile entries (#33309)
    • fix(ext/napi): implement real V8 handle scopes and callback scopes (#33281)
    • fix(ext/node): auto-start server-side STARTTLS handshake, add TLS upgrade tests (#33303)
    • fix(runtime): warn on unsupported web Worker options and fix recv panic (#33310)
    • fix(ext/node): enforce maxHeaderSize in HTTP parser (#33306)
    • fix(ext/node): address node:http rewrite review comments (#33299)
    • fix(ext/node): flush HTTP/2 HEADERS frame after client request (#33300)
    • refactor(ext/node): remove JS LibuvStreamWrap class (#33297)
    • refactor(ext/node): use native LibUvStreamWrap based Wrap's to reduce code duplication (#33301)
    • fix(ext/node): fix playwright on windows (#33295)
    • fix(audit): migrate to bulk advisory endpoint (#33292)
    • fix(console): find nodejs.util.inspect.custom on Proxy objects via get trap (#33265)
    • feat(ext/node): rewrite node:http with llhttp and native TCPWrap (#33208)
    • fix(ext/node): fix Module._resolveLookupPaths and require.resolve compat (#33261)
    • fix(test): fix specific_canary upgrade test on Windows (#33286)
    • test: fetch latest canary hash dynamically in specific_canary test (#33279)
    • fix: add note for canary's 30-day retention period (#33271)
    • ci: fix false positives in no-deno-api lint plugin (#33270)
    • fix(doc): Add Prism support for JSX/TSX code blocks (#33255)
    • feat(upgrade): support installing from a PR (#33252)
    • fix: restore glibc < 2.27 compatibility for Linux release builds (#33259)
    • fix(ext/node): fix EEXIST error and file corruption with writeFileSync on Windows (#33253)
    • chore: upgrade rusty_v8 to 147.1.0 (#33235)
    • feat(ext/node): implement node:repl module (#32799)
  • Update to version 2.7.12:
    • 2.7.12 (#33227)
    • fix(permissions): normalize IPv4-mapped IPv6 addresses in net permission checks (#33223)
    • fix(core): fix uv_pipe_open handle lifecycle to match libuv (#33225)
    • test(permissions): add proptest property-based tests (#33224)
    • feat(ext/node): add fs.SyncWriteStream (#33226)
    • refactor: remove _readWithCancelHandle from Stdin (#33222)
    • fix(core): handle WouldBlock in op_print for non-blocking stdio (#33221)
    • test: prevent task/signals spec test from hanging in CI (#33020)
    • fix(permissions): check deny rules against resolved IPs to prevent numeric hostname bypass (#33203)
    • fix(io): remove global stdio statics, handle non-blocking stdin (#33219)
    • perf(ext/node): use aws-lc-sys EVP API for chacha20-poly1305 (#33110)
    • fix(ext/napi): use per-isolate Private key for napi_wrap/napi_unwrap (#33204)
    • Revert "feat: disable ops and resources sanitizers by default in deno test (#33158) (#33215)
    • feat(ext/node): add llhttp-based HTTPParser with native cppgc binding (#33202)
    • fix(runtime): cache canonicalized watch paths, fix spurious events (#33123)
    • Revert "feat(install): added --prod to skip dev deps and @types (#32863) (#33212)
    • Revert "feat: use Node.js timers by default (#33118)" (#33211)
    • test(permissions): add missing unit tests for permission system (#33207)
    • Revert "feat: disable "no-process-global", "no-node-globals" lint rules by default (#33147) (#33213)
    • Revert "feat(add/install): default to npm registry for unprefixed packages (#33156) (#33214)
    • fix(core): free UvLoopInner on uv_loop_t drop to prevent worker memory leak (#33200)
    • fix(ext/node): throw on cipher update with input >= 2^31-1 bytes (#33201)
    • fix(node): validate resolved main path stays within package directory (#33170)
    • refactor(ext/node): wire up native TLSWrap from JS (#33184)
    • fix(ext/webgpu): accept ArrayBuffer in GPUQueue.writeBuffer() as data source (#33152)
    • fix(core): use c_char instead of i8 in uv_buf_t base cast (#33179)
    • fix(ext/node): add dns.getDefaultResultOrder() API (#33197)
    • fix(otel): add timeout to OTEL HTTP exporter to prevent hangs (#33159)
    • fix(schema): fix the publish: false of deno.json schema (#33196)
    • feat: native uv_pipe_t implementation with NativePipe and FdTable (#33165)
    • fix(repl): surface CDP protocol errors and fix race in wait_for_response (#33190)
    • feat(ext/node): add native TLSWrap cppgc object (Rust core) (#33183)
    • refactor(ext/node): prep for native TLSWrap (#33182)
    • refactor(ext/process): bypass resource table for Node child_process stdio (#33176)
    • fix(ext/node): implement uv_ref for native TCP handles (#33174)
    • fix(ext/node): remove dead legacy TCP server accept path (#33172)
    • refactor: move FdTable to ext/io (#33169)
    • Revert "feat(unstable): add deno tsconfig subcommand (#33160)" (#33162)
    • feat(unstable): add deno tsconfig subcommand (#33160)
    • fix(ext/node): implement timeout, killSignal, and pid for child_process spawnSync (#32810)
    • feat: disable ops and resources sanitizers by default in deno test (#33158)
    • fix(ext/node): implement TCP.open(fd) (#33155)
    • feat(add/install): default to npm registry for unprefixed packages (#33156)
    • feat: disable "no-process-global", "no-node-globals" lint rules by default (#33147)
    • fix(ext/node): create net.Socket from file descriptors (#33150)
    • fix(ext/node): support numeric FDs in child_process stdio array (#33140)
    • fix(ext/node): rewrite Pipe.open(fd) to use raw fd ops (#33136)
    • fix: linked packages with peer deps failing to cache from lockfile (#33143)
    • refactor: remove forked typescript-go infrastructure (#33133)
    • feat(install): added --prod to skip dev deps and @types (#32863)
    • fix: update release template workflow URLs to .generated.yml (#33116)
    • refactor(ext/node): rework stream wrap infrastructure for reentrant safety (#33100)
    • fix(ext/node): return real OS file descriptors from node:fs APIs (#33039)
    • refactor: remove Node/Deno global proxy and simplify CJS wrapper (#33122)
    • feat: use Node.js timers by default (#33118)
    • refactor: remove LSP integration from repl and jupyter (#33119)
  • Update to version 2.7.11:
    • 2.7.11 (#33114)
    • ci: fix start_release workflow (#33113)
    • ci: remove stale gha-creds cleanup after gcloud removal (#33112)
    • fix(ext/node): fire fs.watch events for immediate writes (#32935) (#32989)
    • ci: update to gagen 0.3 for maintainable pinning of all workflow dependencies (#33082)
    • feat: add alpha and beta release channel support (#33098)
    • fix(watch): reduce graceful shutdown timeout from 5s to 500ms (#33099)
    • ci: remove legacy gcloud upload (#33088)
  • Update to version 2.7.10:
    • 2.7.10 (#33092)
    • fix(ext/node): add chacha20-poly1305 cipher support (#33084)
    • fix(ext/node): improve sign/verify crypto compat with Node.js (#33083)
    • fix(ext/node): return pid from spawnSync (#33081)
    • fix(ext/node): improve GCM cipher compat with Node.js (#33079)
    • feat: add include and exclude fields to compile config (#33024)
    • fix(ext/node): drain pending messages before emitting worker exit event (#32623)
    • fix(ext/node): fix BadResource error in FileHandle.readLines() (#32685)
    • fix: use case-insensitive path matching for permissions on Windows (#33073)
    • fix(resolver): resolve npm packages that shadow Node built-in names in BYONM mode (#32865)
    • fix(outdated): use dist-tags.latest for Latest column, matching npm/pnpm/bun (#32939)
    • fix(npm): resolve linked packages not published to npm registry (#33021)
    • fix(ext/web): fix infinite loop in WebTransport datagram overflow handling (#33075)
    • docs: clarify mkdir does not throw with recursive: true (#33019)
    • fix(serde_v8): use actual bytes written in to_utf8_slow (#33074)
    • fix(ext/node): escape shell metacharacters in child_process args on Windows (#33071)
    • fix(lsp): don't double-encode query/fragment in notebook cell URIs (#33070)
    • fix(install): all package.json aliases should be added to node_modules (#33068)
    • fix(ext/http): gracefully handle consumed external in OTel ops (#33027)
    • chore: Use *mut _ and *const _ for type inference (#33053)
    • fix(lsp): suggest import map aliases in auto-imports for local directories (#33048)
    • chore(ext/node): remove unused op_node_is_tty (#33045)
    • chore: upgrade sys_traits 0.1.27 (#33040)
    • fix(ext/node): process.argv[0] is equivalent to execPath (#28915)
  • Update to version 2.7.9:
    • 2.7.9 (#33022)
    • Revert "fix(ext/node): support numeric FDs in child_process stdio array (#32959)" (#33017)
    • refactor(core): libuv compatibility improvements for uv_compat (#33015)
    • fix(compile): strip duplicate exe path from argv when standalone binary relaunches (#33016)
    • fix(publish): vite import.meta.hot not type checking (#32127)
    • fix(ext/node): rewrite Windows TTY reading to match libuv (console mode, encoding, raw + line mode) (#32999)
    • fix(ext/node): add Symbol.dispose and Symbol.asyncDispose to fs.Dir (#33000)
    • fix(ext/http): use clone_external in op_http_metric_handle_otel_error (#33005)
    • fix(ext/node): use constant-time comparison for secret key equality (#32994)
    • fix(compile): use execPath for process.argv[1] in standalone binaries (#32990)
    • fix(ext/node): util.stripVTControlCharacters compatibility (#32942)
    • refactor(core): reduce JS<->Rust event loop hops (#32844)
    • chore: add lint plugin to track Deno.* API usage in node polyfills (#32964)
    • perf(ops): replace per-op generated slow metrics wrappers with shared dispatch (#32889)
    • test: add edge case and worker termination tests for Node-API (#32986)
    • test: mark unsupported Node compat tests as ignored (#32956)
    • fix(cli): show clean error instead of panic for invalid --unsafely-ignore-certificate-errors value (#32868)
  • Update to version 2.7.8:
    • 2.7.8 (#32985)
    • test(napi): add more coverage for advanced features (#32963)
    • fix(resolver): fall through to .deno/ when BYONM node_modules version mismatches (#32981)
    • fix(compile): skip Node-to-Deno arg translation in standalone binaries (#32980)
    • fix(npm): use box-drawing style for deprecated package warnings (#32979)
    • fix(ext/node): support http2 createConnection sockets (#32733)
    • fix: include Temporal types in deno types output (#32952)
    • fix(resolver): prefer exact version match in BYONM npm resolution (#32977)
    • fix(cli): fix arrow keys in interactive picker on Windows (#32978)
    • fix(ext/node): support numeric FDs in child_process stdio array (#32959)
    • fix(cli): parse --frozen flag for deno update and deno outdated (#32975)
    • fix(lockfile): truncate frozen lockfile error diff to 50 lines (#32976)
    • fix: handle inner quotes in double-quoted env values in .env file (#32930)
    • refactor: use sys_traits more in deno_npmrc (#32955)
    • test(napi): add coverage tests for data types and object operations (#32962)
    • chore: upgrade V8 to 147.0.0 (#32965)
    • fix(napi): add test coverage and fix escape_handle/throw bugs (#32960)
    • fix(ext/node): close libuv handle on HandleWrap.close() for new-style handles (#32958)
    • fix(ext/napi): pass valid env to tsfn call_js_cb after close race (#32957)
    • fix(node/http): stop leaking TCP wrappers on HTTPS upgrade with createConnection TLSSocket (#32961)
    • feat(ext/telemetry): add console exporter for OpenTelemetry (#32717)
    • fix(fmt): delegate component expression formatting to markup_fmt (#29763)
    • fix(ext/node): fs.cp across allowed dirs with ignored read permissions (#32927)
    • fix(fmt): update markup_fmt to 0.27.0 and malva to 0.15.2 (#32949)
    • fix(ext/node): drain all ready connections in poll_tcp_handle to prevent accept starvation (#32943)
    • refactor(core): use uv_check_t handle for setImmediate (#32879)
    • fix(ext/web): handle null options in removeEventListener (#32605)
    • docs: fix duplicated wording in LSP symbol comments (#32368)
    • fix(inspector): send executionContextDestroyed on process.exit() (#32934)
    • docs: update Claude instructions (#32818)
    • feat(ext/napi): add node_api_create_object_with_named_properties (#32906)
    • chore: consolidate Copilot review instructions and add runtime-aware guidelines (#32938)
    • fix(npm): skip file: and link: dependencies in npm packages (#32876)
    • refactor: deno_npmrc crate (#32936)
    • feat(core): implement NodeRuntime CDP domain and fix --inspect-brk blocking (#32714)
    • fix(ext/node): defer uv_write callbacks to prevent re-entrancy panic (#32919)
    • fix(ext/node): fix node:domain across async boundaries (#32897)
    • fix(ext/web): AbortSignal.any() memory leak with long-lived signals (#32916)
    • fix(ext/node): fix IPC stdio handling in child_process (#32920)
    • perf(ext/web): use simdutf for base64 encode/decode (#32743)
    • fix(ext/node): fix Buffer.concat truncating buffers larger than 4GB (#32913)
    • fix(ext/node): set fd property on TTY ReadStream and WriteStream (#32880)
    • fix(ext/node): enable node:fs compat tests + lchmod fix (#32892)
    • 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): child_process improvements (internalMessage, argv0, DEP0190) (#32885)
    • fix(ext/console): handle throwing Symbol.toStringTag getter gracefully (#32917)
    • fix(ext/node): do not throw error for readline.createInterface outside TTY (#32874)
    • chore: update deno_doc crate (#32896)
    • ci: add Copilot review instructions (#32887)
    • chore(deps): bump aws-lc-sys from 0.38.0 to 0.39.0 (#32883)
    • fix: skip flaky test-process-threadCpuUsage-worker-threads on Windows (#32886)
    • chore(deps): bump tar from 0.4.43 to 0.4.45 (#32882)
    • fix(audit): respect package.json overrides in vulnerability checks (#32878)
    • fix(npm): create shims for all bin entries during global npm install (#32607)
    • fix(ext/node): pass uid/gid to spawn and implement process.getgroups (#32772)
    • fix(ext/node): sqlite prepare() options, defensive default, iterator invalidation (#32756)
    • perf: upgrade to jsonc-parser 0.32 (#32864)
    • fix(ext/node): don't fire upgrade event for h2c requests (#32866)
    • fix(ext/node): update process.versions.napi to 9 (#32870)
    • fix(ext/node): improve process.hrtime argument validation (#32837)
    • fix(ext/node): implement process.threadCpuUsage() (#32829)
    • fix(ext/node): freeze os.constants.signals to match Node.js (#32836)
    • fix(ext/node): enable node compat test for v8.getHeapStatistics (#32833)
    • fix: rewrite approve_scripts_no_lock as PTY tests, skip lockfile test on Windows (#32853)
    • fix(npm): approve-scripts detects packages when lockfile is disabled (#32842)
    • refactor(core): clean up timer implementation, build web timers on Node Timeout (#32843)
    • fix(ext/node): emit request "close" before socket "free" in keep-alive path (#32811)
    • test: add per-file timeout and reduce CI job timeout (#32840)
    • feat(ext/crypto): implement P-521 sign, verify, and ECDH derive (#32602)
    • feat: use lockfile from jsr package for global install (#32490)
    • fix: make flamegraph SVG fill full browser viewport (#32727)
    • feat(ext/telemetry): copy relevant span attributes to HTTP metrics (#32720)
    • refactor(core): move timer processing from Rust to JavaScript (#32543)
    • fix(ext/node): improve readline and EventEmitter compat (#32826)
    • docs: update contributing guidelines (#32747)
  • Update to version 2.7.7:
    • 2.7.7 (#32835)
    • 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(watch): support graceful shutdown via SIGTERM dispatch (#32564)
    • fix(ext/node): set kLastWriteWasAsync in JS write path to prevent double callback (#32814)
    • fix(core): implement select fallback on macOS (#32812)
    • 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(ext/node): skip normalization in path.win32.join for reserved device names (#32808)
    • fix(ext/node): add disabled process function stubs in worker threads (#32809)
    • fix(ext/node): improve process.title and support --title flag (#32201)
    • fix(ext/node): support interface option for IPv6 multicast membership (#32754)
    • chore: re-enable compile determinism test (#31651)
    • perf(ext/webidl): optimize dictionary converters (#32729)
  • Update to version 2.7.6:
    • 2.7.6 (#32800)
    • fix(ext/node): fix 8 Node.js compat test failures (#32755)
    • perf(ext/web): optimize URLPattern ops to reduce serde overhead and GC pressure (#32766)
    • feat(core): update v8 to 146.8.0 with foreground task ownership (#32771)
    • feat(ext/node): add MIMEType, convertProcessSignalToExitCode, Symbol.dispose for ChildProcess (#32793)
    • test: prevent Claude from running entire spec suite (#32797)
    • fix(ext/node): improve worker_threads path validation and error handling (#32791)
    • fix(ext/node): fix TLA stall with native TTY handles and make stdio indestructible (#32792)
    • feat(eval): auto-detect CJS vs ESM in deno eval (#32472)
    • fix(ext/node): fix Buffer.concat, expose internal/buffer, implement markAsUntransferable (#32760)
    • fix(ext/node): rewrite node:tty on top of uv compat (#32777)
    • perf(linux): trim glibc malloc arena after module loading (#32662)
    • fix(ext/node): allow passing FileHandle as fd argument for WriteStream and ReadStream (#32770)
    • fix(process): allow unref'd child processes to outlive parent (#32563)
    • perf(lsp): replace dissimilar with imara-diff (#32700)
    • fix(core): don't panic in to_v8_error when JS error builder callback fails (#32749)
    • feat(ext/signals): support additional signals on Windows (#32689)
    • fix(repl): fix panic when pressing Tab at beginning of line (#32750)
    • perf(ext/web): optimize TextEncoder/TextDecoder hot paths (#32735)
    • perf(ext/web): add write buffering for FsFile.writable streams (#32676)
    • fix(ext/node): signal listeners added via process.once can now be removed (#32606)
    • fix(ext/telemetry): add exception.* attributes to OTEL log records (#32726)
    • fix(ext/web): upgrade QuotaExceededError to DOMException derived interface (#32244)
    • fix(test): allow test functions to override reported location (#32732)
    • perf(ext/node): move fs.cpSync implementation to rust (#32687)
    • fix(ext/node): fix send() validation in child_process IPC (#32779)
    • fix(ext/node): improve Node.js crypto compatibility (#32690)
    • fix(core): prevent panic when multiple lazy-loaded ESM modules are loaded during TLA (#32769)
    • fix(ext/ffi): retain backing store references in nonblocking calls (#32775)
    • feat(ext/telemetry): support array values in OTEL attributes (#32748)
    • perf(ext/napi): use threadpool for async work instead of spawning threads (#32776)
    • fix(ext/node): require --allow-net for udp.send (#32774)
    • fix(ext/node): validate handle type in child_process send() (#32711)
    • fix(ext/node): fix IPC message prototype for child_process JSON (#32731)
    • refactor: force a reason on clippy overrides (#32761)
    • perf(core): optimize V8-to-Rust string conversion with ValueView (#32688)
    • fix(ext/node): fix multiple deepEqual comparison issues (#32763)
    • fix(ext/console): make timer and counter state per-instance to fix OTEL console wrapping (#32719)
    • fix(runtime): apply source maps to CPU profiler output (#32634)
    • chore: update node_test submodule to Node.js 25.8.1 (#32705)
    • fix(coverage): don't mark lines uncovered when zero-count range only partially overlaps (#32601)
    • fix(ext/telemetry): add log.iostream attribute to console logs (#32723)
    • fix(ext/otel): don't mark server spans as error for 4xx responses (#32722)
    • fix(ext/node): allow IPv6 multicast addresses in UDP addMembership/dropMembership (#32739)
    • fix(ext/node): fix AbortController signal handling in child_process s… (#32713)
    • fix(ext/node): accept all TypedArrays in spawnSync input option (#32712)
    • fix(ext/node): enable 8 already-passing child_process compat tests (#32710)
    • fix(ext/node): include prototype env vars in child_process spawn (#32699)
    • fix(ext/node): fix perm checks in TCPWrap (#32721)
    • fix(runtime): use XML-valid entity in flamegraph SVG (#32716)
    • fix(ext/node): support encrypted PEM export and deprecated hash option in crypto keygen (#32703)
    • fix(ext/napi): keep event loop alive while uv_async_t handle is active (#32702)
    • fix(tsc): move more node resolution errors to typescript diagnostics (#32697)
    • fix(ext/node): set up stdio streams on failed child_process spawn (#32698)
    • test: update WPT expectations to match current test results (#32701)
    • feat: add --cpu-prof-flamegraph to generate interactive SVG flamegraphs (#32572)
    • perf(ext/web): optimize node:buffer base64 encode/decode (#32647)
    • fix(ext/napi): prevent spurious TypeError from napi_coerce_to_object on null/undefined (#32695)
    • fix: restore --env-file parent directory traversal and do not error in deno compile for not found env file (#32686)
    • fix(ext/node): improve X509Certificate Node.js compatibility (#32671)
    • fix(lsp): align organize imports output with tsgo (#32677)
    • fix(npm): resolve bundled npm deps in packages properly when not using a node_modules directory (#32679)
    • fix(ext/web): support %j JSON format specifier in console.log (#32684)
    • fix(watch): dispatch unload and process exit events on restart (#32664)
    • refactor(ext/node): consolidate node:fs (part 9) (#32659)
    • fix(web): support structuredClone for DOMException (#32675)
    • fix(ext/node): implement safe, add, rem options for crypto.generatePrime (#32618)
    • fix(ext/crypto): support structuredClone for CryptoKey (#32674)
    • perf(fmt): speed up file diffing (#30644)
    • fix(ext/node): remove extra properties from node:fs exports (#32670)
    • fix(ext/node): emit "connect" event on http.Server for CONNECT requests (#32599)
    • feat(core): add cloneable resource registry for structured clone (#32672)
    • fix(ext/node): use non-blocking write in fs.writev (#32673)
    • perf(npm): run lifecycle scripts in parallel (#32666)
    • fix(ext/node): wrap non-Error unhandled rejections in ERR_UNHANDLED_REJECTION (#32535)
    • chore(npm): fix debug panic in DepEntryCache (#32668)
    • fix(runtime): reduce memory retention after web worker termination (#32617)
    • fix(runtime): display proper error when throwing in event handlers (#32663)
    • chore(x): improve developer CLI with help, structure, and test filters (#32665)
    • fix(ext/napi): call wrap/ref finalizers at shutdown (#32592)
    • fix(ext/node): improve crypto.generateKeyPair validation (#32620)
    • fix(cli): update typescript-go to 2026-03-09 (#32656)
    • fix: wake event loop when V8 posts foreground tasks from background threads (#32450)
    • fix(npm): support npmrc certfile + keyfile (#32655)
    • chore: add test to ensure dlls are lazily loaded on windows (#32648)
    • chore: respect char boundaries in node_compat test output truncation (#32658)
    • fix(npm): retain authorization header on http->https redirect (#29878)
    • perf(ext/web): reduce promise allocations in streams (#32652)
    • refactor(ext/node): consolidate node:fs (part 8) (#32640)
    • perf(install): avoid unnecessary package info fetches when running lifecycle scripts (#32653)
    • chore: add ./x developer CLI tool (#32470)
    • fix(ext/signals): prevent panic on FreeBSD (#32518)
    • chore(deno_npm): use Rc<PackageNv> more (#32650)
    • fix(ext/fetch): retry on stale pooled HTTP/1.1 connections (#32566)
    • chore: fix windows build with latest msvc (#32644)
    • ci: rename lint ci status to ci status (#32391)
    • refactor(ext/node): consolidate node:fs (part 7) (#32631)
    • fix(npm): handle read-only bin files when setting up node_modules/.bin (#32632)
    • fix(ext/node): handle signal 0 in child_process.kill() (#32294)
    • chore: remove warning building deno_npm_cache in Wasm (#32637)
    • fix(ext/node): fix TLS JSStreamSocket resource leak causing process hang (#32325)
    • fix(ext/node): handle cargo features during publish (#32636)
  • Update to version 2.7.5:
    • 2.7.5 (#32633)
    • fix(ext/node): handle generateKeyPair 2-arg call and enable PQC tests (#32619)
    • chore(deps): bump quinn-proto from 0.11.12 to 0.11.14 (#32624)
    • fix(ext/http): allow rejecting HTTP upgrades with non-101 status codes (#32615)
    • fix(ext/node): fix multiple node:dgram compatibility issues (#32520)
    • feat(doc): support npm packages in deno doc (#32435)
    • fix(npm): memoize peer cache hit checks to prevent combinatorial explosion (#32609)
    • fix(ext/node): add node_api_create_property_key_(latin1/utf8) (#32559)
    • fix: flush CPU profile and coverage data on Deno.exit() (#32591)
    • fix(npm): support npmrc email authorization (#32616)
    • feat(ext/node): add node_api_create_object_with_properties API (#31443)
    • fix(ext/node): run worker_threads eval code in sloppy mode (#32428)
    • fix(lsp): tsgo scope attribution for asset files (#32608)
    • fix(ext/napi): run async work execute callback on a worker thread (#32560)
    • perf(ext/node): move most fs.cp logic to rust (#32580)
    • fix(ext/node): make tty ReadStream/WriteStream callable without new (#32537)
    • fix(ext/node): add missing http2 header constants (#32611)
    • refactor(ext/node): consolidate node:fs modules (part 6) (#32588)
    • test: ignore some Node compat tests (#32556)
    • test: support --list flag in custom test harnesses (#32553)
    • fix(ext/node): napi_set_instance_data on exit (#32509)
    • fix(ext/node): rewrite http2 implementation (#32418)
    • fix(ext/node): improve node:dns compat (#32536)
    • fix(ext/node): emit correct error codes for unsupported PQC key types (#32533)
    • fix(console): prevent multi-line object values in console.table (#32604)
    • refactor(ext/node): remove multipleResolves process event handling (#32577)
    • fix(ext/node): multiple readline improvements (#32538)
    • fix(ext/node): use max salt length as default for RSA-PSS signing (#32534)
    • fix(ext/node): initialize debuglog testEnabled with safe default (#32598)
    • fix(ext/websocket): handle non-ASCII bytes in WebSocket response headers (#32594)
    • fix(ext/node): fix multiple DiffieHellman crypto bugs (#32531)
    • fix(napi): remove unimplemented Node-API symbols from napi_sys (#32593)
    • test: allow WPT tests to be marked as flaky (#32438)
    • refactor(napi): replace external napi-sys with in-tree napi_sys crate (#32582)
    • fix(ext/node): emit DEP0198 warning for SHAKE digests without outputLength (#32521)
    • feat(ext/node): implement KeyObject.toCryptoKey() and KeyObject.from(CryptoKey) (#32523)
    • fix(ext/node): improve getCipherInfo and allow repeated Hmac digest() (#32522)
    • fix(ext/node): implement ECDH.convertKey and fix related ECDH bugs (#32532)
    • fix(ext/otel): remove panicking unwraps in telemetry code (#32557)
    • fix: ensure binaries distributed in @deno/... npm packages are exectuable (#32581)
    • feat: --cpu-prof flags for CPU profiles (#31909)
    • refactor(ext/node): consolidate node:fs modules (part 5) (#32573)
    • perf(lsp): drop jsx import source cache (#32506)
    • refactor(core): remove OpMetricsSummary (#32569)
    • refactor: move Temporal types to separate lib.temporal.d.ts (#32571)
    • fix(lsp): properly sync root files with tsgo (#32455)
    • refactor(ext/node): consolidate node:fs modules (part 4) (#32555)
    • refactor(core): clean up RecursiveModuleLoad API (#32424)
    • ci: run ecosystem tests only on weekdays (#32554)
    • docs: document --env-file flag in Deno.Env type definitions (#32546)
    • feat(coverage): add function coverage to summary and HTML reports (#32507)
    • perf(npm): improve decompression speed more (#32547)
    • perf(npm): less syscalls in tarball extraction (#32541)
    • refactor(ext/node): consolidate node:fs modules (part 3) (#32525)
    • refactor: use sys_traits deno_dotenv (#32542)
    • perf(npm): remove folder canonicalization in tarball extract (#32540)
    • fix: support value substitution when loading environment variable files (#32495)
    • ci: remove issue insight workflow (#32539)
    • fix(ext/node): make TTY stdout/stderr indestructible (#32530)
    • perf(npm): use libdeflater and preallocate buffer (#32511)
    • fix(ext/node): support des-ede3-cbc cipher and allow Cipheriv/Decipheriv without new (#32519)
    • feat(otel): allow feeding permission audit data into OTEL (#32501)
    • fix: normalize capture to boolean in removeEventListener options (#32508)
    • refactor(ext/node): consolidate fs modules (batch 2) (#32505)
    • chore: better structured Slack output for issue_pr_insights (#32503)
    • fix: set process.features.openssl_is_boringssl to true (#32512)
    • test: add expected failure support to node_compat test harness (#32451)
    • fix(ext/node): implement proper resourceLimits for node:worker_threads (#32430)
    • docs: add GitHub Copilot instructions (#32492)
    • refactor(ext/node): consolidate fs modules and move promises to internal/fs (#32502)
    • fix(core): switch to V8 Explicit microtask policy for correct nextTick ordering (#32466)
    • test: modernize "node_compat" test runner (#32482)
    • fix(ext/node): implement node:v8 heap APIs (#32483)
    • fix: prevent panic on dynamic import with non-string error name (#32498)
    • chore: upgrade aws-lc- crates (#32499)
  • Update to version 2.7.4:
    • 2.7.4 (#32494)
    • fix(deploy): correctly handle version lookup (#32489)
    • ci: maybe fix spec test timeout (#32487)
    • fix(test): restart all tests on env file change (#32461)
    • fix(ext/node): use sync writes for TTY stdout/stderr WriteStream (#32488)
    • perf(npm): actually improve npm install -g deno binary startup performance (#32467)
    • chore: update rusty_v8 hashes in nix flake (#32471)
    • chore: update deno_std submodule to latest commit (#32469)
    • ci: Add GHA automation for daily issue and PR insights (#32449)
    • fix(ext/node): deep assert compatibility (#32434)
    • fix(core): uv_compat cleanup and fixes (#32458)
    • refactor: split up tools::installer into global and local modules (#32463)
    • Reland refactor(core): move nextTick/immediate queues into core, replace ops with shared buffers (#32440) (#32465)
    • ci: fix deno_core changes check in shallow clones (#32464)
    • Revert "refactor(core): move nextTick/immediate queues into core, replace ops with shared buffers (#32440) (#32462)
    • refactor(core): move nextTick/immediate queues into core, replace ops with shared buffers (#32440)
  • Update to version 2.7.3:
    • 2.7.3 (#32459)
    • perf(npm): improve npm install -g deno binary startup performance (#32439)
    • fix(deploy): dont use jsr api for deploy subcommand (#32441)
    • fix(npm): don't panic when peer dep is not in snapshot (#32454)
    • fix(npm): regression where resolution was missing dependencies (#32453)
    • fix(ext/node): support HTTP over Windows named pipes in node:http (#32414)
    • refactor(config): handle workspaces properly for deploy config (#32445)
    • ci: run node_compat_tests only on weekdays (#32446)
    • ci: fix npm publish (#32437)
    • test: dgram.addMembership EINVAL error regression test (#32256)
    • refactor: move deno_cache_dir into Deno repo (#32426)
    • fix(ext/node): handle partial writes to process.stdout/stderr (#32433)
    • refactor(wpt): split expectation.json into per-suite files (#32395)
    • fix(ext/node): make UDP socket ops synchronous, implement missing dgram methods (#32381)
  • Update to version 2.7.2:
    • 2.7.2 (#32429)
    • fix(npm): NPM_CONFIG_REGISTRY correctly overrides .npmrc (#32394)
    • perf(install): improve parallelism of fetches during npm resolution (#32416)
    • fix(ext/node): gracefully exit on invalid NODE_CHANNEL_FD instead of panicking (#32421)
    • chore(deno_npm): remove ancestors iterator (#32420)
    • fix(ext/node): support SEC1 EC private key import/export in node:crypto (#32401)
    • ci: skip deno-core-test when no relevant files changed (#32404)
    • fix(ext/crypto): fix P-521 EC key export for all formats (#32412)
    • fix: validate cron schedule when using cron socket (#32406)
    • refactor: consolidate utils::watcher_env_tracker to utils::env (#32419)
    • ci: use hash service for reducing duplicate work (#32411)
    • fix(ext/node): support RSA PSS padding option in crypto sign/verify (#32269)
    • perf(install): split tarball extraction into decompress + write, limit write concurrency (#32408)
    • fix(ext/node): CBC decipher setAutoPadding(false) incorrectly strips bytes (#32403)
    • fix: process level environment variables should take precedence over env files (#32407)
    • fix(ext/node): implement KeyObject.equals, fix createCipheriv with KeyObject/null IV (#32409)
    • fix(compile): store self extracting dir in hidden dir beside executable (#32329)
    • fix(ext/crypto): handle wrong algorithm in subtle.importKey without panicking (#32410)
    • fix(ext/node): support Ed25519, X25519, and P-521 keys in X509Certificate.publicKey (#32267)
    • fix(node/crypto): handle empty input in decipher final with auto_pad=false (#31958)
    • fix(npm): peerDependency resolution leading to multiple versions being installed + hanging (#32358)
    • fix(ext/node): support DER-encoded keys in publicEncrypt/privateDecrypt (#32291)
    • ci: replace Cirrus runners and cache with GitHub defaults (#32405)
    • feat(ext/node): implement missing X509Certificate methods (#32270)
    • perf(install): move HTTP decompression for registry requests off the async event loop (#32400)
    • 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(ext/node): make execPath named export a real string (#32396)
    • fix(ext/node): make setAutoPadding(false) a no-op for GCM ciphers (#32290)
    • fix(node): support ECDSA with secp256k1 in node:crypto (#32390)
    • fix(coverage): warn instead of erroring when source files are missing (#32398)
    • fix(ext/node): use internal compileFunction binding in CJS wrap (#32373)
    • perf(install): request abbreviated packuments from npm registry (#32364)
    • test: add regression test for catching error in require(esm) (#32352)
    • fix(ci): fix ordering of platforms in ecosystem_compat_slack (#32393)
    • fix(coverage): correct line and branch counts in coverage reports (#32312)
    • fix(node): implement process.umask properly (#32385)
    • fix(ext/node): make fsPromises.watch() a proper AsyncIterable with close() (#32378)
    • fix(ext/node): return first created path from recursive "node:fs" mkdir call (#32300)
    • fix(node): preserve AsyncLocalStorage context in stream.finished callback (#32389)
    • fix(jupyter): handle shutdown and interrupt requests per protocol (#32359)
    • fix:(ext/node): escape simple quotes in node:child_process (#32336)
    • fix(ext/console): support iterators in console.table (#32379)
    • fix(ext/node): handle emoji width correctly in readline (#32383)
    • fix(node): implement resolveObjectURL for node:buffer (#32382)
    • chore: bump libuv-sys-lite version (#32384)
    • test: disable flaky WPT test (#32386)
    • fix(cli): load multiple env files in the correct order (#32354)
    • perf(install): use aws-lc-rs for tarball integrity hashing (#32365)
    • fix(lsp): cross-scope requests (#32366)
    • fix(core): store Global ptr for libuv-compat callbacks (#32361)
    • fix: Update libffi and libffi-sys to fix build (#32301)
    • chore: merge deno_core repo into main repo (#32353)
    • fix(lsp): tsgo request cancellation (#32356)
    • fix(ext/node): support process.stdout resize events (#32343)
    • feat: v8 14.6, fix require(esm), libuv compat (#32347)
    • refactor(ext/node): assert get error source using V8 API (#32339)
    • fix(ext/node): provide CJS globals in worker_threads eval mode (#32266)
    • fix(node/vm): support vm.constants.DONT_CONTEXTIFY in createContext (#32337)
    • fix: deflake run_watch_env_file_with_multiline_values (#32346)
    • chore: upgrade rustyline to 17.0 and nix to 0.30 (#32344)
    • fix(lsp): tsgo typings for bytes/text imports (#32333)
    • 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)
    • Revert "fix(ext/node): implement after, afterEach, before, and … (#32340)
    • refactor: add clippy rule for using sys_traits::EnvCurrentDir::env_current_dir (#32328)
    • ci: use s3 sync command for glob uploads (#32338)
    • chore: fix duplicate words in source comments (#32314)
    • ci: upload assets to S3 (#32335)
    • fix(ext/node): rename conflict callback field typo (#32306)
    • fix(ext/node): implement after, afterEach, before, and beforeEach of node:test (#32320)
    • fix(node/buffer): fix base64 decoding for strings with hyphens (#32298)
    • 2.7.1 (#32322)
    • ci: fix script for release builds (#32321)
    • chore(jupyter): upgrade jupyter protocol dependencies (#32313)
  • Update to version 2.7.1:
    • This is a maintenance release to fix wrong output of deno --version in
      v2.7.0.
  • Update to version 2.7.0:
    • feat(audit): add --ignore flag to filter advisories by CVE ID (#32221)
    • feat(check): add --check-js flag (#32235)
    • feat(cli): add --save-exact/--exact flag to deno add and install
      (#31977)
    • feat(cli): add deno create command (#32225)
    • feat(compile): add --self-extracting flag (#32227)
    • feat(config): support include and exclude in deploy config (#32254)
    • feat(ext/bundle): Add --keep-names flag (#32285)
    • feat(ext/web): add brotli support to CompressionStream and
    • DecompressionStream (#32028)
    • feat(fmt): add --fail-fast flag to deno fmt --check (#31438)
    • feat(fs): add tryLock(exclusive?: boolean): Promise to FsFile
      (#31848)
    • feat(install): support --node-modules-dir for -g and use a manual
    • node_modules dir for installing npm: specifiers (#32302)
    • feat(task): turn off failglob by default (#32223)
    • feat(unstable): add Deno.spawn(), Deno.spawnAndWait{Sync}() (#32238)
    • feat(upgrade): cache downloaded binaries (#32187)
    • feat: deno create jsr: and deno init --jsr (#32229)
    • feat: add navigator.platform (#30795)
    • feat: npm overrides (#32073)
    • feat: stabilize Temporal API (#31928)
    • fix(audit): gracefully handle malformed response (#32234)
    • fix(audit): properly handle npm registries in subpaths (#32164)
    • fix(bundle): let esbuild handle data urls (#32213)
    • fix(ci): use noble apt repo for LLVM 21 packages (#32241)
    • fix(ext/node): createServer().listen().address() returns port 0 (#32248)
    • fix(ext/node): util.parseEnv and process.loadEnvFile compatibility
      (#32183)
    • fix(ext/node): add host_arch to process.config.variables (#32265)
    • fix(ext/node): add openAsBlob export to node:fs (#32261)
    • fix(ext/node): add missing process.constrainedMemory() API (#32209)
    • fix(ext/node): enable test-stdio-closed tests (#32237)
    • fix(ext/node): enable test-zlib-invalid-input-memory and test-zlib-un…
      (#32284)
    • fix(ext/node): handle shell redirections in child_process exec (#32087)
    • fix(ext/node): implement timeout and killSignal for spawn() (#32283)
    • fix(ext/node): improve process event handling and add missing APIs (#32200)
    • fix(ext/node): preserve streaming body on stale keepalive retry (#32215)
    • fix(ext/node): remove fs.promises.fstat, not a public Node.js API (#32289)
    • fix(ext/node): support URL in child_process.fork modulePath (#32268)
    • fix(ext/node): support ipv6 host in node:http (#32258)
    • fix(install): support --allow-scripts with deno install -g --compile ...
      (#32249)
    • fix(lsp): implement remaining tsgo resolver callbacks (#32303)
    • fix(lsp): qualify diagnostic source and message from tsgo (#32251)
    • fix(lsp): typescript-go basic resolution (#32016)
    • fix(node): preserve AsyncLocalStorage context in unhandledRejection handlers
      (#32264)
    • fix(node/buffer): fix latin1Slice and hexSlice returning wrong results
      (#32277)
    • fix(permissions): allow /proc/pressure/* files with --allow-read (#30780)
    • fix: deno install --force --compile (#32242)
    • fix: detect bound require reexports in cjs analysis (#32163)
    • fix: format wasm stack traces correctly, preserve context in unhandled
    • rejection, improve cppgc inheritance perf (#32293)
    • fix: format wasm stack traces per W3C spec (#32246)
  • Refresh deno-disable-lto.patch
------------------------------------------------------------------- Sun Jun 28 18:38:44 UTC 2026 - Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@fastmail.net> - Update to version 2.9.0: * 2.9.0 (#35502) * feat(npm): publishing-trust ranking and no-downgrade trust policy (#34927) * feat: enable default minimum dependency age (#35458) * fix(deploy): use JSR latest for deploy CLI (#35493) * fix(ext/node): avoid panic when vm.SourceTextModule uses import.meta (#35375) * fix(lsp): report TS2307 for unresolved imports in .d.ts entrypoints (#35469) * fix(ext/node): support AbortSignal.timeout in node:test mock.timers (#35474) * fix(ext/crypto): pad JWK to multiple of 8 bytes for AES-KW wrap (#35475) * fix(ext/node): implement process.resourceUsage() (#35468) * feat(desktop): autodetect Vite framework (#35470) * fix(ext/node): implement t.assert.fileSnapshot for node:test (#35478) * fix(desktop): add macOS desktop Info.plist keys (#35484) * fix(desktop): use native Wayland instead of XWayland on Wayland systems (#35485) * fix: Headers inspect for duplicate Set-Cookie values (#35461) * fix(node): expose lazy console stdio streams (`console._stdout`/`_stderr`) (#35488) * feat(http): disable Deno.serve automatic compression by default (#35486) * fix(ext/http): apply automatic compression for zero-arg serve handlers (#35490) * fix(desktop): add Bluetooth usage descriptions to macOS Info.plist (#35472) * feat(fmt): add sortNamedImports and sortNamedExports options (#33313) * feat(npm): install jsr deps into node_modules via npm-compat registry (#35029) * chore: bump libsui to 0.16.0 (#35467) * feat(ext/web): web locks api (#31166) * fix(core): don't cache WebIDL sequence keys in thread-local v8::Eternal (#35462) * perf(workers): incremental message-passing cleanups (#35108) * fix(ext/http): close active WebSockets on Deno.serve shutdown (#35105) * fix(publish): continue publishing workspace after a package fails (#35133) * feat(task): input-based caching with files/output/env (#34509) * fix(ext/kv): validate remote KV URL when opening the connection (#35106) * fix(test): ignorelist leaks from sanitizer-ignoring tests (#35005) * feat(lsp): add inferred type request (#35099) * fix(lsp): honor --env-file from deno.json `test` task in test runner (#34905) * fix(runtime): capture blob worker roots before revocation (#35128) * fix(desktop): hide bundled libc++ symbols so the desktop runtime can be dlopen'd on Linux (#35424) * feat(cli): add `deno watch` subcommand (#35301) * feat(http): allow disabling serve compression (#35253) * feat(compile): persist Web Storage/KV in a per-app data directory (#34618) * fix(ext/node): forward permissions when spawning deno with subcommand args (#35443) * feat(cli): auto-migrate pnpm-workspace.yaml on resolution failure (#34993) * feat: add "preferPackageJson" deno.json setting (#35392) * feat(fmt): infer config from .editorconfig (#34071) * feat(desktop): default UI backend to webview (#35442) * fix(core): always register isolate to prevent silent foreground task drop (#35408) * fix(ext/node): initialize named stdio exports lazily (#35428) * fix(ext/crypto): allow deriving AES-OCB keys (#35426) * chore: add tests for JSDoc @event, @fires, @emits, @listens (#34688) * feat(cli): add deno list subcommand to list declared dependencies (#34972) * fix(desktop): Wayland support for CEF and webview backends (#35425) * fix(ext/node): import attributes and custom module types in registerHooks ESM hooks (#35028) * fix(core): unwrap global exports in Wasm ESM integration (#34912) * fix(pack): include assets matched by publish.include in the tarball (#35331) * feat(test): add --changed and --related flags to deno test (#35199) * fix(node/test): route nested top-level test() to a subtest (#35406) * feat(desktop): --compress for self-extracting app bundles (#35420) * feat(desktop): add Windows .msi installer output format (#35378) * build: add support for loong64 and ppc64 (#35410) * perf(macos): enable chained fixups to cut pre-main startup (~0.8ms) (#35409) * feat(install): seed deno.lock from bun.lock (#35394) * feat(test): built-in snapshot testing via t.assertSnapshot (#35139) * feat(ext/node): implement node:test mock.module (#35329) * fix(coverage): merge coverage for modules loaded with different hash/search params (#35354) * fix(ext/node): fix `node:test` hook ordering and error handling (#35393) * fix(pack): surface slow type diagnostics (#35379) * fix(test): skip invalid doctest import bindings (#35382) * fix(ext/node): avoid panic deserializing empty buffers over child_process IPC (#35340) * feat(install): seed deno.lock from yarn.lock (#35350) * test: bound npm/playwright_compat so a wedged step fails fast (#35396) * chore(tests): bump npm/playwright test fixture to 1.60.0 (#35405) * fix(test/node): mark test-worker-fshandles-open-close-on-termination as flaky (#35387) * fix(npm): symlink workspace npm members into root node_modules by name (#35383) * fix(node): propagate source thread id to `process` `workerMessage` event (#35374) * fix(install): seed pnpm workspace members and catalog deps (#35376) * perf(runtime): lazy-load node:buffer and node:timers globals (#35373) * perf: lazy-load OSX frameworks with `lzld` (#35341) * fix(update): refetch npm metadata so stale cache doesn't hide newer versions (#35380) * feat(desktop): add Linux .deb and .rpm installer output formats (#35296) * perf: V8 code cache for residual lazy-loaded ESM modules (#35338) * feat(task): add --jobs/--concurrency flag to deno task (#35318) * docs: consolidate Deno.bundle reference category (#35342) * feat: `deno remove --global` as alias for `deno uninstall --global` (#35327) * feat(install): seed deno.lock from pnpm-lock.yaml (#35346) * fix(tests): skip npm/playwright_compat on windows-aarch64 (#35358) * fix(runtime): make Deno.test.* sub-methods no-op under `deno run` (#35344) * feat(install): seed deno.lock from package-lock.json (#35330) * refactor: add the zero-cost CLI argument parser engine (#35334) * perf(snapshot): guard against lazy modules leaking into eager snapshot (#35332) * refactor(core): route residual lazy_loaded_js code cache through ModuleLoader (#35335) * perf: gate eager node bootstrap to node workers (#35337) * refactor: extract CLI flag types into deno_cli_parser crate (#35333) * fix(jupyter): report cell errors instead of failing silently (#35328) * docs: improve JSDoc for Deno namespace types from docs feedback (#35326) * perf: startup time (22ms -> 15ms) (#34450) * chore: bump node_compat test suite to Node.js 26.3.0 (#34746) * feat(task): add --if-present flag to deno task (#35315) * docs(cli): clarify install --node-modules-dir, --dev, --reload, --check help (#35325) * feat(task): set npm_execpath, npm_node_execpath and npm_command for package.json scripts (#35317) * fix(resolver): better hint when importing a linked package by the wrong name (#35319) * docs(ext/net): clarify Deno.TcpConn.setNoDelay Nagle's algorithm wording (#35324) * fix(ext/node): fail node:test on unhandled rejection and enforce timeout (#35297) * docs: fix dead MDN link to Body interface (#35266) * fix(ext/signals): build windows-sys only on Windows (#35283) * fix(ext/net): cancel in-flight reads when closing TCP/Unix/Vsock streams (#35294) * refactor(runtime): allow disabling the OffscreenCanvas global via env var (#35287) * refactor(resolver): allow disabling verbatimModuleSyntax via env var (#35288) * feat(ext/node): implement node:test mock.timers (#33946) * perf(core): reduce snapshotted cppgc op member templates (#35298) * fix(ext/node): don't apply requestTimeout to active streaming responses (#35291) * fix(ext/node): support HTTP/2 on the DENO_SERVE_ADDRESS override listener (#35089) * fix(serve): exit cleanly on SIGTERM/SIGINT in deno serve (#32862) * refactor(ext/fetch): check net deny list against connected peer addr (#34418) * fix(npm): don't apply import map to npm bin main module (#35097) * fix(test): use `#` instead of `$` as the doc test virtual file sigil (#35095) * fix(ext/node): stop coloring non-TTY streams in `util.styleText` (#35236) * feat(install): warn on package.json engines mismatch (#34225) * feat(coverage): add configurable coverage thresholds (#35056) * fix(install): resolve package.json dependencies in global install (#35135) * fix(core): preserve custom .stack getters in error/test formatter (#35246) * fix(upgrade): stream zstd delta patch to avoid 2GiB OOM (#35284) * fix(ext/net): set transport on address for TlsListener (#35258) * fix(ext/node): single source of truth for emulated Node version (#35273) * fix(lsp): include tsconfig roots in script names (#34136) * docs: update Chocolatey install link to community.chocolatey.org (#35282) * feat(cli): provide a `node` on PATH when Node.js is not installed (#34969) * chore: deprecate no-op --unstable-node-globals flag (#35278) * fix(ext/node): check --allow-net for proxied request target in node:http(s) (#35241) * fix(npm): slim cached full packument when minimumDependencyAge is set (#35285) * fix(permissions): don't require --allow-run for process.kill on self (#34382) * refactor(cli): restrict DENO_UNSTABLE_CONTROL_SOCK to local transports (#35276) * feat(napi): implement Node-API version 10 (#35270) * feat(ext/net): implement Happy Eyeballs for `Deno.connect` and `Deno.connectTls` (#31726) * feat(node): bump reported process.version to v26.3.0 (#34747) * fix(desktop): correct libdenort unpack path with non-executable extension (#35267) * feat(test): add retry and repeats options to Deno.test (#35053) * perf: startup profiling instrumentation + clap fast-path (#35263) * feat: `deno desktop` subcommand (#33441) * feat(runtime): add request_builder_hook for fetch token and cdn-loop headers (#35088) * feat(cli): add `deno link` and `deno unlink` subcommands (#34359) * feat(test): add --shard flag to split a test run across machines (#35057) * fix(task): set npm lifecycle env vars when running package.json scripts (#35252) * chore(tools): make lint.js work in jj checkouts (#35255) * perf(snapshot): minify snapshot sources (#35183) * fix(ext/node): preserve AsyncLocalStorage context across node:net callbacks (#35237) * fix(ext/node): keep dns.lookup permission token internal (#35224) * fix(ext/fs): truncate should not follow a terminal symlink (#35239) * feat: add stable --unsafe-proto flag (#34738) * fix(runtime): suggest --unstable-unsafe-proto after __proto__ access (#35192) * fix(npm): make peer dependency warning actionable and show importers (#35242) * fix(ext/node): restore Node binding signature for zlib write/writeSync (#35238) * fix(ext/fetch): require --allow-net for Unix proxy in createHttpClient (#35231) * feat: support `ignore` option in `Deno.watchFs` (#31582) * fix(ext/node): allow registerHooks with no resolve or load hook (#35235) * fix(ext/node): implement worker_threads.isInternalThread (#35234) * fix(npm): avoid spurious npm re-resolution that fails under --cached-only (#35051) * feat(ext/crypto): support remaining modern WebCrypto algorithms (#35223) * fix(resolver): resolve linked packages by bare specifier (#35228) * fix(ext/napi): restore Explicit microtask policy in napi_resolve_deferred (#35212) * feat(bundle): add --declaration flag to generate rolled-up .d.ts files (#33838) * feat(lockfile): auto-resolve git merge conflicts in deno.lock (#34726) * perf(ext/web): port console/inspect to Rust (cppgc object wrap) (#35087) * feat(fmt): use lax-markup for HTML, XML, SVG, and components (#35174) * fix(coverage): don't panic in summary reporter without a common root (#35211) * fix(repl): highlight regex literals correctly (#35103) * feat(test): show sub-millisecond test durations (#35200) * feat(install): create node_modules for workspace members (#34970) * fix: cache 404 responses for remote modules (#35138) * feat(fmt): use lax-css for CSS, SCSS, and Less (#35160) * feat(unstable): CSS module imports (with { type: "css" }) (#35093) * feat(test): add Deno.test.each for parameterized tests (#34938) * fix(core): handle async op promise id wraparound (#35126) * perf(ext/crypto): port WebCrypto from JS to Rust (#34966) * feat(fmt): use lax-sql for SQL formatting (#35161) * feat: stabilize bare node built-in resolution (#33316) * feat: stabilize "links" field in deno.json (#34996) * perf(core): skip source ASCII checks in release runtime setup (#35186) * fix(serve): update request_signal_streaming spec for legacy abort warning (#35193) * feat: support navigator.userAgentData (#34743) * fix(install): remove stale root node_modules symlink on deno remove (#35137) * fix(serve): shut down old workers on watcher restart (#35136) * fix(core): make uv_compat ready queues thread-safe (#35175) * fix(ext/fetch): keep content-encoding and content-length on decompressed responses (#35124) * fix(lsp): make requests work for files opened from node_modules (#35176) * feat(ext/http): deprecation warning for legacy request abort (#34397) * fix(runtime): don't silently lose Deno.watchFs events (#35122) * fix(permissions): require --allow-net for Unix domain socket ops (#34395) * fix(ext/node): make registerHooks resolve hook work for nested imports (#35169) * fix(npm): support `catalog:` protocol in deno.json imports (#35168) * chore(wpt): upgrade deno_dom to fix silent empty test bundles (#35184) * fix: accept U+30FB KATAKANA MIDDLE DOT in identifiers (#35147) * fix(check): treat npm .d.ts as CJS based on package.json (#35166) * chore: publish benchmark JSONL files (#35146) * chore: cover first node:http proxy request under test (#35001) * fix(permissions): treat Windows `\\?\` verbatim paths as equivalent (#35096) * fix(ext/crypto): clamp X448 scalar per RFC 7748 (#35157) * fix(ext/node): implement test.TestContext.runOnly (#35158) * ci: guard release snapshot flags (#35164) * docs(runtime): clarify worker Deno.exit behavior (#34167) * ci: fix pnpm exec version check in npm publish workflow (#35156) * fix(publish): skip already-published versions before type checking (#35134) * fix(ext/node): trace v8 serializer delegate (#35132) - Update to version 2.8.3: * 2.8.3 (#35144) * fix(ext/fs): stream Deno.readDir entries (#35130) * perf(core): reduce native callback snapshot overhead (#35121) * fix(ext/http): surface errors thrown while streaming a Deno.serve body (#35104) * fix(repl): treat trailing `.` as incomplete input (#35101) * fix(ext/web): friendlier URLPattern construction errors (#35102) * fix(test): wait for worker termination before pending promise failures (#35127) * fix(test): handle escaped markdown code fences (#35125) * fix(jupyter): handle completion cursor_pos as Unicode codepoints (#35098) * fix(runtime): cancel prompt on esc (#35004) * fix(compile): run forked child's module instead of entrypoint (#34687) * fix(ext/web): don't trip debugger on handled stream writer-release rejection (#35100) * fix(ext/node): keep v8.serialize output readable by Node.js (#35118) * fix(permissions): allow non-recursive reads/writes on ancestors of deny (#34504) * fix(ext/node): keep node:vm ContextifyContext wrapper alive with its context (#35090) * feat(test): forward shebang permissions into `deno test --doc` (#35052) * fix(outdated): send npm Accept header when fetching package metadata (#35012) * test: reenable flaky fetch tests on Windows (#35058) * fix(ext/node): export runMain from node:module (#35065) * fix(test): do not report "only" notice when a test fails on its own (#35063) * fix(lint): name the offending plugin in lint plugin load errors (#35067) * fix(ext/fetch): preserve empty multipart filenames (#35009) * fix(info): normalize trailing spaces in file path args on Windows (#35008) * fix(ext/http): prefer brotli for equal compression q-values (#35011) * test(ext/http): cover h2 serve request behavior (#35082) * fix(ext/http): join split request headers consistently (#35081) * fix(ext/node): count forked child process sockets (#34096) * fix(ext/node): propagate nextLoad(newUrl) redirect to default loader (#35027) * fix(publish): preserve default export of `export *` re-exported module (#34709) * fix(lsp): start rename after extract refactors (#34832) * build(flake): update rusty-v8 and rust-overlay (#34839) * fix(coverage): improve HTML report PageSpeed score (#34980) * fix(ext/node_crypto): support PBES2/AES-CBC bags in tls.createSecureContext pfx (#34438) * fix(permissions): correct -A wording in raw-mode prompt message (#35070) * test: assert deno fmt --check does not modify files (#34811) * fix: resolve global install import maps from original cwd (#34165) * fix(ops): build fast-call errors without re-entering JS (#35042) * fix(permissions): don't hang prompt when stdin is in raw mode (#34457) * fix(ext/node): accept non-canonical RSA SPKI keys (#34134) * fix(ext/node): replay direct writes on stale http retry (#34992) * fix: ignore 0 value for OTEL_METRIC_EXPORT_INTERVAL (#35054) * fix(ext/node): guard TCPWrap.open against adopting tracked fds (#35045) * fix(check): honor ts suppressions for unresolved imports (#34163) * fix(ext/node): don't cache a pointer to the zlib result buffer (#35043) * fix(ext/webgpu): bounds-check + view-aware setBindGroup Uint32Array fast path (#33980) * fix(ext/node): fix asciiSlice & ucs2Slice & hexSlice being too slow (#34525) * fix(ext/node): transfer TCP handle ownership in http2 consumeStream (#35047) * fix(ext/ffi): accept Uint8Array<ArrayBufferLike> in FFI buffer types (#34999) * fix(runtime): keep lazy Deno namespace APIs writable (#35050) * fix(http): handle raw h1 serve regressions (#35049) * chore: update webgpu (#34319) * perf(config): match glob paths relative to base (#35039) * fix(ext/web): repair text_decoder_stream bench after BlobStoreTrait change (#35044) * refactor(ext/web): extract BlobStoreTrait to allow custom blob store implementations (#34000) * docs: add jsdocs for URLSearchParams, Storage, FormData, EventSource (#34278) * fix(watch): keep watcher alive when script calls Deno.exit() (#35021) * fix(repl): show tab completions for navigator.gpu (#35006) * perf(ext/web): ASCII fast path for streaming TextDecoder.decode (#34299) * fix(fmt): align singleBodyPosition schema values (#34304) * fix(ext/node): enforce maxBuffer in child_process.spawnSync (#34053) * fix(runtime): source map maybe cjs modules (#35013) * fix(cli): generate type-only doc-test imports under verbatimModuleSyntax (#33508) * fix(lint): helpful error for Deno.lint.runPlugin outside deno test (#35018) * fix(inspector): attribute idle event-loop wait to (idle) in CPU profiles (#35034) * fix(resolver): prefer deno jsx options over tsconfig (#34141) * fix(ext/webgpu): update published crate repository url (#33916) * feat(ext/telemetry): honor OTEL_SPAN_EVENT_COUNT_LIMIT (#34795) * fix(core): use isolate_unchecked accessors for fast `&v8::Isolate` args (#33474) * fix(core): silence too_many_arguments on Callable trait method (#33475) * fix(bundle): respect `--check` and run the type checker (#33514) * refactor(lsp): use ToV8 for the getSignatureHelpItems request (#34783) * chore: upgrade deno_graph to 0.108.4 (#35035) * perf(lsp): cache shared workspace data across members (#32476) * Revert "test(node_compat): enable parallel/test-child-process-send-utf8.js" (#35036) * fix(ext/node): unblock static module loads when registerHooks is active (#35026) * fix(cli): don't let --env-file set Deno's own runtime control vars (#35032) * feat(ext/telemetry): honor OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT (#34787) * refactor(core): derive FromV8/ToV8 for JsError and BenchResult (#34749) * fix(ext/net): handle missing port and path in listen and listenDatagram (#31681) * fix(lsp): update cache after workspace folder changes (#32823) * fix(ext/node): implement url.fileURLToPathBuffer (#34883) * docs(cli): document environment variables advertised by flag help (#34774) * fix(ext/node): throw ERR_UNKNOWN_BUILTIN_MODULE for unknown node: builtins (#34766) * test(node_compat): enable parallel/test-child-process-send-utf8.js (#34778) * fix(ext/web): fire FileReader progress events as tasks (#34763) * feat(ext/telemetry): support OTEL_TRACES_SAMPLER (#34764) * chore: upgrade v8 to 149.3.0 (#35030) * fix(test): skip markdown roots when building watcher graph (#35003) * fix(repl): report descriptive syntax error instead of "Unexpected token '<'" (#35016) * fix(publish): ignore unused type parameter diagnostics from fast check (#35017) * fix(ext/web): writableStreamForRid accepts any ArrayBufferView/ArrayBuffer (#35020) * feat(fmt): add JSON trailing comma config (#33383) * fix(cli): accept allow-import for deno add (#35019) * fix(fmt): pass newlineKind option to JSON and Markdown formatters (#32579) * fix(serde_v8): add recursion depth limit to deserializer (#34984) * fix(publish): catch banned triple slash directives anywhere in file during dry-run (#35010) * test(cli): cover shebang doc test extraction (#35007) * fix(repl): print uncaught exceptions from timers at the prompt (#35002) * perf(ext/web): convert geometry.js from lazy_loaded_esm to lazy_loaded_js (#34997) * docs: update usage examples for ext crates (#34978) * fix(install): preserve workspace member resolution in global install (#34989) * fix(ext/fs): clarify that Deno.symlink() needs unscoped permissions (#34991) * chore: test coverage for decorator access has method (#34998) * fix(ext/node): keep sqlite iterator callbacks alive (#34982) * fix(ext/io): cancel pending readable stream reads (#34986) * fix(npm): support workspace: dependencies with an alias in package.json (#34990) * fix(npm): resolve workspace members with prerelease versions (#34928) * feat(workspace): auto-discover external deno.json import maps (#34803) * fix(ext/node): guard sqlite authorizer reentrant replacement (#34983) * fix(ext/node): trace v8 deserializer delegate (#34981) * fix(outdated): include catalog dependencies in deno outdated/update (#34977) * feat(outdated): warn about packages skipped due to registry errors (#34974) * fix(publish): detect circular workspace dependencies before authorization (#34823) * fix: throw ERR_DIR_CLOSED on use-after-close in Dir (#34910) * feat(ext/node): auto-instrument node:http2 with OpenTelemetry (#34510) * fix(ext/node): handle EMFILE in child_process.spawn and compound shell commands (#33544) * fix(update): show version requirement in interactive picker (#34671) * fix(ext/os): don't expose invalid env var keys from Deno.env.toObject() (#34711) * fix(serve): apply import map to main module in `deno serve --watch` (#34893) * fix(ext/node): wire ConnectionsList hooks so headersTimeout doesn't spuriously fire (#34356) * fix(clean): keep cleaning when cache files are locked and report holders (#34946) * fix(resolver): collapse redundant slashes in file specifiers (#34713) * fix(ext/node): clear nonblocking fd stdio for child pipes (#34962) * feat(ext/fetch): support `priority` in `RequestInit` (#34716) * fix(compile): resolve bare npm imports in --bundle worker sources (#34967) * fix(lockfile): write through deno.lock symlink instead of replacing it (#34826) * fix: support --inspect family in NODE_OPTIONS (#34717) * fix(check): surface unresolved imports in .d.ts entrypoints (#34168) * fix(cli): strip trailing CR from args so CRLF shebangs work (#34968) * fix(publish): improve error reporting for JSR manifest verification (#34690) * fix(ext/web): clearer error when a resource-backed stream is consumed after close (#34964) * fix(cli): collect re-exported names for `deno test --doc` injection (#33511) * fix(ext/node): fix broken encoding validation in indexOfBuffer (#33393) * fix(install): handle ETXTBSY when setting up node_modules (#33311) * fix(add): accept npm version ranges on the command line (#34799) * perf(ext/fs): use file identity instead of canonicalize in copyFile same-path guard (#34750) * fix(install): suppress peer dependency warnings for overridden packages (#34935) * fix(runtime): show import location for unsupported import attributes (#34824) * fix(bundle): apply node-style CJS interop on all platforms (#34939) * refactor(tls): deduplicate rustls-webpki (#34965) * refactor(wasm): remove wasm-encoder dependency (#34954) * fix(ext/web): support SharedArrayBuffer over BroadcastChannel (#34961) * feat: `bump-version -c` to handle deno.json + package.json in same dir (#34770) * fix(ext/crypto): align WebCrypto modern algorithms with the spec (#34941) * fix(ext/node): implement mock.property() in node:test (#34959) * chore: test coverage for format() preserves WHATWG URL credentials (#34951) * fix(ext/process): run shebang-less scripts via /bin/sh on ENOEXEC (#34945) * fix(ext/node): match Node's UTF-8 replacement for invalid bytes in Buffer decode (#34947) * fix(ext/node): support ChildProcess.send with net.Server handles (#34948) * feat(x): add deno x --ignore-scripts (#34952) * refactor(cron): remove saffron dependency (#34879) * refactor(fetch): remove tower-http decompression (#34867) * fix(core): externalize lazy loaded sources (#34936) * feat(ext/node): notify control socket when node:http server starts serving (#34949) * fix(bundle): instantiate .wasm imports instead of emitting raw bytes (#34923) * feat(ext/crypto): implement SubtleCrypto.supports() static method (#34903) * fix(ext/crypto): ML-KEM raw-seed, seed-form PKCS#8, and JWK (#34924) * perf(ext/http): add Deno-owned HTTP/1.1 serve path (#34446) * fix(ext/http): don't crash server on dead streaming-body resource (#34933) * fix(ext/fetch): block requests to bad ports per Fetch Standard (#34863) * fix(ext/crypto): support raw-public format for existing asymmetric keys (#34920) * fix(runtime): don't panic on missing SnapshotOptions when no snapshot (#34929) * fix(ext/web): show state and supportsBYOB in ReadableStream inspect (#34932) * refactor: reduce env_logger feature set (#34898) * fix(ext/crypto): move getPublicKey to SubtleCrypto and validate usages (#34913) * fix(lsp): ignore relative import map remaps (#34856) * fix(permissions): run special-file guard for no-follow ops (#34393) * fix(dotenv): include underscore in unbraced variable names (#34797) * feat(cli): suggest DENO_TLS_CA_STORE on untrusted TLS certificate (#34756) * feat(info): support --minimum-dependency-age flag (#34762) * fix(console): %c colors with same red component as previous color (#34784) * feat(config): support globs in links (#34849) * fix(resolver): don't treat a linked deno.json package as an npm link (#34841) * fix(cli): check worker's own permissions for dynamic asset imports (#34707) * fix(ext/websocket): send URL userinfo as Basic auth header (#34708) * fix(compile): prune managed npm snapshot to graph-reachable packages (#34741) * feat(lsp): show no-slow-types diagnostics for JSR packages (#34740) * fix(publish): allow stable text imports (#34692) * fix(run): error instead of panicking when watch flags are used with stdin (#34785) * test(node_compat): enable three passing vm tests (#34796) * fix(lsp): prefer exact import map remaps (#34855) * fix(watch): detect newly created files in fmt/lint/test/bench --watch (#34828) * fix(core): don't set ERR_MODULE_NOT_FOUND code on module linking errors (#34800) * feat(lsp): provide hover info for import map resolutions (#34854) * fix(ext/fs): report broken symlink read as NotFound, not FilesystemLoop (#34833) * fix(coverage): exclude linked/patched packages from coverage report (#34834) * fix(ext/crypto): ChaCha20-Poly1305 uses raw-secret format and iv param (#34915) * fix(bundle): don't panic when esbuild binary is busy or unavailable (#34845) * feat(ext/crypto): support ML-DSA JWK import/export (#34914) * fix(ext/crypto): use outputLength for SHAKE/cSHAKE/TurboSHAKE digests (#34911) * fix(lsp): suggest import map aliases for remaps (#34857) * fix(ext/kv): update access_token error message to new deno deploy console (#34918) * fix(ext/fetch): only match multipart delimiter lines (#34587) * fix(ext/web): URL.createObjectURL throws ERR_INVALID_ARG_TYPE for non-Blob args (#34878) * feat(lsp): diagnose import map files (#34864) * fix(ext/kv): validate batchSize and expireIn inputs (#34782) * feat(cli): support --env-file in dependency and registry subcommands (#34843) * fix(cli): include the typed name in unrecognized subcommand error (#34882) * tests(eval): add spec tests for eval error reporting and exit codes (#34884) * fix(ext/node): don't expose Module.register stub (#34894) * fix(watch): respect --watch-exclude in deno serve (#34847) * fix(ext/node): accept scoped IPv6 interface in dgram addMembership (#34899) * fix(bundle): rename sourcemap for HTML entrypoints (#34901) * fix(lsp): cache JSR type roots (#34886) * chore: test cover PE32 node.exe addon imports (#34848) * refactor(ext/crypto): move webcrypto key store to Rust (#34881) * docs(contributing): fix Windows build prerequisites (#34842) * fix(clean): support `deno clean --dry-run` without --except (#34846) * refactor(ffi): remove serde-value dependency (#34851) * fix(compile): support fs.fstatSync on vfs (#34892) * perf(lsp): cache lint and doc diagnostics per document module (#34875) * fix(check): ignore doc comment dynamic imports (#34888) * feat(compile): support watch mode (#34860) * fix(ext/node): match Node.js when dns.lookup hostname is falsy (#34887) * fix(net): preserve unix abstract socket paths (#34874) * fix(ext/process): treat Windows kill on exited process as NotFound (#34889) * chore: regression test for clearImmediate semantics across TCP socket close (#34852) * chore: test cover CJS bare builtin requires (#34853) * fix(ext/fetch): don't decompress empty body advertised as gzip/br (#34880) * fix(ext/http): include buffered request bytes in size hint (#34831) * feat(lsp): add Deno.test ignore and only code actions (#34861) * fix(ext/node): keep worker alive while holding a refed MessagePort (#34877) * fix(cache): retry locked cache database instead of deleting it (#34873) * fix(test): support blockquoted markdown doc tests (#34871) * fix(lsp): evict on-disk documents from cache when deleted or changed (#34858) * fix(runtime): serialize terminal permission prompts (#34821) * fix(ext/node): implement setKeepAlive on native TCPWrap (#34865) * fix(cli): don't suggest non-existent subcommand-flag combinations (#34810) * feat(lsp): report `deno doc --lint` diagnostics (#34733) * fix(check): treat .d.ts in ESM-supporting npm packages as ESM (#34613) * feat(info): add localPath to npm packages in `deno info --json` (#34806) * fix(ext/node): read proxy env vars without --allow-env (#34807) * fix(jupyter): verify HMAC signatures on incoming kernel messages (#34825) * fix(ext/node): bump emulated Node version to v24.15.0 (#34804) * feat(lsp): add "Debug" code lens for test steps (#34742) * test(ext/web): differential tests for geometry matrix math (#34817) * refactor: replace weak-table in lsp document cache (#34776) * refactor(lsp): remove fancy-regex from route matching (#34813) * refactor: replace nalgebra in web geometry (#34771) * fix(npm): run workspace package lifecycle scripts (#34615) * refactor(ext/node): use primordials across the node:* polyfill layer (#34721) - Update to version 2.8.2: * 2.8.2 (#34791) * tests(run): add spec tests for non-executable entrypoints (#34779) * fix(ext/web): honor PerformanceObserver buffered flag (#34748) * fix(ext/web): make MessageEvent.ports a frozen array (#34773) * chore: test node_modules symlinks in npm workspace with cyclic deps (#34759) * fix(npm): apply scoped registry auth to same-origin tarballs (#34698) * fix(jupyter): make kernel ZMTP handshake compatible with libzmq (#34755) * refactor(lsp): serialize positional TSC requests with ToV8 (#34775) * fix: resolve local file when folder name matches import-mapped package (#32854) * Revert "fix(runtime): throw a descriptive error for disabled __proto__ accessor (#34730)" (#34772) * chore: regression tests for rename preserving import map alias (#34761) * fix(lsp): spurious diagnostics in Jupyter notebook cells (#34734) * fix(lsp): skip parent process check when PID isn't visible (#34744) * fix(install): handle pre-existing node_modules symlink on Windows (#34659) * fix(add): handle version tags like `@latest` in `deno add` for JSR packages (#32859) * fix: remove node_shim exec dependency (#34739) * fix(runtime): throw a descriptive error for disabled __proto__ accessor (#34730) * fix(compile): enable ANSI colors on Windows in compiled binaries (#34701) * fix(ext/fs): error when copyFile source and destination are the same file (#34718) * chore: upgrade WPT submodule and refresh all expectations (#34573) * chore: regression test for legacy subpath main under .deno layout (#34737) * refactor: replace winapi usages with windows-sys (#34732) * fix: opt-in mitigation for React RCE/DoS CVEs (#34676) * fix(lsp): release idle memory back to the OS (#34727) * refactor(lsp): bundle import-completion services into CompletionContext (#34731) * perf(node): skip require permission checks when read is fully granted (#34722) * fix(lsp): limit node_modules auto-import aliasing (#34674) * feat(lsp): autocomplete jsr:/npm:/node: in deno.json(c) imports (#34724) * fix(lsp): use cached registry config when offline (#34723) * chore: add no-unused-vars regression test for JSX factory (#34725) * fix(node): avoid spurious ERR_MULTIPLE_CALLBACK on process.stdout/stderr (#34728) * feat(compile): improve --bundle dependency resolution and add --minify (#34536) * fix(check): make node:stream/web types alias the globals (#34606) * docs(cli): document undocumented runtime API declarations (#34715) * fix(tsc): resolve Web globals to Deno's versions in npm packages (#34634) * fix(task): restore terminal mode after task exits on Windows (#34685) * feat(ext/node): env/global proxy support for node:http and node:https (#34257) * fix(npm): share copy-package variants via symlink for class identity (#34691) * fix(napi): support ZeroMQ libuv addon symbols (#34657) * fix(install): run workspace member dependency lifecycle scripts with member INIT_CWD (#34700) * fix(runtime): suggest Worker/node:vm alternatives for npm:isolated-vm (#34702) * fix(fmt): update markup_fmt to fix quadratic inline CSS formatting (#34663) * fix(node): full re-export fallback for unresolvable member re-exports (#34689) * fix(ext/napi): clear error for Windows addons that link against node.exe (#34696) * fix(compile): cover CJS-deep imports under --bundle (#34534) * fix(runtime): suggest N-API alternatives for legacy V8/nan addons (#34695) * fix(core): preserve WebAssembly streaming callback across new contexts (#34679) * fix(ext/node): report real error code for failed dns.lookup (#34697) * fix(lsp): complete npm package exports (#34675) * fix(ext/fetch): preserve static request body length (#34546) * fix(lsp): recover from TSC isolate OOM instead of crashing the language server (#34693) * fix(lsp): use file uris for neovim virtual definitions (#34653) * fix(napi): report a clear error for legacy V8/nan native addons (#34683) * fix(lsp): walk to enabled nested workspaces (#34654) * fix(lsp): include configured deps in auto-imports (#34650) * fix(rt): support host-FS CJS files in the standalone runtime (#34560) * fix(ext/fs): retry without FILE_FLAG_BACKUP_SEMANTICS on Windows when driver rejects it (#34686) * fix(lsp): support test steps from imported helpers (#34648) * chore(lsp): test cover for wasm multi-value return types (#34652) * perf(ext/fetch): cache lowercased header names per Headers instance (#33683) * fix(lsp): handle parser panics while parsing documents (#34640) * perf(ext/node): gate node:http async resource entry (#34608) * feat(compile): scope --bundle npm embed to packages actually reached (#34532) * chore: cover same-dir import map auto-import alias (#34645) * fix(node): classify required js files as commonjs by default (#34673) * perf(http): remove legacy hyper 0.14 from deno_http (#34557) * feat(ops): add enum support to FromV8 derive (#34241) * fix(lsp): surface module-level uncaught errors in test runs (#34641) * fix(lsp): avoid empty import specifier completions (#34647) * fix(runtime): suggest --allow-scripts for `bindings` native addon error (#34666) * refactor(lsp): use ToV8 derive for LoadResponse (#34240) * fix(lsp): merge duplicate completion imports (#34658) * refactor(cli/lint): use FromV8 derive for PluginInfo (#34239) * fix(node): resolve CJS requires with multi-level relative specifiers on Windows (#34655) * fix(lsp): handle empty jsx completion ranges (#34651) * fix(lsp): complete string union literals containing dots (#34664) * fix(ext/node): capture IPC handle eagerly to fix cluster send deadlock (#34661) * fix(compile): transpile TypeScript imported at runtime (#34616) * fix(ext/fetch): implement missing Request properties (#34607) * fix(lsp): honor `moduleResolution: "bundler"` for npm dir imports (#34643) * fix(npm): clean node_modules after deno remove (#34110) * feat(jupyter): rewrite kernel in JS, drop zeromq/runtimelib deps (#34083) * feat(ext/node): support DENO_SERVE_ADDRESS override in node:http servers (#34662) * chore: deflake run_watch_reload_once (#34660) * refactor(ext/web): port ImageData to Rust with CPPGC/objectwrap (#33777) * fix: absolute links should be processed using directory functions (#34218) * fix(compile): bundle workers separately under --bundle (#34531) * refactor(lsp): remove unwrap() in PerformanceScopeMark drop (#34410) * fix(compile): allow process.chdir() into the VFS (#34610) * perf(runtime): update notify watcher dependency (#34567) * fix(compile): handle CJS and native addons in --bundle (#34529) * feat(task): support --env-file flag (#34508) * feat: bump deno_task_shell to 0.33.0 (#34642) * fix(test): wait for inspector to disconnect before exiting (#34559) * perf(ext/node): optimize empty node:http response end (#34493) * chore: bump tar from 0.4.45 to 0.4.46 (#34545) * fix(crypto): correct X448 PKCS#8 handling (#34578) * fix: link to docs in JSON import error message (#34611) * fix(compile): create code cache when importing JSON or Wasm modules (#34614) * feat(publish): unfurl import specifiers in Wasm modules (#34549) * fix(ext/node): expose gc from v8 setFlagsFromString (#34604) * fix(lsp): discover all tests when names are duplicated (#34624) * fix(ext/node): prevent buffer decode detach race (#34632) * fix(ext/fs): surface non-UTF-8 file names from read_dir (#34623) * fix: send BroadcastChannel messages before close (#34628) * fix(ext/node): honor windowsHide in child_process spawn (#34627) * fix(doc): handle non-ASCII doc lint diagnostics (#34626) * fix(node): support module-sync export condition (#34599) * test: correct source of tiny.wasm reproducer in comments (#34617) * docs: clarify listener close with pending accept (#34612) * feat(unstable): add --bundle flag to `deno compile` (#34527) * fix(compile): support workers loaded from blob URLs (#34574) * fix(compile): respect npm registry sub-paths when flattening node_modules (#34575) * fix(compile): don't surface graph errors for --include files (#34568) * chore: test vm SourceTextModule default import (#34598) * chore(ext/node): strengthen scrypt regression test for 128-byte keylen (#34601) * fix(ext/node): cover node:module SourceMap export (#34591) * fix(ext/http): reject Response-like return from respondWith (#34589) * fix(ext/node): add node:test/reporters builtin (#34595) * fix(node/repl): gate preview through V8 inspector throwOnSideEffect (#34566) * fix(ext/node): add stripTypeScriptTypes export (#34594) * fix(ext/node): add module findPackageJSON export (#34597) * chore: mark test-process-exit-code-validation.js flaky (#34588) * chore: test for describe.only without only failure (#34590) * fix(ext/napi): polyfill libuv thread + semaphore primitives (#34571) * fix: load classic blob worker main script directly (#34592) * fix(test): don't kill the deno process on top-level Deno.exit() (#34564) * fix(ext/node): export syncBuiltinESMExports from node:module (#34593) * fix(npm): downgrade latest tag for release age (#34581) * perf: replace ipnetwork with ipnet (#34580) * fix(ext/node): support vm dynamic import callback (#34572) * fix(jupyter): exit kernel process after sending shutdown reply (#34554) * test(compile): cover more sloppy import patterns (#34569) * fix(lsp): preserve URL extensions in `typeof import(...)` hovers (#34565) * fix(check): resolve npm packages without types when type checking (#34551) * fix(install): rewrite relative imports/scopes in copied deno.json (#34562) * fix(cache_dir): EnsureCachedStrategy must surface cached redirects (#34563) * perf(ext/web): convert hot stream queues to O(1) Queue, cache _state reads (#34437) * chore: update release doc template (#34425) * feat(task): support exclusion groups in task name wildcards (#34506) * perf(ext/node): cache member-export-props analysis (#34471) * fix(config): warn instead of erroring when workspace member dir is missing (#34511) * fix(cli/task): run recursive workspace tasks in parallel (#34512) * fix(compile): embed workspace package.json files in the VFS (#34530) * fix(task): preserve trailing backslashes in task arguments (#34505) * fix(install): allow "minimumDependencyAge" object without "age" (#34523) * fix(bundle): use node-style CJS interop for the Deno platform (#34533) * fix(compile): detect svelte-adapter-deno build output (#34535) * fix(ext/ffi): match V8 stack-arg layout in turbocall trampoline on Apple silicon (#34561) * fix(ext/node): resolve global cache packages when require referrer is outside DENODIR (#34497) * fix(ext/napi): polyfill more libuv symbols from compat layer (#34488) * chore: regression test for @types/node AbortSignal/AbortController merge (#34555) * fix(config): make config auto-discovery skip the same errors on every platform (#34558) * chore: regression test for KV panic on uncaught error with listenQueue (#34553) * fix(cli): suppress bug-report banner on broken pipe print panics (#34552) * fix(jupyter): keep kernel alive across transient peer disconnects (#34550) * chore: upgrade tokio-socks 0.5.1 -> 0.5.3 (#34526) * chore: test X-TypeScript-Types is picked up via import map (#34541) * chore: jupyter regression test for relative imports (#34494) * fix(config): hook up verbatimModuleSyntax for the emit pipeline (#34495) * chore: regression test for unsaved Jupyter notebook panic (#34528) * chore: regression test for listenQueue not blocking main thread (#34537) * fix(runtime): better error message when Deno.consoleSize() has no tty (#34538) * fix(ext/node): tolerate unreadable cwd in require._nodeModulePaths (#34542) * chore: regression test for `deno test --coverage` rejection reporting (#34540) * perf(node): lazy-load node:stream/web cluster out of the snapshot (#34548) * fix(ext/io): cancel pending FileResource reads on close (#34544) * chore: trim unused OpenTelemetry OTLP default features (#34547) * perf(node): lazy stdio + fix LazyEsmModuleLoader source consumption (#34440) * fix(resolver): don't resolve linked packages via bare specifier (#34519) * chore(lsp): regression test for inlay hints on computed property names (#34518) * fix(ext/node): disable repl preview when a custom eval is supplied (#34498) * fix(ext/net): re-enable 0-RTT support in QUIC (#34520) * fix(cache): skip WAL journal mode on WSL-1 (#34499) * fix(ext/node): refuse sqlite close() while a user callback is running (#34515) * fix(ext/http): reject Response-like return from serve handler (#34416) * chore(ext/web): regression test for AbortSignal.any() controller-only GC (#34516) * fix(add): replace panic with error when deno.json discovery fails (#34517) * fix(npm): hoist direct deps over higher transitive versions (#34470) * fix(ext/node): fix latin1Slice being too slow (#34503) * fix(npm): execute native binaries from npm package bin entries (#34375) * fix: reject empty package name in package.json dependencies (#34514) * fix(test): abort with a message when a test exits with sanitizeExit disabled (#34491) * chore(fmt): regression test for svelte switch-case in class interpolation (#34461) * fix(bundle): skip decorator pass when module has no decorators (#34489) * fix(ext/napi): disallow JS execution during napi_new_instance (#34496) * fix(config): warn instead of erroring when start dir is not a workspace member (#34458) * fix(ext/node): drop bogus Buffer.prototype._isBuffer marker (#34502) * feat(ext/crypto): add ML-DSA (FIPS 204) post-quantum signatures (#34448) * fix(core): TLA hang on dyn import when async dep triggers lazy ESM load (#34469) * fix(config): surface invalid "exports" map in linked/workspace packages (#34473) * fix(install): vendor type-only imports during `deno ci` (#34459) * fix(jupyter): use stable PATH entry for kernel binary path (#34492) * perf(ext/node): optimize node:http header matching (#34484) * test: regression test for RequestInit clash with @types/node (#34486) * fix(ext/node): support cyclic imports in vm.Module.prototype.link() (#34472) * test(ext/webgpu): regression test for 2d-array color attachment compute pass corruption (#34485) * fix(jupyter): send transient: {} in execute_result so nbclient doesn't crash (#34483) * chore(test): verify prompt() round-trips Unicode characters (#34482) * refactor: remove simd-json from process IPC parsing (#34477) * ci: only clone needed submodules in node_compat_test workflow (#34333) * feat(ext/crypto): implement ML-KEM (FIPS 203) post-quantum KEM (#34447) * fix(doc): don't lint private-type-ref for cross-package types (#34339) * fix(ext/web): forward console.group label to inspector log (#34341) * fix(ext/node): route node:fs.statfs through FileSystem trait (#34444) * fix(watch): register dynamic raw imports with file watcher (#34463) * fix(ext/console): degrade gracefully when getKeys throws (#24980) (#34464) * fix(watch): restore original cwd between watcher restarts (#34465) * fix(runtime/ops): unwatch shared RecommendedWatcher on FsWatcher close (#34467) * build: disable incremental compilation for release/bench profiles (#34480) * perf: enable safe ICF (identical code folding) when linking (#34478) * test(node_compat): ignore flaky test-dns-any.js (#34474) * perf(ext/node): bulk-build header array and trim header OWS in place (#34443) * perf(web): reduce Brotli CompressionStream binary size (#34432) * refactor: replace lol_html in bundle HTML rewriting (#34408) * fix(ext/node): vm dynamic import without callback throws ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING (#34427) * fix(ext/node): re-export inner spec for module.exports = require(X).Y (#34363) * fix(lsp): surface CSS imports as .js to TypeScript (#34419) * ci: get npm_publish working under pnpm 11 (#34451) * ci: put $PNPM_HOME/bin on PATH for npm_publish global install steps (#34449) * ci: fix npm_publish pnpm install failing under strict-dep-builds (#34445) * perf(ext/node): skip node:http perf timing without observers (#34409) * perf(cli): drop unused deno_ast bundler feature (#34424) * feat(ext/crypto): add ChaCha20-Poly1305, SHAKE, cSHAKE, TurboSHAKE, SHA-3 HMAC (#34417) * chore: add deno_canvas readme (#34423) - Update to version 2.8.1: * 2.8.1 (#34420) * fix(ext/node): emit 'error' event for fs.watch open failures (#34398) * fix(ext/node): tolerate non-AsyncWrap handles in _getNewAsyncId (#34413) * chore(ext/node): regression test for empty buffer TLS write panic (#34412) * fix(pack): remove automatic @deno/shim-deno injection (#34411) * fix(ext/fetch,ext/websocket): check resolved IPs against net deny list (#34236) * fix(ext/node): require env permission for process.loadEnvFile (#34350) * fix(ext/node): prevent panic on `node:sqlite` aggregate method (#34385) * fix(task): walk ancestor node_modules/.bin in BYONM mode (#34364) * feat(bundle): support `browser` field map in package.json (#34407) * fix(runtime): lazy-loaded globals should shadow on inherited [[Set]] (#34405) * fix(bundle): read package.json sideEffects field (#34406) * refactor: replace cache_control with focused parsers (#34402) * perf(ext/node): reuse keep-alive timer in node:http server (#34302) * fix(core): allow host objects to round-trip through core.deserialize (#34380) * fix(ext/node): do not throw NotFound for fs.exists (#34244) * fix(ext/node): extract cert/key from pfx in tls SecureContext (#34383) * fix(ext/node): accept array forms of cert/key/pfx in createSecureContext (#34379) * fix(ext/node): enforce minimum Miller-Rabin rounds in checkPrime (#34391) * fix(cli): clearer error when importing .node addon via ESM (#34361) * fix: support npm: specifiers in --preload and --import (#34346) * fix(ext/node): support PKCS#12 MACs other than SHA-1 (#34342) * fix(inspector): emit NodeWorker.attachedToWorker for late workers (#34377) * fix(ext/node): reset req.reusedSocket on transparent retry (#34376) * fix(ext/node): TLSSocket.authorized=false when client presents no cert (#34381) * fix(http): wake runtime after direct serve dispatch (#34387) * fix(node/util): don't invoke Proxy traps in util.inspect (#34373) * fix(ext/node): add missing node:util APIs getSystemErrorMap, transferableAbortSignal, transferableAbortController (#34372) * fix: panic in deno test --parallel (#34378) * refactor(ext/web): build timers directly on core.createTimer (#34358) * fix(transpile): preserve newlines after multi-line block comments (#34357) * fix(core): keep lazy_loaded_esm sources across concurrent loads (#34353) * fix(upgrade): zstd-compress bsdiff delta patches (#34354) * fix(config): don't panic when --config path can't be converted to URL (#34351) * chore: bump openssl from 0.10.79 to 0.10.80 (#34251) * fix(types): restore brotli in CompressionFormat for dom/webworker libs (#34349) * fix(ext/node): allow omitting arguments in base64Slice (#34318) * fix(ext/node): drop extra positional args in promisified fs.promises.* (#34347) * Revert "fix(ext/node): polyfill module.enableCompileCache and companions" (#34190) (#34348) * test: disable flaky cluster deadlock test (#34325) * chore: regression for JSDoc @example with decorator syntax (#34340) * fix(ext/node): attach register as static on Module (#34305) * refactor: replace quick-junit test reporter dependency (#34315) * refactor: remove shell-escape from install shims (#34313) * fix: allow --inspect=localhost:0 to resolve hostnames (#34230) - Update to version 2.8.0: * 2.8.0 (#34295) * refactor: remove base32 dependency from npm cache encoding (#34293) * perf(ext/net): reduce Quinn TLS provider size (#34294) * perf(ext/node): optimize direct ServerResponse string end (#34253) * feat(install): default to npm for `deno install -g` unprefixed packages (#34290) * feat(cli): add --watch flag to deno check (#34224) * feat(types): add Math.sumPrecise and Intl.Locale.prototype.variants (#34287) * chore: unpin twox-hash and update it to 2.1.2 (#34277) * fix(ext/image): handle bitmaps in `createImageBitmap` correctly (#34285) * feat(cli): accept `deno audit fix` as alias for `deno audit --fix` (#34273) * perf: use panic=abort in release builds (#34280) * perf: consolidate HTTP Brotli compressor setup (#34282) * fix(core): disable include_icu_data feature (#34279) * chore: add back locked-tripwire (#34275) * feat(ext/node): make Network.* CDP events fire under plain --inspect (#34270) * fix(fmt): panic on tagged HTML template with multi-level indent (#34263) * fix(ext/node): node:test with watch-mode events (#34254) * chore: upgrade deno_task_shell to 0.32.0 (#34267) * feat: add `deno ci` subcommand (#34235) * fix(ext/node): Node-compatible TAP reporter for node:test (#34255) * fix(ext/node): flesh out node:trace_events polyfill (#34216) * chore: bump deno_task_shell to 0.31.0 (#34266) * fix(ext/node): implement node:wasi preview1 compat (#34245) * feat: disable ops and resources sanitizers by default in deno test (#33250) * feat: v8 14.9 (#34226) * fix(ext/node): satisfy agent-base node:https stack-trace check (#34264) * fix(ext/node): attach addAbortListener to EventEmitter, fix errorMonitor (#34262) * fix(ext/node): readFile of large file via fd returns scrambled content (#34258) * feat(ext/node): emit Network.* inspector events for node:http (#34231) * feat: stabilize text imports (#34238) * fix(ext/node): expand diagnostics_channel coverage (#34243) * fix(ext/node): improve worker_threads MessagePort compatibility (#34250) * chore: remove unused deps (#34249) * feat(ext/node): support KeyObject structured clone over MessagePort (#34229) * fix(ext/node): throw ERR_INVALID_ARG_VALUE for falsy dns.lookup hostname (#34234) * chore: update sys_traits to 0.1.28 and unpin (#34139) * feat(ext/websocket): emit Network.* inspector events for WebSocket (#34222) * fix(cli): make deno why work with jsr deps (#34227) * refactor: use `ToV8` on enums instead of serde (#31991) * feat(ext/fetch): emit Network.* inspector events for fetch() (#34220) * fix(ext/node): run load hook chain on every require() of a builtin (#34223) * fix(lsp): don't panic on unresolved dts import hover (#34112) * fix(ext/node): module hook fixes for ESM nextLoad, createRequire URL, and builtin redirects (#34219) * perf: lazy-load more modules in the snapshot (#34061) * feat(ext/node): restore module.registerHooks (#34081) * fix(ext/node): support TLS client resume compat tests (#34095) * feat(ext/node): buffer Network.* bodies for inspector body-fetch commands (#34201) * feat(ext/node): expose inspector.isEnabled() via process.binding('inspector') (#34203) * feat(ext/node): implement NodeRuntime.notifyWhenWaitingForDisconnect (#34204) * fix(ext/node): DSA keygen with arbitrary modulusLength (#34206) * chore: enable test-https-connecting-to-http (#34207) * chore: enable test-crypto-keygn-async-rsa node compat test (#34208) * fix(ext/node): export UV_EOF and fix Socket._final without connect (#34211) * chore: ignore async-loader node compat tests (#34210) * test: enable test-inspector-break-e.js (#34205) * chore: skip tests requiring internal JSStream binding (#34199) * chore: ignore tests failing on aarch64 release builds (#34196) * fix(ext/node): avoid panic in vm.createContext loop at isolate teardown (#34195) * fix(ext/node): add process._debugEnd() / process._debugProcess() (#34194) * chore: remove test-import-require-tla-twice failing on aarch64 (#34193) * fix: report eval scripts as `[eval]` URL for inspector (#34192) * chore: enable 397 passing-but-unenabled tests (#34184) * fix(ext/node): polyfill module.enableCompileCache and companions (#34190) * chore: regression test for process._getActiveHandles() in 'exit' handler (#34191) * chore: ignore es-module/test-cjs-legacyMainResolve tests (#34186) * fix(ext/node): add v8.startupSnapshot API polyfill (#34189) * fix(ext/node): per-request executionAsyncResource() for async_hooks (#34188) * fix(ext/node): tls server error message, rejection capture, two compat tests (#34183) * fix(ext/node): improve http server parser compat (#34094) * fix(doc): resolve npm entrypoints without types (#34147) * fix(ext/node): preserve raw socket connect when wrapping TLS (#34093) * fix(ext/node): complete TLS peer cert chains (#34098) * fix(ext/crypto): normalize P-521 SPKI exports (#34087) * fix(node): weakly track util.aborted resources (#34142) * fix(task): escape backticks in forwarded args (#34151) * fix(ext/node): isolate TLS client reject session resumption (#34097) * fix(ext/node): support shouldUpgradeCallback in http server (#34092) * fix(ext/node): add v8.GCProfiler (#34158) * fix(ext/node): implement TCP/TLS socket useUserBuffer (#34164) * chore: mark parallel/test-shadow-realm-* as ignored (#34155) * fix(ext/node): expose internal/net as requireable module (#34152) * fix(ext/node): add v8.queryObjects() and util.queryObjects() (#34159) * fix(ext/node): implement Module._stat (#34157) * fix(ext/node): refresh async id for reused agent sockets (#34138) * fix(ext/node): expose internal webstreams modules (#34107) * fix(ext/node): expose internal/async_hooks as requireable module (#34116) * fix(ext/node): expose internal/tty as requireable module (#34105) * fix(ext/node): add test.expectFailure to node:test (#34130) * fix(ext/node): normalize underscored V8 flags (#34129) * fix(ext/node): add linkRequests/moduleRequests/instantiate to node:vm (#34131) * fix(ext/node): expose internal/options as requireable module (#34117) * fix(ext/node): expose internal/fs/promises with FileHandle (#34118) * fix(ext/node): add active process resources APIs (#34101) * fix(ext/url): align URLSearchParams with Node for node:url compat (#34119) * feat(ext/node): implement Network CDP domain for inspector (#32707) * fix(ext/node): improve node:tls test compatibility (#34067) * fix(ext/node): improve https agent compat (#34091) * fix(ext/node): report directory imports with node error code (#34076) * fix(ext/node): align nextTick ordering in ESM (#34085) * feat(ext/node): add createHistogram to node:perf_hooks (#34003) * fix(ext/node): emit destroy for cleared immediates (#34084) * fix(ext/node): emit deprecation warnings for legacy stream/_tls_wrap requires and module.parent (#34086) * feat(ext/node): implement node:wasi (#34089) * fix(ext/node): expose internal/js_stream_socket and add default read path (#34088) * perf(ext/web): optimize TextEncoder encodeInto result (#34055) * fix(ext/node): reject structuredClone for file-backed Blobs (#34075) * fix(ext/crypto): add SHA3 support to crypto.subtle.digest (#32342) * fix(ext/node): expose `E` and `SystemError` from `internal/errors` (#34080) * Revert module loader hooks stack (#34077) * fix: bump deno_graph to 0.108.2 for wasm multi-value return types (#34070) * fix(task): support recursive task completions in workspaces (#32422) * fix(ext/crypto): validate raw key length on X25519/X448/Ed25519 importKey (#33944) * fix: fix CJS re-export analysis for npm packages (#33263) * fix(test): include --watch=<paths> in watched paths (fixes #21704) (#32621) * refactor(core): pre-resolve child imports before V8 module registration (#34050) * fix(ext/process): respect AbortSignal in Deno.Command.output() (#34069) * fix(ext/node): align node stream `destroy` named export (#33573) * feat(cli): support workspaces in `deno bump-version` (#33689) * refactor(tsc): drop redundant timer globals from Deno libs (#34028) * fix(core): short-circuit async-resolve when it returns an already-registered module (#34058) * fix(ext/fetch): close response_rid when abort races op_fetch_send completion (#33928) * fix(ext/node): surface ERR_REQUIRE_ASYNC_MODULE/CYCLE_MODULE codes and fix TLA retry (#34060) * fix(ext/node): use primordials in internal_binding/symbols.ts (#33865) * feat(ext/node): convert node:url/util/zlib to synthetic_esm (#34041) * fix(ext/websocket): don't panic on H2 stream reset in poll_write (#33982) * feat(core): synthetic_esm extension DSL + node:worker_threads canary (#34038) * fix(ext/node): fire uncaughtExceptionMonitor with correct origin for sync top-level throws (#34048) * fix(ext/node): implement displayErrors for vm scripts (#33942) * fix(ext/node): don't emit ServerResponse 'finish' after client abort (#34026) * fix(ext/node): implement vm.SyntheticModule constructor (#34014) * fix(ext/node): add util.setTraceSigInt stub (#34013) * feat(ext/node): implement postMessageToThread cross-thread messaging (#34015) * fix(ext/node): Worker rejects --heap-prof and --cpu-prof execArgv flags with wrong error (#34011) * ci: fix ARM Linux XL runner label (#34039) * fix(ext/url): URLSearchParams Node-compat error messages on invalid this and missing args (#34017) * refactor(ext/node): merge 02_init.js into 01_require.js (#34035) * ci: use larger ARM Linux runner for release LTO build on main/tags (#34034) * fix(ext/node): implement SocketAddress class (#34020) * fix(ext/node): tagged template literal support for SQL (#34018) * fix(ext/node): detect non-mtime stat changes in StatWatcher (#33950) * ci: use larger Linux runner for LTO release build on main/tags (#34029) * fix(ext/node): close named-pipe handles after child_process.spawn on Windows (#33941) * perf(ext/fetch): skip dict-converter walk on default init in Request/fetch/Response.json (#33999) * fix(node/sqlite): implement DatabaseSync.serialize() and deserialize() (#34010) * fix(ext/node): apply encoding to Dirent name/parentPath in fs.readdir (#33972) * fix(ext/node): prevent top-level `await test(...)` deadlock in node:test (#33947) * fix(node/fs): readSync with position argument returns EINVAL (#34021) * fix(ext/node): skip user module.register() load hooks for node:/ext: builtins (#34006) * fix(ext/napi): run weak-callback finalizers synchronously in second-pass (#34023) * ci: pin rustup-init to 1.28.2 to work around broken 1.29.0 (#34024) * perf(snapshot): dedupe JS sources between binary and v8 snapshot (#33992) * fix(ext/node): MessagePort.on('message') should deduplicate listeners (#33991) * ci: bump cacheVersion to 113 (#34022) * fix(ext/node): expose internal/url so require('internal/url') works (#34012) * perf(ext/webidl): hoist EMPTY_OPTS for converter opts default (#34007) * fix(ext/node): retry named-pipe connect on ERROR_PIPE_BUSY (Windows) (#33974) * feat(npmrc): support min-release-age (#33983) * perf(ext/node): convert net, _tls_common, _tls_wrap to lazy-loaded JS (#33997) * fix(ext/node): apply Deno's resolver inside loader-hook defaultResolve (#33964) * ci: update to use pull_request (#33981) * fix(ext/node): throw OpenSSL-shaped error from tls.createSecureContext when clientCertEngine is set (#33691) * fix(ext/node): omit glibc version fields on musl/non-Linux (#33987) * perf(ext/node): convert _stream_* polyfills to lazy-loaded JS (#33988) * fix(core): evaluate pre-instantiated module in lazy_load_esm_module (#33973) * fix(install): regenerate lockfile with --force on global install (#33970) * perf(ext/node): convert child_process, fs, http, http2, https, inspector to lazy-loaded JS (#33967) * refactor(ext): drop generics from deno_kv and deno_cron extensions (#33966) * fix(install): don't treat JS scripts with non-Node shebang as native binaries (#33971) * fix(workspace): clamp CLI include paths to member folder (#33949) * perf(ext/web): linear-time set/delete on FormData, URLSearchParams, Headers (#33961) * fix: handle native binary bin entries in global npm install (#33935) * perf(ext/node): convert timers, tls, tty, url, v8, worker_threads, zlib to lazy-loaded JS (#33960) * fix(resolver): handle tag version req in byonm resolver (#33962) * perf(ext/node): convert cluster, console, constants, crypto, dgram, dns to lazy-loaded JS (#33951) * perf(ext/node): convert fs internals, timers, tty, url, webstreams to lazy-loaded ESM (#33939) * test: ignore test-domain-no-error-handler-abort-on-uncaught tests (#33937) * perf(ext/node): convert fs helpers, streams, dgram, dns/utils to lazy-loaded ESM (#33936) * feat(ext/node): implement node:module SourceMap API (#32890) * feat(task): prefix output lines with task name when running in parallel (#33805) * fix(core): prevent TLA hang when has_tick_scheduled is set during async module evaluation (#33278) * chore: add Claude Code skills for PR review, issue triage, node compat, and code quality (#33933) * perf(ext/node): convert http2, readline, stream_base_commons to lazy-loaded JS (#33932) * fix(ext/node): enable test-crypto.js node compat test (#33822) * fix(ext/node): node:repl improvements (#33930) * fix(ext/node): node:test improvements (#33929) * perf(ext/node): convert child_process, cluster, console to lazy-loaded JS (#33925) * fix(ext/node): add ERR_REQUIRE_ASYNC_MODULE and ERR_REQUIRE_CYCLE_MODULE error codes (#33921) * perf(ext/node): convert internal/crypto to lazy-loaded JS (#33919) * fix(ext/node): prevent panic when importing node builtins after module.register() (#33920) * perf(ext/node): convert node:path to lazy-loaded JS (#33917) * fix(ext/node): run register() hooks in worker thread, add --experimental-loader flag (#33906) * perf(ext/node): convert more polyfills to lazy-loaded JS (#33913) * fix(ext/tls): upgrade rustls to fix SSL cert validation regression (#33912) * fix(ext/node): drive TLSWrap cycle on JSStream writes to fix deadlock (#33914) * perf(ext/node): convert more polyfills to lazy-loaded JS (#33909) * fix(ext/node): emit diagnostics_channel events for HTTP server (#33908) * perf(ext/node): convert more polyfills to lazy-loaded JS (#33902) * fix(ext/node): implement ALPNCallback and SNICallback for TLS server (#33360) * perf(ext/node): convert more polyfills to lazy-loaded JS (#33900) * fix(node): fix registerHooks for custom file type loaders (#33899) * feat(test): add timeout option to Deno.test() (#33815) * fix(ext/node): add post-resolution deny check in TCPWrap connect (#33880) * perf(ext/node): convert more polyfills to lazy-loaded JS (#33897) * fix: disable V8 external memory check to prevent panic on large TypedArrays (#33896) * test: use local server for ip_address_unsafe_ssl test (#33898) * fix(ext/node): improve module hooks support (#33877) * feat(ext/web): support structured clone for Blob and File (#33827) * perf(ext/node): convert more polyfills to lazy-loaded JS (#33882) * chore: upgrade Rust toolchain to 1.95.0 (#33294) * fix(ext/node): restore llhttp parser.data after execute to handle re-entrant calls (#33832) * fix(ext/node): emit http PerformanceObserver entries for HttpClient and HttpRequest (#33826) * perf(http): don't add Vary header if response is not compressed (#33892) * fix(ext/node): register sigwinch listeners for stdout/stderr (#33890) * chore: disable dns timeout test on windows (#33888) * perf(http): split clear-text HTTP autodetect connection task (#33887) * chore: update aws-lc-rs/aws-lc-sys to eliminate duplicate version (#33885) * fix(ci): disable test-child-process-send-returns-boolean.js on windows (#33883) * fix(ext/node): support abstract Unix sockets in node:net pipe bind (#33872) * fix(ext/node): fix child_process.send() backpressure return value (#33869) * perf(ext/node): convert node:events and stream internals to lazy-loaded JS (#33881) * perf(ext/node): convert node:util, node:assert to lazy-loaded (#33876) * feat(ext/node): support NODE_EXTRA_CA_CERTS (#33148) * feat(core): support lazy_loaded_esm modules via import statements (#33873) * feat(compile): add progress bar for deno compile (#33874) * perf(ext/node): convert more polyfills to lazy-loaded JS (#33871) * perf(ext/node): replace node: imports with core.loadExtScript for buffer and nextTick (#33862) * chore(deps): bump openssl from 0.10.78 to 0.10.79 (#33868) * chore: fix build (#33870) * feat(compile): support module.register() and module.registerHooks() in compiled binaries (#33853) * feat: add --package-json flag to deno add/install/remove/uninstall (#33199) * feat: add `deno pack` command to create npm tarballs (#32139) * fix(init): replace add(2,3) template with Deno.serve HTTP server (#33042) * feat(ext/node): support sending dgram.Socket handles over IPC (#33863) * perf(runtime): convert 8 runtime JS files to lazy-loaded scripts (#33864) * fix(ext/node): skip ESM load hook bridge for CJS modules (#33861) * perf(libs/core): drop libuv-style partial-read break to fix node:http p99 (#33860) * fix(ext/node): handle connectionsCheckingInterval option and send 408 for request timeout (#33836) * feat(ext/node): implement module.register() API (#33849) * fix(watch): apply `--watch-exclude` filter to file change events (#33854) * fix(ext/node): support node:fs APIs on VFS files in deno compile (#33803) * fix(ext/process): tolerate unlinked cwd in spawn (#33587) * fix(npm): resolve catalog: overrides from workspaces object form (#33816) * perf(core): SIMD ASCII fast path for op_decode (#33720) * feat(npm): add hoisted node_modules linker mode (#32788) * feat(ext/node): ESM import() support for module.registerHooks() (#33763) * feat: update TypeScript to 6.0.3 (#32944) * perf(http): directly dispatch into js request handler (#33845) * perf(ext/node): convert 62 more polyfill files to lazy-loaded scripts (#33835) * chore: bump dprint-plugin-typescript to 0.96.0, remove deno-fmt-ignore-file (#33839) * fix(update): `deno update --lockfile-only` should not update config (#33746) * perf(http): avoid ReadableStream when full body already buffered (#33844) * fix(ext/node): implement node:cluster on unix (#33752) * Revert "fix(ext/node): support AES-128-ECB cipher for PKCS#8 private key encryption and decryption" (#33837) * fix(ext/node): pass URL to kOnHeadersComplete when request has no headers (#33831) * feat: include node lib by default and use NodeJS.Timeout for timers (#33823) * fix: include node lib by default and use NodeJS.Timeout for timers (#33823) * fix(ext/node): accept CryptoKey input in createPublicKey/createPrivat… (#33750) * perf(ext/node): convert errors.ts, util.mjs, and foundation layer to lazy-loaded scripts (#33830) * ci: disable flaky Node compat test (#33833) * fix(ext/node): support AES-128-ECB cipher for PKCS#8 private key encryption and decryption (#33809) * fix(ext/node): implement noDelay property on net.Server and apply TCP_NODELAY to accepted (#33828) * fix(ext/node): enable test-crypto-sign-verify node compat test (#33810) * fix(ext/node): fix module resolution for nested package.json files (#33767) * perf(ext/node): convert validators.mjs and dependencies to lazy-loaded scripts (#33821) * fix(ext/node): propagate highWaterMark option from http.createServer to req and res (#33825) * fix(ext/node): emit DEP0192 deprecation warning when _tls_common is required (#33819) * fix(ext/node): enable quic node compat tests by correcting .mjs file extensions in config (#33824) * fix(ext/node): expose http2 test bindings and route pushStream through pushPromise (#33741) * fix(ext/node): throw ERR_INVALID_ARG_VALUE for odd-length headers array in http.ServerResp (#33820) * fix(ext/node): implement AES Key Wrap and Key Wrap with Padding ciphers (#33813) * fix(ext/node): enable test-crypto-rsa-dsa node compat test with DSA encrypted keys (#33811) * perf(ext): convert ext/kv and ext/webgpu JS sources to lazy-loaded scripts (#33818) * perf(ext): convert ext/process and ext/http JS sources to lazy-loaded scripts (#33817) * feat(ext/node): implement vm.SourceTextModule with microtaskMode afterEvaluate support (#33603) * fix(ext/node): enable test-crypto-keygen-async-explicit-elliptic-curve (#33812) * fix(ext/node): align crypto KeyObject PKCS#8 encryption, JWK input and PSS salt with Node (#33757) * fix(ext/node): allow explicit paramEncoding for EC key generation (#33807) * fix(ext/node): share TLS session cache and ticketer for tls.TLSSocket session resumption (#33693) * fix(ext/node): throw correct error for encrypted PEM key in privateDecrypt (#33808) * perf(ext): convert ext/telemetry and ext/cron JS sources to lazy-loaded scripts (#33801) * fix(publish): don't panic on provenance generation in non-GitHub CI (#33802) * fix(ext/node): emit Protocol error when http2 client connects to non-h2 server (#33740) * fix(ext/node): accept ArrayBufferView in tls.setDefaultCACertificates (#33700) * feat: support Deno.upgradeWebSocket with node:http upgrade events (#33342) * perf(ext/fs): convert ext/fs JS source to lazy-loaded script (#33800) * perf(ext): convert ext/cache, ext/canvas, ext/crypto JS sources to lazy-loaded scripts (#33778) * fix(ext/node): emit perf_hooks PerformanceEntry for http2 sessions and streams (#33618) * fix(npm): support `catalog:` protocol in overrides (#33799) * perf: monch 0.6 (#33643) * fix(ext/node): decrypt legacy Proc-Type/DEK-Info encrypted PEM private keys (#33769) * perf(ext): convert ext/fetch JS sources to lazy-loaded scripts (#33784) * fix(ext/node): wire up http2 per-session maxOutstandingPings flag (#33791) * fix(ext/node): TLSSocket.setServername throws typed errors (#33744) * fix(ext/node): fix TLS peer certificate multi-value fields, issuer chain, and EC curve names (#33782) * fix(ext/node): use core.loadExtScript for deno_web/deno_io polyfill deps (#33798) * perf(ext): convert ext/ffi JS source to lazy-loaded script (#33780) * fix(ext/node): support undici dispatcher for allowHTTP1 websocket upgrades (#33731) * fix(ext/node): handle HTTP/2 flow control (#33795) * fix(ext/node): support CA certificate introspection and off-thread loading tests (#33708) * fix(ext/node): implement h2 END_STREAM packing and Http2Session PerformanceObserver entries (#33796) * chore(ext/node): enable parallel/test-http2-client-unescaped-path node compat test (#33789) * fix(ext/node): import/export PKCS#8 and legacy encrypted PEM private keys (#33762) * fix(ext/node): wire HTTP/2 PING ack callbacks and emit payload buffer (#33794) * fix(ext/node): unblock fs.open on FIFOs and read pipes correctly in http2 respondWithFile (#33792) * fix(ext/node): implement ECDH validation and DH verifyError (#33751) * fix(ext/node): enable test-http2-server-shutdown-redundant (#33793) * fix(ext/node): wire http2 maxSettings option to nghttp2_option_set_max_settings (#33790) * perf(ext): convert ext/io, ext/os, ext/net JS sources to lazy-loaded scripts (#33779) * fix(ext/node): wrap process.chdir errors with path/dest/syscall (#33584) * fix(ext/node): support `encoding` option in `fs.watch` (#33634) * perf(ext/fetch): fast-path string in BodyInit_DOMString converter (#33676) * perf(ext/web): add hyper-fast path for TextDecoder.decode (#33674) * fix(ext/node): emit drained server close on next tick for Node parity (#33672) * feat(npm): add `catalog:` protocol for centralized dependency versions in workspaces (#32947) * feat(add/install): default to npm registry for unprefixed packages (#33246) * perf(ext/geometry): avoid heap allocation for the argument that requires a fixed length of sequence (#33688) * perf(ext/web): convert all ext/web JS sources to lazy-loaded scripts (#33760) * feat(core): add async module resolution support via ModuleResolveResponse (#32432) * fix(ext/node): align scrypt behavior and performance with Node (#33773) * test: enable parallel/test-http2-respond-errors.js (#33738) * fix(ext/node): set OSSL error codes and key-type checks in stateless diffieHellman (#33772) * fix(ext/node): throw ERR_CRYPTO_HASH_FINALIZED on subsequent Hash.digest() calls (#33774) * ci: run Node compat tests everyday (#33771) * fix(ext/node): implement missing node:test APIs (#33764) * fix(ext/node): support PKCS#8 encrypted private key PEM export via PBES2 (#33758) * fix(ext/node): decrypt encrypted private keys in publicEncrypt/privateDecrypt and ignore passphrase (#33770) * fix(ext/node): support encrypted PKCS#8 DER private key export and import (#33756) * fix(console): don't trigger proxy get trap for nodejs.util.inspect.custom (#33730) * fix(ext/node): pad DH shared secret and fix prime sign byte for stateless diffieHellman (#33761) * feat: OffscreenCanvas (#29357) * fix(ext/node): use proper error codes for tls.TLSSocket.setServername() (#33745) * feat(ext/telemetry): add gRPC protocol support for OTLP exporter (#30365) * feat(ext/node): implement module.registerHooks() API for CommonJS (#33733) * fix(ext/node): implement mock.getter, mock.setter, mockImplementation in node:test (#33755) * fix(ext/node): handle unhandled rejections in node:test without crashing runner (#33749) * fix(ext/node): support sending net.Socket and net.Server handles to child processes on unix (#33605) * feat(core): add `Deno.core.loadExtScript()` for lazy-loaded scripts (#33739) * fix(ext/node): fix TLS crash with Happy Eyeballs address fallback (#33641) * fix(ext/node): expose Http2Session and nghttp2ErrorString on http2 internalBinding (#33732) * fix(node/tls): handle detached ArrayBuffer in TLSWrap write methods (#33737) * fix(ext/node): validate fs.watch options.ignore (#33574) * perf(ext/node): true writev on tcp sockets for node:http (#33659) * fix(ext/node): route ServerHttp2Stream.respond through binding proto (#33736) * fix(ext/node): expose Http2Session and nghttp2ErrorString on http2 internalBinding (#33742) * feat: framework detection for deno compile (#33164) * fix(repl): drain microtasks after inspector polling to avoid 'Promise was collected' (#33735) * feat(x): add --package/-p flag for specifying package separately from binary (#32855) * feat: add `deno transpile` subcommand (#32691) * fix(ext/web): respect cancelable and passive flags in Event.returnValue setter (#33651) * fix(ext/web): convert MessageEvent ports via WebIDL sequence iteration (#33652) * fix(ext/node): validate data type in Cipheriv/Decipheriv update() (#33649) * fix(ext/node): add emitExperimentalWarning/pendingDeprecate to internal/util, support modifyPrototype option in util.deprecate (#33660) * fix(ext/node): expose internal/util/debuglog and add formatTime helper (#33665) * fix(ext/node): make hideStackFrames actually hide frames, expose internal/validators (#33673) * chore: ignore test-https-client-get-url (#33699) * perf(ext/web): lazy-init EventTarget listeners table (#33734) * fix(ext/node): expose Http2Stream and nghttp2ErrorString on http2 internalBinding (#33729) * perf(ext/webidl): fast path for createDictionaryConverter undefined input (#33692) * chore: disable http2 info headers errors case * perf(ext/web): structuredClone primitive fast path (#33728) * feat(cli): add `deno why` subcommand (#32908) * fix(ext/node): add tls.getCaCertificates() (#32032) * chore: skip test-http2-util-update-options-buffer (internal state buffers) (#33717) * fix(ext/node): defer http2 stream window replenishment while paused (#33640) * fix(ext/node): use queueMicrotask in fs.close to avoid sanitizer false-positive (#33714) * feat: implement `deno audit --fix` (#32909) * fix(ext/node): allow tls.Server SecureContext without cert/key for SNICallback (#33715) * fix(ext/node): bind setImmediate callback this to the Immediate instance (#33716) * fix(ext/node): map rustls record-decode errors to OpenSSL-style "wrong version number" (#33711) * fix(ext/node): expose TLS server name (SNI) on server-side TLSSocket via getServername op (#33725) * fix(node:http2): preserve timeout inspect links on proxied session sockets (#33721) * fix(ext/node): expose http2 internalBinding and add missing HTTP2_HEADER_* constants (#33726) * test: enable parallel/test-dns-lookup-promises-options-deprecated.js (#33710) * test: enable 3 already-passing Node compat tests (#33687) * perf(core): cap V8 platform thread pool to 4 threads (#33697) * perf(ext/websocket): lazy-load WebSocket and WebSocketStream JS (#33701) * test: enable 2 already-passing Node compat tests (#33706) * feat(install): add --os and --arch flags for cross-platform npm installs (#32785) * fix(ext/node): port internal/priority_queue and expose it via require (#33696) * fix(ext/node): dns resolveAny with real ANY query, retry/maxTimeout support (#33577) * fix(ext/node): enforce OpenSSL SECLEVEL key-strength check in createSecureContext (#33686) * fix(ext/node): cancel pending TLS writes when the socket closes (#33690) * feat(install): added --prod to skip dev deps and @types (#33248) * test: ignore parallel/test-fixed-queue.js (#33682) * perf(ext/web): fast path for TextEncoder.encodeInto (#33675) * fix(ext/node): preserve AsyncLocalStorage context across HTTP/2 client streams (#33677) * fix(ext/node): support `signal` option in `fs.watch`/`fs.promises.watch` (#33650) * test: enable 7 already-passing Node compat tests (#33669) * feat(cli): add `deno bump-version` subcommand (#30562) * fix(ext/node): align inspector WebSocket URL with Node.js format (ws://host:port/UUID) (#33592) * feat: use Node.js timers by default and remove global proxy (#33249) * feat: disable "no-process-global", "no-node-globals" lint rules by default (#33247) * fix(ext/node): emit ERR_HTTP2_MAX_PENDING_SETTINGS_ACK via session error instead of throwing (#33679) * fix(ext/node): apply http1Options to HTTP/2 secure server fallback (#33678) * feat(unstable): support TC39 import defer proposal (#32360) * fix(ext/node): add `limits` property on `node:sqlite` DatabaseSync (#33106) * fix(ext/node): expose http2 session setNextStreamID with capital-ID method name (#33666) * fix(ext/fs): run open_async on the blocking pool so FIFO opens don't stall the runtime (#33667) * fix(ext/node): add http2.performServerHandshake to polyfill (#33668) * fix(ext/node): emit DEP0111/DEP0119 from process.binding under --pending-deprecation (#33594) * fix(ext/node): bind to IPv6 wildcard for default Server.listen() to enable dual-stack (#33617) * fix(ext/node): forward http2 protocol errors from invalid frame callback to session error event (#33630) * fix(ext/node): send http2 GOAWAY before stream RSTs so peer sees session destroy code (#33637) * fix(ext/node): emit ERR_HTTP2_TOO_MANY_INVALID_FRAMES for empty DATA frames without END_STREAM (#33644) * fix(ext/node): use ASCII byte-truncation in http2 writeAsciiString polyfill (#33645) * feat(unstable): Geometry Interfaces Module Level 1 (#27527) - Update to version 2.7.14: * 2.7.14 (#33639) * feat(upgrade): delta updates via bsdiff patches (#33274) * fix(ext/node): treat unsolicited HTTP/2 PING ACK as connection-level protocol error (#33625) * chore: ignore parallel/test-http2-debug.js (#33628) * fix(ext/node): implement dns Resolver cancel() and timeout support (#33580) * fix(ext/web): retain `source` from MessageEventInit (#33500) * test: enable 9 already-passing Node compat tests (#33582) * fix(ext/node): submit http2 RST_STREAM before flushing END_STREAM DATA frame on respondWithFD read (#33633) * fix(ext/node): emit http2 frameError on send failure with translated HTTP/2 error code (#33631) * fix(ext/node): make http2 session.origin() round-trip origins and respect TLS servername (#33629) * fix(ext/node): use proper error codes for require() invalid arguments (#33609) * fix(ext/node): validate ciphers option in tls.createSecureContext() (#33597) * fix(ext/node): fix TLS client certificate authentication verification (#33576) * fix(ext/node): align node:test `it`/`describe` with Node, enable passing compat tests (#33593) * fix(ext/node): validate `fs.watch` boolean options (#33627) * fix(ext/node): brand-check SecureContext._external accessor (#33569) * fix(ext/node): support `ignore` option in `fs.watch` and `fs.promises.watch` (#33610) * fix(ext/node): allow `https.Agent()` without `new`, enable passing compat tests (#33601) * fix(ext/node): correct buffer-length check in `Readable._fromList` decoder branch (#33624) * fix(config): don't exclude workspace members from deploy file patterns (#33562) * fix(ext/net): default Deno.listenDatagram hostname to 0.0.0.0 (#33496) * fix(ext/node): close fd on error in http2 stream respondWithFile (#33614) * fix(ext/node): expose http2 sensitive headers received with NV_FLAG_NO_INDEX flag (#33626) * fix(ext/node): defer drain in http2 shutdownWritable so pushStream after end() works (#33619) * fix(ext/node): forward enableConnectProtocol setting to peer in HTTP/2 SETTINGS frame (#33616) * fix(ext/node): honor weight option in http2 client.request and emit DEP0194 (#33622) * chore: enable parallel/test-http2-generic-streams-sendfile (#33620) * chore: enable parallel/test-http2-write-finishes-after-stream-destroy (#33621) * chore: enable parallel/test-http2-server-close-idle-connection.js (#33615) * chore: enable parallel/test-http2-client-proxy-over-http2 (#33613) * fix(ext/node): plumb llhttp error code, reason, and bytes parsed through HTTPParser (#33591) * fix(ext/node): add _idleStart and _idleTimeout to Timeout (#33604) * fix(ext/node): rename _destroySsl to _destroySSL to match Node.js API (#33599) * chore: disable flaky node compat test (test-child-process-stdio-reuse-readable-stdio.js) (#33602) * Revert "fix(ext/node): make IPC writes synchronous to match Node.js behavior (#33522)" (#33598) * ci: shard node_compat tests into 3 parallel jobs (#33600) * fix(ext/node): fix closeIdleConnections destroying active connections (#33596) * test: ignore test-trace-events-bootstrap.js (#33590) * fix(ext/node): improve perf_hooks timerify and add missing exports (#33581) * fix(ext/node): throw ERR_INVALID_ARG_VALUE when rmdir gets options.recursive (#33565) * fix(ext/node): use ERR_INVALID_ARG_TYPE for tls.createServer non-object options (#33589) * fix(ext/node): fix TLS socket error ordering and app data leak before identity verification (#33585) * fix(ext/node): implement dns.reverse() and fix dns.lookup() family parameter (#33579) * fix(ext/node): implement node:cluster fork/Worker and worker-side detection (#33493) * fix(ext/node): handle undefined http2 ping payload and cancel pending pings on destroy (#33561) * fix(ext/node): cancelling Readable.toWeb(req) no longer destroys the socket (#33570) * fix(ext/node): strip trailing dot from SRV target in dns.resolveSrv() (#33578) * fix(ext/node): track http2 custom settings and SETTINGS ACK callbacks (#33518) * fix(ext/node): http2 createConnection support and per-frame socket writes (#33520) * fix(task): use explicit workspace root check in directory-name fallback (#33540) * fix(ext/webidl): set ERR_ILLEGAL_CONSTRUCTOR code on illegal constructor calls (#33535) * test: enable 7 already-passing Node compat tests (#33568) * fix(ext/node): make IPC writes synchronous to match Node.js behavior (#33522) * chore: enable parallel/test-worker-http2-generic-streams-terminate (#33563) * fix(ext/node): flush GOAWAY before destroying http2 socket and expose internal/http2/core (#33566) * fix(ext/node): validate options.type in Readable.toWeb (#33560) * chore(tests): enable 158 passing node compat tests (part 2/3) (#33411) * fix(ext/node): fix spawnSync internal API for monkey-patching and killSignal (#33545) * fix(ext/node): yield to I/O in http2 write path so stream pipeline finishes (#33541) * fix(ext/node): align util.styleText with Node (#33547) * fix(ext/node): null-proto child_process options to block prototype pollution (#33555) * fix(ext/node): use AbortSignal.addEventListener in addAbortListener (#33557) * fix(ext/node): wire up captureRejection handler for http2 servers (#33542) * fix(ext/node): align node:module behavior with Node (#33482) * fix(ext/node): wire JSStreamSocket handle write/shutdown for http2 (#33526) * fix(ext/node): encode http2 headers as Latin-1 to fix response splitting (#33531) * fix(ext/node): pass stream fd to child process stdio instead of inheriting (#33525) * fix(ext/node): fix TLS socket lifecycle and readStop backpressure (#33524) * fix(ext/node): implement fs.mkdtempDisposableSync / fsPromises.mkdtempDisposable (#33533) * fix(ext/node): prevent duplicate close emit when http2 client socket i (#33538) * test: ignore test-child-process-spawnsync-shell compat test (#33532) * fix(ext/node): pass reusePort flags in Server.listen() without host (#33530) * feat(ext/node): add fs.Utf8Stream * fix(ext/node): enforce HTTP/2 server header list size limits (#33494) * fix(ext/node): enforce http2 maxSessionInvalidFrames limit (#33515) * fix(ext/node): support v1 X.509 certs and http2 ALPN fallback (#33510) * fix(ext/node): support ALPNCallback in http2.createSecureServer (#33521) * fix(ext/node): timer _destroyed flag, Symbol.dispose, and setInterval abort (#33528) * perf: optimize worker and MessagePort message passing (#32657) * test(node_compat): enroll parallel/test-crypto-hash-stream-pipe.js (#33519) * fix(task): match workspace directory name in --filter (#33499) * fix(ext/node): isolate parentPort from globalThis in worker_threads (#32596) * fix(coverage): exclude transformer-injected helpers from coverage (#33481) * fix: match single-char wildcard segments in npm package imports (#33513) * fix(ext/node): use node:timers for http server connection checks, expo (#33483) * 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): accept X.509v1 server certs in tls.createServer (#33505) * fix(ext/node): emit stream-level PROTOCOL_ERROR in node:http2 * fix(ext/bundle): clearer error when Deno.bundle is called in compiled binary (#33503) * fix(ext/node): emit Buffer for http2 'goaway' opaqueData (#33502) * fix(ext/node): support encoding option in fs.readdir; don't double-call glob callback (#33501) * fix(ext/fetch): don't mutate caller's options in Deno.createHttpClient (#33497) * fix(bundle): treat CSS same-document fragment URLs as external (#33492) * fix(ext/node): fix EEXIST error and data loss in writeFileSync on Windows (#33413) * fix(ext/node): support util.promisify on http2.connect (#33489) * fix(ext/node): honor http2 strictFieldWhitespaceValidation option (#33506) * test: enable parallel/test-http2-too-many-streams.js (#33507) * fix(ext/node): rebind http2 state buffers post-snapshot, enforce maxHeaderListPairs (#33495) * chore: clean up WPT runner output (#33487) * fix(ext/fs): normalize Deno.watchFs paths so events drop ./ segments (#33490) * fix(ext/node): improve Node.js timer compatibility (#33479) * fix(ext/web): narrow ReadableStreamBYOBRequest.view to Uint8Array (#33477) * fix(ext/node): emit HPE_INVALID_TRANSFER_ENCODING for CL+chunked respo (#33488) * fix(ext/web): allow transferring non-serializable types in structuredClone (#33491) * chore(tests): enable 157 passing node compat tests (part 3/3) (#33412) * fix(ext/node): return relative path from fs.watch with recursive option (#33428) * chore(wpt): update cache-storage-keys expectation after #33275 (#33484) * fix(ext/web): structuredClone of non-serializable Web types throws DataCloneError (#33465) * fix(ext/node): emit DEP0182 deprecation for short AES-GCM auth tag (#33469) * fix(ext/webidl): set ERR_INVALID_THIS code on brand-check TypeError (#33467) * chore(tests): enable 158 passing node compat tests (part 1/3) (#33410) * fix(ext/web): handle late write racing with TransformStream cancel (#33478) * fix(ext/web): set ERR_MISSING_ARGS code on URL.revokeObjectURL no-arg (#33471) * fix(x): forward --unstable-* flags to JSR and URL targets (#33450) * fix(ext/node): validate boolean arg in process.setSourceMapsEnabled (#33473) * fix(ext/node): align crypto random* validation with Node (#33456) * fix(permissions): normalize paths for macOS filesystem comparison (#33451) * fix(ext/node): emit TimeoutNaNWarning for invalid timer durations (#33472) * fix(ext/node): make Buffer.prototype methods generic-callable (#33466) * fix(ext/node): emit DEP0031 deprecation warning for ecdh.setPublicKey( (#33468) * fix(ext/crypto): throw TypeMismatchError for non-TypedArray in getRand (#33470) * fix(cache): add missing CacheStorage.keys() and Cache.keys() methods (#33275) * fix(ext/node): walk sandbox prototype chain in vm property_query (#33463) * fix(doc): remove background from operators in dark mode code blocks (#33267) * fix(ext/node): enable test-als-defaultvalue-original (AsyncLocalStorage default value) (#33464) * fix: bound fs.readFile on non-terminating sources (#33262) * fix(ext/node): use ERR_INVALID_ARG_VALUE in module.createRequire (#33449) * fix: drop config-only unstable features from unstable_args() (#33452) * test: enable 20 already-passing Node compat tests (#33461) * test: ignore parallel/test-webcrypto-webidl.js (#33454) * fix(ext/web): align AbortSignal.timeout error message with Node (#33460) * test: ignore 3 unsupportable crypto tests (#33455) * fix(ext/node): add Server BlockList, asyncDispose, and misc net improvements (#33417) * fix(ext/node): pass signal name to process signal handlers (#33425) * test: ignore 2 unsupportable crypto tests (#33457) * fix(ext/node): honor requestCert/ca on node:tls server, populate getPeerCertificate() (#33439) * fix(ext/node): implement StatWatcher.ref() / unref() (#33408) * fix(ext/node): use Node's address-type check in dgram Socket.send (#33420) * test: ignore parallel/test-crypto-fips.js (#33453) * fix(ext/node): validate process.chdir argument is a string (#33401) * fix(ext/node): replace unwrap with error propagation in parallel cp (#33396) * fix(ext/node): emit tlsClientError instead of crashing on TLS init failure (#33429) * fix(ext/node): align fs.truncate / ftruncate argument validation with Node (#33418) * fix(ext/node): throw ERR_INVALID_URL from http/https request string URL (#33427) * fix(ext/node): cache hash digest so it survives stream.pipeline (#33440) * fix(ext/node): implement BlockList.rules / isBlockList / toJSON / fromJSON (#33445) * fix(ext/node): validate dgram options.recvBufferSize / sendBufferSize (#33444) * fix(ext/node): emit StatWatcher 'stop' event asynchronously (#33448) * fix(ext/node): attach path/syscall to fs.lstat / realpath / link errors (#33446) * fix(ext/web): route console.dirxml through the log printer (#33443) * fix(ext/fetch): use byte ReadableStream for Node Readable request bodies (#33432) * fix(ext/node): make process.constructor a proper instanceof check (#33447) * fix(ext/node): include accepted values in Console colorMode error (#33424) * fix(ext/node): fix ERR_INVALID_CHAR message & OutgoingMessage.prototype.write (#33430) * docs: clarify --watch-hmr does not restart on file changes (#33381) * fix(ext/node): import kIncomingMessage/kServerResponse in http2 allowHTTP1 fallback (#33435) * chore: bump tokio-eld to 0.3 to fix UAF causing deno test SIGSEGV (#33375) * fix(ext/node): implement Socket.resetAndDestroy with TCP RST in node:net (#33415) * fix(ext/node): async fs.stat/lstat throwIfNoEntry + deprecate fs.Stats (#33436) * perf: upgrade rusty_v8 to 147.4.0 (#33422) * perf(ext/node): pool 64KB read buffers to reduce allocation pressure (#33395) * fix(node/compat): fix shard report merging and fetching in CI reporting (#33431) * fix(ext/node): support BlockList, AbortSignal, and constructor options in node:net Socket (#33414) * 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(ext/node): accept string mode in fs.mkdir and fs.mkdirSync (#33409) * fix(ext/node): validate oaepHash in publicEncrypt/privateDecrypt (#33388) * fix(ext/node): implement process.debugPort with ToInt32 coercion (#33403) * ci: shard node_compat tests into 3 parallel jobs (#33298) * fix(node/buffer): fix panic in transcode with odd-length UTF-16LE input (#33390) * fix(ext/node): drain pending TLS cleartext in enc_write_cb (#33378) * fix(ext/node): reject non-ArrayBufferView data in fs.writeFileSync (#33406) * fix(ext/node): attach input URL to ERR_INVALID_FILE_URL_PATH (#33398) * fix(ext/node): name custom-promisified functions after their originals (#33407) * fix(ext/node): throw TypeError for Symbol keys/values in process.env (#33399) * fix(ext/node): hide aggregateTwoErrors frame in AggregateError stack (#33402) * fix(ext/node): align module.builtinModules / getBuiltinModule with Node (#33404) * fix(ext/node): flush HTTP/2 client preface after settings submission (#33387) * fix(ext/node): encode more chars in url.pathToFileURL() (#33397) * chore(deps): bump openssl from 0.10.72 to 0.10.78 (#33376) * fix(ext/node): re-arm Windows named pipe server after accept (#33369) * fix(ext/node): fix fs.glob skipping siblings with **/../* patterns (#33372) * Revert "fix(ext/napi): implement real V8 handle scopes and callback scopes" (#33363) * fix(ext/napi): implement napi_async_init and napi_async_destroy (#33282) - Update to version 2.7.13: * 2.7.13 (#33359) * perf(ext/node): elide async_hooks emit in timers when no hooks registered (#33355) * fix(ext/node): enable HTTP parser consume fast path (#33354) * perf(ext/node): flush-free header fast path in HTTP parser (#33351) * fix(ext/node): free uv_write and uv_shutdown requests in every exit path (#33350) * perf(libs/core): poll only ready handles and yield between I/O batches (#33349) * perf(ext/node): reduce writev op allocations and write copies (#33352) * fix(ext/node): http client compat improvements (#33337) * fix(ext/node): support FD-indexed stdio inheritance in spawnSync (#33341) * refactor: replace ext/web timer imports with core timers or node:timers (#33121) * perf: reduce memory usage of Command.output() (#33335) * fix(ext/napi): defer GC weak-callback finalizers to the event loop (#33260) * fix(ext/http): treat empty Host header as missing in request URL (#33234) * fix(ext/node): http2 improvements — constants, error codes, settings, validation (#33332) * fix(ext/node): improve node:tls compat (validation, pipes, JS streams) (#33331) * fix: update v8 crate to 147.2.1 (#33318) * fix(ext/node): fix multiple http2 bugs (#33315) * fix(ext/napi): implement zero-copy external Latin-1 strings (#33283) * fix(ext/node): support RSA-PSS keys in crypto.verify with null algorithm (#33314) * fix(ext/node): defer JS stream encOut to avoid reentrant CppGC borrow (#33304) * fix(ext/node): ChildProcess.kill() returns false when process already exited (#33305) * test(npm): add regression test for update breaking peer dep lockfile entries (#33309) * fix(ext/napi): implement real V8 handle scopes and callback scopes (#33281) * fix(ext/node): auto-start server-side STARTTLS handshake, add TLS upgrade tests (#33303) * fix(runtime): warn on unsupported web Worker options and fix recv panic (#33310) * fix(ext/node): enforce maxHeaderSize in HTTP parser (#33306) * fix(ext/node): address node:http rewrite review comments (#33299) * fix(ext/node): flush HTTP/2 HEADERS frame after client request (#33300) * refactor(ext/node): remove JS LibuvStreamWrap class (#33297) * refactor(ext/node): use native LibUvStreamWrap based Wrap's to reduce code duplication (#33301) * fix(ext/node): fix playwright on windows (#33295) * fix(audit): migrate to bulk advisory endpoint (#33292) * fix(console): find nodejs.util.inspect.custom on Proxy objects via get trap (#33265) * feat(ext/node): rewrite node:http with llhttp and native TCPWrap (#33208) * fix(ext/node): fix Module._resolveLookupPaths and require.resolve compat (#33261) * fix(test): fix specific_canary upgrade test on Windows (#33286) * test: fetch latest canary hash dynamically in specific_canary test (#33279) * fix: add note for canary's 30-day retention period (#33271) * ci: fix false positives in no-deno-api lint plugin (#33270) * fix(doc): Add Prism support for JSX/TSX code blocks (#33255) * feat(upgrade): support installing from a PR (#33252) * fix: restore glibc < 2.27 compatibility for Linux release builds (#33259) * fix(ext/node): fix EEXIST error and file corruption with writeFileSync on Windows (#33253) * chore: upgrade rusty_v8 to 147.1.0 (#33235) * feat(ext/node): implement node:repl module (#32799) - Update to version 2.7.12: * 2.7.12 (#33227) * fix(permissions): normalize IPv4-mapped IPv6 addresses in net permission checks (#33223) * fix(core): fix uv_pipe_open handle lifecycle to match libuv (#33225) * test(permissions): add proptest property-based tests (#33224) * feat(ext/node): add fs.SyncWriteStream (#33226) * refactor: remove _readWithCancelHandle from Stdin (#33222) * fix(core): handle WouldBlock in op_print for non-blocking stdio (#33221) * test: prevent task/signals spec test from hanging in CI (#33020) * fix(permissions): check deny rules against resolved IPs to prevent numeric hostname bypass (#33203) * fix(io): remove global stdio statics, handle non-blocking stdin (#33219) * perf(ext/node): use aws-lc-sys EVP API for chacha20-poly1305 (#33110) * fix(ext/napi): use per-isolate Private key for napi_wrap/napi_unwrap (#33204) * Revert "feat: disable ops and resources sanitizers by default in deno test (#33158) (#33215) * feat(ext/node): add llhttp-based HTTPParser with native cppgc binding (#33202) * fix(runtime): cache canonicalized watch paths, fix spurious events (#33123) * Revert "feat(install): added --prod to skip dev deps and @types (#32863) (#33212) * Revert "feat: use Node.js timers by default (#33118)" (#33211) * test(permissions): add missing unit tests for permission system (#33207) * Revert "feat: disable "no-process-global", "no-node-globals" lint rules by default (#33147) (#33213) * Revert "feat(add/install): default to npm registry for unprefixed packages (#33156) (#33214) * fix(core): free UvLoopInner on uv_loop_t drop to prevent worker memory leak (#33200) * fix(ext/node): throw on cipher update with input >= 2^31-1 bytes (#33201) * fix(node): validate resolved main path stays within package directory (#33170) * refactor(ext/node): wire up native TLSWrap from JS (#33184) * fix(ext/webgpu): accept `ArrayBuffer` in `GPUQueue.writeBuffer()` as data source (#33152) * fix(core): use c_char instead of i8 in uv_buf_t base cast (#33179) * fix(ext/node): add dns.getDefaultResultOrder() API (#33197) * fix(otel): add timeout to OTEL HTTP exporter to prevent hangs (#33159) * fix(schema): fix the `publish: false` of deno.json schema (#33196) * feat: native uv_pipe_t implementation with NativePipe and FdTable (#33165) * fix(repl): surface CDP protocol errors and fix race in wait_for_response (#33190) * feat(ext/node): add native TLSWrap cppgc object (Rust core) (#33183) * refactor(ext/node): prep for native TLSWrap (#33182) * refactor(ext/process): bypass resource table for Node child_process stdio (#33176) * fix(ext/node): implement uv_ref for native TCP handles (#33174) * fix(ext/node): remove dead legacy TCP server accept path (#33172) * refactor: move FdTable to ext/io (#33169) * Revert "feat(unstable): add deno tsconfig subcommand (#33160)" (#33162) * feat(unstable): add `deno tsconfig` subcommand (#33160) * fix(ext/node): implement timeout, killSignal, and pid for child_process spawnSync (#32810) * feat: disable ops and resources sanitizers by default in deno test (#33158) * fix(ext/node): implement TCP.open(fd) (#33155) * feat(add/install): default to npm registry for unprefixed packages (#33156) * feat: disable "no-process-global", "no-node-globals" lint rules by default (#33147) * fix(ext/node): create net.Socket from file descriptors (#33150) * fix(ext/node): support numeric FDs in child_process stdio array (#33140) * fix(ext/node): rewrite Pipe.open(fd) to use raw fd ops (#33136) * fix: linked packages with peer deps failing to cache from lockfile (#33143) * refactor: remove forked typescript-go infrastructure (#33133) * feat(install): added --prod to skip dev deps and @types (#32863) * fix: update release template workflow URLs to .generated.yml (#33116) * refactor(ext/node): rework stream wrap infrastructure for reentrant safety (#33100) * fix(ext/node): return real OS file descriptors from node:fs APIs (#33039) * refactor: remove Node/Deno global proxy and simplify CJS wrapper (#33122) * feat: use Node.js timers by default (#33118) * refactor: remove LSP integration from repl and jupyter (#33119) - Update to version 2.7.11: * 2.7.11 (#33114) * ci: fix start_release workflow (#33113) * ci: remove stale gha-creds cleanup after gcloud removal (#33112) * fix(ext/node): fire fs.watch events for immediate writes (#32935) (#32989) * ci: update to gagen 0.3 for maintainable pinning of all workflow dependencies (#33082) * feat: add alpha and beta release channel support (#33098) * fix(watch): reduce graceful shutdown timeout from 5s to 500ms (#33099) * ci: remove legacy gcloud upload (#33088) - Update to version 2.7.10: * 2.7.10 (#33092) * fix(ext/node): add chacha20-poly1305 cipher support (#33084) * fix(ext/node): improve sign/verify crypto compat with Node.js (#33083) * fix(ext/node): return pid from spawnSync (#33081) * fix(ext/node): improve GCM cipher compat with Node.js (#33079) * feat: add include and exclude fields to compile config (#33024) * fix(ext/node): drain pending messages before emitting worker exit event (#32623) * fix(ext/node): fix BadResource error in FileHandle.readLines() (#32685) * fix: use case-insensitive path matching for permissions on Windows (#33073) * fix(resolver): resolve npm packages that shadow Node built-in names in BYONM mode (#32865) * fix(outdated): use dist-tags.latest for Latest column, matching npm/pnpm/bun (#32939) * fix(npm): resolve linked packages not published to npm registry (#33021) * fix(ext/web): fix infinite loop in WebTransport datagram overflow handling (#33075) * docs: clarify mkdir does not throw with recursive: true (#33019) * fix(serde_v8): use actual bytes written in to_utf8_slow (#33074) * fix(ext/node): escape shell metacharacters in child_process args on Windows (#33071) * fix(lsp): don't double-encode query/fragment in notebook cell URIs (#33070) * fix(install): all package.json aliases should be added to node_modules (#33068) * fix(ext/http): gracefully handle consumed external in OTel ops (#33027) * chore: Use *mut _ and *const _ for type inference (#33053) * fix(lsp): suggest import map aliases in auto-imports for local directories (#33048) * chore(ext/node): remove unused op_node_is_tty (#33045) * chore: upgrade sys_traits 0.1.27 (#33040) * fix(ext/node): `process.argv[0]` is equivalent to execPath (#28915) - Update to version 2.7.9: * 2.7.9 (#33022) * Revert "fix(ext/node): support numeric FDs in child_process stdio array (#32959)" (#33017) * refactor(core): libuv compatibility improvements for uv_compat (#33015) * fix(compile): strip duplicate exe path from argv when standalone binary relaunches (#33016) * fix(publish): vite import.meta.hot not type checking (#32127) * fix(ext/node): rewrite Windows TTY reading to match libuv (console mode, encoding, raw + line mode) (#32999) * fix(ext/node): add Symbol.dispose and Symbol.asyncDispose to fs.Dir (#33000) * fix(ext/http): use clone_external in op_http_metric_handle_otel_error (#33005) * fix(ext/node): use constant-time comparison for secret key equality (#32994) * fix(compile): use execPath for process.argv[1] in standalone binaries (#32990) * fix(ext/node): `util.stripVTControlCharacters` compatibility (#32942) * refactor(core): reduce JS<->Rust event loop hops (#32844) * chore: add lint plugin to track Deno.* API usage in node polyfills (#32964) * perf(ops): replace per-op generated slow metrics wrappers with shared dispatch (#32889) * test: add edge case and worker termination tests for Node-API (#32986) * test: mark unsupported Node compat tests as ignored (#32956) * fix(cli): show clean error instead of panic for invalid --unsafely-ignore-certificate-errors value (#32868) - Update to version 2.7.8: * 2.7.8 (#32985) * test(napi): add more coverage for advanced features (#32963) * fix(resolver): fall through to .deno/ when BYONM node_modules version mismatches (#32981) * fix(compile): skip Node-to-Deno arg translation in standalone binaries (#32980) * fix(npm): use box-drawing style for deprecated package warnings (#32979) * fix(ext/node): support http2 createConnection sockets (#32733) * fix: include Temporal types in deno types output (#32952) * fix(resolver): prefer exact version match in BYONM npm resolution (#32977) * fix(cli): fix arrow keys in interactive picker on Windows (#32978) * fix(ext/node): support numeric FDs in child_process stdio array (#32959) * fix(cli): parse --frozen flag for deno update and deno outdated (#32975) * fix(lockfile): truncate frozen lockfile error diff to 50 lines (#32976) * fix: handle inner quotes in double-quoted env values in .env file (#32930) * refactor: use sys_traits more in deno_npmrc (#32955) * test(napi): add coverage tests for data types and object operations (#32962) * chore: upgrade V8 to 147.0.0 (#32965) * fix(napi): add test coverage and fix escape_handle/throw bugs (#32960) * fix(ext/node): close libuv handle on HandleWrap.close() for new-style handles (#32958) * fix(ext/napi): pass valid env to tsfn call_js_cb after close race (#32957) * fix(node/http): stop leaking TCP wrappers on HTTPS upgrade with createConnection TLSSocket (#32961) * feat(ext/telemetry): add console exporter for OpenTelemetry (#32717) * fix(fmt): delegate component expression formatting to markup_fmt (#29763) * fix(ext/node): `fs.cp` across allowed dirs with ignored read permissions (#32927) * fix(fmt): update markup_fmt to 0.27.0 and malva to 0.15.2 (#32949) * fix(ext/node): drain all ready connections in poll_tcp_handle to prevent accept starvation (#32943) * refactor(core): use uv_check_t handle for setImmediate (#32879) * fix(ext/web): handle null options in removeEventListener (#32605) * docs: fix duplicated wording in LSP symbol comments (#32368) * fix(inspector): send executionContextDestroyed on process.exit() (#32934) * docs: update Claude instructions (#32818) * feat(ext/napi): add node_api_create_object_with_named_properties (#32906) * chore: consolidate Copilot review instructions and add runtime-aware guidelines (#32938) * fix(npm): skip `file:` and `link:` dependencies in npm packages (#32876) * refactor: `deno_npmrc` crate (#32936) * feat(core): implement NodeRuntime CDP domain and fix --inspect-brk blocking (#32714) * fix(ext/node): defer uv_write callbacks to prevent re-entrancy panic (#32919) * fix(ext/node): fix node:domain across async boundaries (#32897) * fix(ext/web): AbortSignal.any() memory leak with long-lived signals (#32916) * fix(ext/node): fix IPC stdio handling in child_process (#32920) * perf(ext/web): use simdutf for base64 encode/decode (#32743) * fix(ext/node): fix Buffer.concat truncating buffers larger than 4GB (#32913) * fix(ext/node): set fd property on TTY ReadStream and WriteStream (#32880) * fix(ext/node): enable node:fs compat tests + lchmod fix (#32892) * 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): child_process improvements (internalMessage, argv0, DEP0190) (#32885) * fix(ext/console): handle throwing Symbol.toStringTag getter gracefully (#32917) * fix(ext/node): do not throw error for `readline.createInterface` outside TTY (#32874) * chore: update deno_doc crate (#32896) * ci: add Copilot review instructions (#32887) * chore(deps): bump aws-lc-sys from 0.38.0 to 0.39.0 (#32883) * fix: skip flaky test-process-threadCpuUsage-worker-threads on Windows (#32886) * chore(deps): bump tar from 0.4.43 to 0.4.45 (#32882) * fix(audit): respect package.json overrides in vulnerability checks (#32878) * fix(npm): create shims for all bin entries during global npm install (#32607) * fix(ext/node): pass uid/gid to spawn and implement process.getgroups (#32772) * fix(ext/node): sqlite prepare() options, defensive default, iterator invalidation (#32756) * perf: upgrade to jsonc-parser 0.32 (#32864) * fix(ext/node): don't fire upgrade event for h2c requests (#32866) * fix(ext/node): update process.versions.napi to 9 (#32870) * fix(ext/node): improve process.hrtime argument validation (#32837) * fix(ext/node): implement process.threadCpuUsage() (#32829) * fix(ext/node): freeze os.constants.signals to match Node.js (#32836) * fix(ext/node): enable node compat test for v8.getHeapStatistics (#32833) * fix: rewrite approve_scripts_no_lock as PTY tests, skip lockfile test on Windows (#32853) * fix(npm): `approve-scripts` detects packages when lockfile is disabled (#32842) * refactor(core): clean up timer implementation, build web timers on Node Timeout (#32843) * fix(ext/node): emit request "close" before socket "free" in keep-alive path (#32811) * test: add per-file timeout and reduce CI job timeout (#32840) * feat(ext/crypto): implement P-521 sign, verify, and ECDH derive (#32602) * feat: use lockfile from jsr package for global install (#32490) * fix: make flamegraph SVG fill full browser viewport (#32727) * feat(ext/telemetry): copy relevant span attributes to HTTP metrics (#32720) * refactor(core): move timer processing from Rust to JavaScript (#32543) * fix(ext/node): improve readline and EventEmitter compat (#32826) * docs: update contributing guidelines (#32747) - Update to version 2.7.7: * 2.7.7 (#32835) * 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(watch): support graceful shutdown via SIGTERM dispatch (#32564) * fix(ext/node): set kLastWriteWasAsync in JS write path to prevent double callback (#32814) * fix(core): implement select fallback on macOS (#32812) * 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(ext/node): skip normalization in path.win32.join for reserved device names (#32808) * fix(ext/node): add disabled process function stubs in worker threads (#32809) * fix(ext/node): improve process.title and support --title flag (#32201) * fix(ext/node): support interface option for IPv6 multicast membership (#32754) * chore: re-enable compile determinism test (#31651) * perf(ext/webidl): optimize dictionary converters (#32729) - Update to version 2.7.6: * 2.7.6 (#32800) * fix(ext/node): fix 8 Node.js compat test failures (#32755) * perf(ext/web): optimize URLPattern ops to reduce serde overhead and GC pressure (#32766) * feat(core): update v8 to 146.8.0 with foreground task ownership (#32771) * feat(ext/node): add MIMEType, convertProcessSignalToExitCode, Symbol.dispose for ChildProcess (#32793) * test: prevent Claude from running entire spec suite (#32797) * fix(ext/node): improve worker_threads path validation and error handling (#32791) * fix(ext/node): fix TLA stall with native TTY handles and make stdio indestructible (#32792) * feat(eval): auto-detect CJS vs ESM in deno eval (#32472) * fix(ext/node): fix Buffer.concat, expose internal/buffer, implement markAsUntransferable (#32760) * fix(ext/node): rewrite node:tty on top of uv compat (#32777) * perf(linux): trim glibc malloc arena after module loading (#32662) * fix(ext/node): allow passing `FileHandle` as `fd` argument for `WriteStream` and `ReadStream` (#32770) * fix(process): allow unref'd child processes to outlive parent (#32563) * perf(lsp): replace dissimilar with imara-diff (#32700) * fix(core): don't panic in to_v8_error when JS error builder callback fails (#32749) * feat(ext/signals): support additional signals on Windows (#32689) * fix(repl): fix panic when pressing Tab at beginning of line (#32750) * perf(ext/web): optimize TextEncoder/TextDecoder hot paths (#32735) * perf(ext/web): add write buffering for FsFile.writable streams (#32676) * fix(ext/node): signal listeners added via `process.once` can now be removed (#32606) * fix(ext/telemetry): add exception.* attributes to OTEL log records (#32726) * fix(ext/web): upgrade QuotaExceededError to DOMException derived interface (#32244) * fix(test): allow test functions to override reported location (#32732) * perf(ext/node): move `fs.cpSync` implementation to rust (#32687) * fix(ext/node): fix send() validation in child_process IPC (#32779) * fix(ext/node): improve Node.js crypto compatibility (#32690) * fix(core): prevent panic when multiple lazy-loaded ESM modules are loaded during TLA (#32769) * fix(ext/ffi): retain backing store references in nonblocking calls (#32775) * feat(ext/telemetry): support array values in OTEL attributes (#32748) * perf(ext/napi): use threadpool for async work instead of spawning threads (#32776) * fix(ext/node): require --allow-net for udp.send (#32774) * fix(ext/node): validate handle type in child_process send() (#32711) * fix(ext/node): fix IPC message prototype for child_process JSON (#32731) * refactor: force a reason on clippy overrides (#32761) * perf(core): optimize V8-to-Rust string conversion with ValueView (#32688) * fix(ext/node): fix multiple deepEqual comparison issues (#32763) * fix(ext/console): make timer and counter state per-instance to fix OTEL console wrapping (#32719) * fix(runtime): apply source maps to CPU profiler output (#32634) * chore: update node_test submodule to Node.js 25.8.1 (#32705) * fix(coverage): don't mark lines uncovered when zero-count range only partially overlaps (#32601) * fix(ext/telemetry): add `log.iostream` attribute to console logs (#32723) * fix(ext/otel): don't mark server spans as error for 4xx responses (#32722) * fix(ext/node): allow IPv6 multicast addresses in UDP addMembership/dropMembership (#32739) * fix(ext/node): fix AbortController signal handling in child_process s… (#32713) * fix(ext/node): accept all TypedArrays in spawnSync input option (#32712) * fix(ext/node): enable 8 already-passing child_process compat tests (#32710) * fix(ext/node): include prototype env vars in child_process spawn (#32699) * fix(ext/node): fix perm checks in TCPWrap (#32721) * fix(runtime): use XML-valid entity in flamegraph SVG (#32716) * fix(ext/node): support encrypted PEM export and deprecated hash option in crypto keygen (#32703) * fix(ext/napi): keep event loop alive while uv_async_t handle is active (#32702) * fix(tsc): move more node resolution errors to typescript diagnostics (#32697) * fix(ext/node): set up stdio streams on failed child_process spawn (#32698) * test: update WPT expectations to match current test results (#32701) * feat: add --cpu-prof-flamegraph to generate interactive SVG flamegraphs (#32572) * perf(ext/web): optimize node:buffer base64 encode/decode (#32647) * fix(ext/napi): prevent spurious TypeError from napi_coerce_to_object on null/undefined (#32695) * fix: restore --env-file parent directory traversal and do not error in `deno compile` for not found env file (#32686) * fix(ext/node): improve X509Certificate Node.js compatibility (#32671) * fix(lsp): align organize imports output with tsgo (#32677) * fix(npm): resolve bundled npm deps in packages properly when not using a `node_modules` directory (#32679) * fix(ext/web): support %j JSON format specifier in console.log (#32684) * fix(watch): dispatch unload and process exit events on restart (#32664) * refactor(ext/node): consolidate node:fs (part 9) (#32659) * fix(web): support structuredClone for DOMException (#32675) * fix(ext/node): implement safe, add, rem options for crypto.generatePrime (#32618) * fix(ext/crypto): support structuredClone for CryptoKey (#32674) * perf(fmt): speed up file diffing (#30644) * fix(ext/node): remove extra properties from node:fs exports (#32670) * fix(ext/node): emit "connect" event on http.Server for CONNECT requests (#32599) * feat(core): add cloneable resource registry for structured clone (#32672) * fix(ext/node): use non-blocking write in fs.writev (#32673) * perf(npm): run lifecycle scripts in parallel (#32666) * fix(ext/node): wrap non-Error unhandled rejections in ERR_UNHANDLED_REJECTION (#32535) * chore(npm): fix debug panic in DepEntryCache (#32668) * fix(runtime): reduce memory retention after web worker termination (#32617) * fix(runtime): display proper error when throwing in event handlers (#32663) * chore(x): improve developer CLI with help, structure, and test filters (#32665) * fix(ext/napi): call wrap/ref finalizers at shutdown (#32592) * fix(ext/node): improve crypto.generateKeyPair validation (#32620) * fix(cli): update typescript-go to 2026-03-09 (#32656) * fix: wake event loop when V8 posts foreground tasks from background threads (#32450) * fix(npm): support npmrc certfile + keyfile (#32655) * chore: add test to ensure dlls are lazily loaded on windows (#32648) * chore: respect char boundaries in node_compat test output truncation (#32658) * fix(npm): retain authorization header on http->https redirect (#29878) * perf(ext/web): reduce promise allocations in streams (#32652) * refactor(ext/node): consolidate `node:fs` (part 8) (#32640) * perf(install): avoid unnecessary package info fetches when running lifecycle scripts (#32653) * chore: add `./x` developer CLI tool (#32470) * fix(ext/signals): prevent panic on FreeBSD (#32518) * chore(deno_npm): use `Rc<PackageNv>` more (#32650) * fix(ext/fetch): retry on stale pooled HTTP/1.1 connections (#32566) * chore: fix windows build with latest msvc (#32644) * ci: rename `lint ci status` to `ci status` (#32391) * refactor(ext/node): consolidate `node:fs` (part 7) (#32631) * fix(npm): handle read-only bin files when setting up node_modules/.bin (#32632) * fix(ext/node): handle signal 0 in child_process.kill() (#32294) * chore: remove warning building deno_npm_cache in Wasm (#32637) * fix(ext/node): fix TLS JSStreamSocket resource leak causing process hang (#32325) * fix(ext/node): handle cargo features during publish (#32636) - Update to version 2.7.5: * 2.7.5 (#32633) * fix(ext/node): handle generateKeyPair 2-arg call and enable PQC tests (#32619) * chore(deps): bump quinn-proto from 0.11.12 to 0.11.14 (#32624) * fix(ext/http): allow rejecting HTTP upgrades with non-101 status codes (#32615) * fix(ext/node): fix multiple node:dgram compatibility issues (#32520) * feat(doc): support npm packages in `deno doc` (#32435) * fix(npm): memoize peer cache hit checks to prevent combinatorial explosion (#32609) * fix(ext/node): add `node_api_create_property_key_(latin1/utf8)` (#32559) * fix: flush CPU profile and coverage data on Deno.exit() (#32591) * fix(npm): support npmrc email authorization (#32616) * feat(ext/node): add `node_api_create_object_with_properties` API (#31443) * fix(ext/node): run worker_threads eval code in sloppy mode (#32428) * fix(lsp): tsgo scope attribution for asset files (#32608) * fix(ext/napi): run async work execute callback on a worker thread (#32560) * perf(ext/node): move most `fs.cp` logic to rust (#32580) * fix(ext/node): make tty ReadStream/WriteStream callable without `new` (#32537) * fix(ext/node): add missing http2 header constants (#32611) * refactor(ext/node): consolidate node:fs modules (part 6) (#32588) * test: ignore some Node compat tests (#32556) * test: support `--list` flag in custom test harnesses (#32553) * fix(ext/node): napi_set_instance_data on exit (#32509) * fix(ext/node): rewrite http2 implementation (#32418) * fix(ext/node): improve node:dns compat (#32536) * fix(ext/node): emit correct error codes for unsupported PQC key types (#32533) * fix(console): prevent multi-line object values in console.table (#32604) * refactor(ext/node): remove multipleResolves process event handling (#32577) * fix(ext/node): multiple readline improvements (#32538) * fix(ext/node): use max salt length as default for RSA-PSS signing (#32534) * fix(ext/node): initialize debuglog testEnabled with safe default (#32598) * fix(ext/websocket): handle non-ASCII bytes in WebSocket response headers (#32594) * fix(ext/node): fix multiple DiffieHellman crypto bugs (#32531) * fix(napi): remove unimplemented Node-API symbols from napi_sys (#32593) * test: allow WPT tests to be marked as flaky (#32438) * refactor(napi): replace external napi-sys with in-tree napi_sys crate (#32582) * fix(ext/node): emit DEP0198 warning for SHAKE digests without outputLength (#32521) * feat(ext/node): implement KeyObject.toCryptoKey() and KeyObject.from(CryptoKey) (#32523) * fix(ext/node): improve getCipherInfo and allow repeated Hmac digest() (#32522) * fix(ext/node): implement ECDH.convertKey and fix related ECDH bugs (#32532) * fix(ext/otel): remove panicking unwraps in telemetry code (#32557) * fix: ensure binaries distributed in `@deno/...` npm packages are exectuable (#32581) * feat: --cpu-prof flags for CPU profiles (#31909) * refactor(ext/node): consolidate node:fs modules (part 5) (#32573) * perf(lsp): drop jsx import source cache (#32506) * refactor(core): remove OpMetricsSummary (#32569) * refactor: move Temporal types to separate lib.temporal.d.ts (#32571) * fix(lsp): properly sync root files with tsgo (#32455) * refactor(ext/node): consolidate node:fs modules (part 4) (#32555) * refactor(core): clean up RecursiveModuleLoad API (#32424) * ci: run ecosystem tests only on weekdays (#32554) * docs: document --env-file flag in Deno.Env type definitions (#32546) * feat(coverage): add function coverage to summary and HTML reports (#32507) * perf(npm): improve decompression speed more (#32547) * perf(npm): less syscalls in tarball extraction (#32541) * refactor(ext/node): consolidate node:fs modules (part 3) (#32525) * refactor: use sys_traits deno_dotenv (#32542) * perf(npm): remove folder canonicalization in tarball extract (#32540) * fix: support value substitution when loading environment variable files (#32495) * ci: remove issue insight workflow (#32539) * fix(ext/node): make TTY stdout/stderr indestructible (#32530) * perf(npm): use libdeflater and preallocate buffer (#32511) * fix(ext/node): support des-ede3-cbc cipher and allow Cipheriv/Decipheriv without new (#32519) * feat(otel): allow feeding permission audit data into OTEL (#32501) * fix: normalize `capture` to boolean in `removeEventListener` options (#32508) * refactor(ext/node): consolidate fs modules (batch 2) (#32505) * chore: better structured Slack output for issue_pr_insights (#32503) * fix: set `process.features.openssl_is_boringssl` to `true` (#32512) * test: add expected failure support to node_compat test harness (#32451) * fix(ext/node): implement proper `resourceLimits` for `node:worker_threads` (#32430) * docs: add GitHub Copilot instructions (#32492) * refactor(ext/node): consolidate fs modules and move promises to internal/fs (#32502) * fix(core): switch to V8 Explicit microtask policy for correct nextTick ordering (#32466) * test: modernize "node_compat" test runner (#32482) * fix(ext/node): implement `node:v8` heap APIs (#32483) * fix: prevent panic on dynamic import with non-string error name (#32498) * chore: upgrade aws-lc- crates (#32499) - Update to version 2.7.4: * 2.7.4 (#32494) * fix(deploy): correctly handle version lookup (#32489) * ci: maybe fix spec test timeout (#32487) * fix(test): restart all tests on env file change (#32461) * fix(ext/node): use sync writes for TTY stdout/stderr WriteStream (#32488) * perf(npm): actually improve `npm install -g deno` binary startup performance (#32467) * chore: update rusty_v8 hashes in nix flake (#32471) * chore: update deno_std submodule to latest commit (#32469) * ci: Add GHA automation for daily issue and PR insights (#32449) * fix(ext/node): deep `assert` compatibility (#32434) * fix(core): uv_compat cleanup and fixes (#32458) * refactor: split up tools::installer into global and local modules (#32463) * Reland refactor(core): move nextTick/immediate queues into core, replace ops with shared buffers (#32440) (#32465) * ci: fix deno_core changes check in shallow clones (#32464) * Revert "refactor(core): move nextTick/immediate queues into core, replace ops with shared buffers (#32440) (#32462) * refactor(core): move nextTick/immediate queues into core, replace ops with shared buffers (#32440) - Update to version 2.7.3: * 2.7.3 (#32459) * perf(npm): improve `npm install -g deno` binary startup performance (#32439) * fix(deploy): dont use jsr api for deploy subcommand (#32441) * fix(npm): don't panic when peer dep is not in snapshot (#32454) * fix(npm): regression where resolution was missing dependencies (#32453) * fix(ext/node): support HTTP over Windows named pipes in node:http (#32414) * refactor(config): handle workspaces properly for deploy config (#32445) * ci: run node_compat_tests only on weekdays (#32446) * ci: fix npm publish (#32437) * test: dgram.addMembership EINVAL error regression test (#32256) * refactor: move `deno_cache_dir` into Deno repo (#32426) * fix(ext/node): handle partial writes to process.stdout/stderr (#32433) * refactor(wpt): split expectation.json into per-suite files (#32395) * fix(ext/node): make UDP socket ops synchronous, implement missing dgram methods (#32381) - Update to version 2.7.2: * 2.7.2 (#32429) * fix(npm): NPM_CONFIG_REGISTRY correctly overrides .npmrc (#32394) * perf(install): improve parallelism of fetches during npm resolution (#32416) * fix(ext/node): gracefully exit on invalid NODE_CHANNEL_FD instead of panicking (#32421) * chore(deno_npm): remove ancestors iterator (#32420) * fix(ext/node): support SEC1 EC private key import/export in `node:crypto` (#32401) * ci: skip deno-core-test when no relevant files changed (#32404) * fix(ext/crypto): fix P-521 EC key export for all formats (#32412) * fix: validate cron schedule when using cron socket (#32406) * refactor: consolidate `utils::watcher_env_tracker` to `utils::env` (#32419) * ci: use hash service for reducing duplicate work (#32411) * fix(ext/node): support RSA PSS padding option in crypto sign/verify (#32269) * perf(install): split tarball extraction into decompress + write, limit write concurrency (#32408) * fix(ext/node): CBC decipher setAutoPadding(false) incorrectly strips bytes (#32403) * fix: process level environment variables should take precedence over env files (#32407) * fix(ext/node): implement KeyObject.equals, fix createCipheriv with KeyObject/null IV (#32409) * fix(compile): store self extracting dir in hidden dir beside executable (#32329) * fix(ext/crypto): handle wrong algorithm in subtle.importKey without panicking (#32410) * fix(ext/node): support Ed25519, X25519, and P-521 keys in X509Certificate.publicKey (#32267) * fix(node/crypto): handle empty input in decipher final with auto_pad=false (#31958) * fix(npm): peerDependency resolution leading to multiple versions being installed + hanging (#32358) * fix(ext/node): support DER-encoded keys in publicEncrypt/privateDecrypt (#32291) * ci: replace Cirrus runners and cache with GitHub defaults (#32405) * feat(ext/node): implement missing X509Certificate methods (#32270) * perf(install): move HTTP decompression for registry requests off the async event loop (#32400) * 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(ext/node): make `execPath` named export a real string (#32396) * fix(ext/node): make `setAutoPadding(false)` a no-op for GCM ciphers (#32290) * fix(node): support ECDSA with secp256k1 in `node:crypto` (#32390) * fix(coverage): warn instead of erroring when source files are missing (#32398) * fix(ext/node): use internal compileFunction binding in CJS wrap (#32373) * perf(install): request abbreviated packuments from npm registry (#32364) * test: add regression test for catching error in require(esm) (#32352) * fix(ci): fix ordering of platforms in ecosystem_compat_slack (#32393) * fix(coverage): correct line and branch counts in coverage reports (#32312) * fix(node): implement process.umask properly (#32385) * fix(ext/node): make fsPromises.watch() a proper AsyncIterable with close() (#32378) * fix(ext/node): return first created path from recursive "node:fs" mkdir call (#32300) * fix(node): preserve AsyncLocalStorage context in stream.finished callback (#32389) * fix(jupyter): handle shutdown and interrupt requests per protocol (#32359) * fix:(ext/node): escape simple quotes in node:child_process (#32336) * fix(ext/console): support iterators in console.table (#32379) * fix(ext/node): handle emoji width correctly in readline (#32383) * fix(node): implement `resolveObjectURL` for `node:buffer` (#32382) * chore: bump `libuv-sys-lite` version (#32384) * test: disable flaky WPT test (#32386) * fix(cli): load multiple env files in the correct order (#32354) * perf(install): use aws-lc-rs for tarball integrity hashing (#32365) * fix(lsp): cross-scope requests (#32366) * fix(core): store Global<Context> ptr for libuv-compat callbacks (#32361) * fix: Update libffi and libffi-sys to fix build (#32301) * chore: merge deno_core repo into main repo (#32353) * fix(lsp): tsgo request cancellation (#32356) * fix(ext/node): support process.stdout resize events (#32343) * feat: v8 14.6, fix require(esm), libuv compat (#32347) * refactor(ext/node): `assert` get error source using V8 API (#32339) * fix(ext/node): provide CJS globals in worker_threads eval mode (#32266) * fix(node/vm): support vm.constants.DONT_CONTEXTIFY in createContext (#32337) * fix: deflake run_watch_env_file_with_multiline_values (#32346) * chore: upgrade rustyline to 17.0 and nix to 0.30 (#32344) * fix(lsp): tsgo typings for bytes/text imports (#32333) * 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) * Revert "fix(ext/node): implement `after`, `afterEach`, `before`, and … (#32340) * refactor: add clippy rule for using `sys_traits::EnvCurrentDir::env_current_dir` (#32328) * ci: use s3 sync command for glob uploads (#32338) * chore: fix duplicate words in source comments (#32314) * ci: upload assets to S3 (#32335) * fix(ext/node): rename conflict callback field typo (#32306) * fix(ext/node): implement `after`, `afterEach`, `before`, and `beforeEach` of `node:test` (#32320) * fix(node/buffer): fix base64 decoding for strings with hyphens (#32298) * 2.7.1 (#32322) * ci: fix script for release builds (#32321) * chore(jupyter): upgrade jupyter protocol dependencies (#32313) - Update to version 2.7.1: * This is a maintenance release to fix wrong output of deno --version in v2.7.0. - Update to version 2.7.0: * feat(audit): add --ignore flag to filter advisories by CVE ID (#32221) * feat(check): add --check-js flag (#32235) * feat(cli): add --save-exact/--exact flag to deno add and install (#31977) * feat(cli): add deno create command (#32225) * feat(compile): add --self-extracting flag (#32227) * feat(config): support include and exclude in deploy config (#32254) * feat(ext/bundle): Add --keep-names flag (#32285) * feat(ext/web): add brotli support to CompressionStream and * DecompressionStream (#32028) * feat(fmt): add --fail-fast flag to deno fmt --check (#31438) * feat(fs): add tryLock(exclusive?: boolean): Promise to FsFile (#31848) * feat(install): support --node-modules-dir for -g and use a manual * node_modules dir for installing npm: specifiers (#32302) * feat(task): turn off failglob by default (#32223) * feat(unstable): add Deno.spawn(), Deno.spawnAndWait{Sync}() (#32238) * feat(upgrade): cache downloaded binaries (#32187) * feat: deno create jsr:<package> and deno init --jsr <package> (#32229) * feat: add navigator.platform (#30795) * feat: npm overrides (#32073) * feat: stabilize Temporal API (#31928) * fix(audit): gracefully handle malformed response (#32234) * fix(audit): properly handle npm registries in subpaths (#32164) * fix(bundle): let esbuild handle data urls (#32213) * fix(ci): use noble apt repo for LLVM 21 packages (#32241) * fix(ext/node): createServer().listen().address() returns port 0 (#32248) * fix(ext/node): util.parseEnv and process.loadEnvFile compatibility (#32183) * fix(ext/node): add host_arch to process.config.variables (#32265) * fix(ext/node): add openAsBlob export to node:fs (#32261) * fix(ext/node): add missing process.constrainedMemory() API (#32209) * fix(ext/node): enable test-stdio-closed tests (#32237) * fix(ext/node): enable test-zlib-invalid-input-memory and test-zlib-un… (#32284) * fix(ext/node): handle shell redirections in child_process exec (#32087) * fix(ext/node): implement timeout and killSignal for spawn() (#32283) * fix(ext/node): improve process event handling and add missing APIs (#32200) * fix(ext/node): preserve streaming body on stale keepalive retry (#32215) * fix(ext/node): remove fs.promises.fstat, not a public Node.js API (#32289) * fix(ext/node): support URL in child_process.fork modulePath (#32268) * fix(ext/node): support ipv6 host in node:http (#32258) * fix(install): support --allow-scripts with deno install -g --compile ... (#32249) * fix(lsp): implement remaining tsgo resolver callbacks (#32303) * fix(lsp): qualify diagnostic source and message from tsgo (#32251) * fix(lsp): typescript-go basic resolution (#32016) * fix(node): preserve AsyncLocalStorage context in unhandledRejection handlers (#32264) * fix(node/buffer): fix latin1Slice and hexSlice returning wrong results (#32277) * fix(permissions): allow /proc/pressure/* files with --allow-read (#30780) * fix: deno install --force --compile (#32242) * fix: detect bound require reexports in cjs analysis (#32163) * fix: format wasm stack traces correctly, preserve context in unhandled * rejection, improve cppgc inheritance perf (#32293) * fix: format wasm stack traces per W3C spec (#32246) - Refresh deno-disable-lto.patch
jaimeMF added 1 commit 2026-07-01 16:56:07 +02:00
autogits-devel requested review from adamm 2026-07-01 16:56:57 +02:00
autogits-devel requested review from avindra 2026-07-01 16:56:57 +02:00
autogits-devel requested review from uncomfyhalomacro 2026-07-01 16:56:58 +02:00
Author
Contributor
Requires https://src.opensuse.org/javascript/rusty_v8/pulls/17
First-time contributor

![Build results](https://br.opensuse.org/status/home:autogits_obs_staging_bot:javascript:PR:39/deno)
First-time contributor
Build failed, for more information go in https://build.opensuse.org/project/show/home:autogits_obs_staging_bot:javascript:PR:39.
avindra merged commit a47e07e19d into main 2026-07-02 04:04:19 +02:00
Owner
req to factory open: https://build.opensuse.org/requests/1363734
Sign in to join this conversation.
No Label
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: javascript/deno#9