## denoland/deno — v2.9.5…v2.9.6

_100 commits._

### Features
- **feat(desktop): clipboard api (#35750)** (31e6bc4)
- **feat(desktop): support checked, icon, and tooltip on menu items (#36649)** (88e2d05)
- **feat(compressible): add support for 'text/x-component' content type (#36450)** (9b3b441)

### Fixes
- **fix(cli_parser): remove orphaned sync-types parser** (aa0367e)
- **fix(desktop): keep dots in the app name when resolving the runtime library (#36006)** (1797a4c)
- **fix(desktop): propagate deno.json version and license into packaged installers (#36577)** (873219d)
- **fix(desktop): transport binding args and results as DesktopValue so Uint8Array survives (#36573)** (483e669)
- **fix(publish): authenticate the package existence check so private packages work (#36656)** (eab6182)
- **fix(desktop): keep the macOS bundle signature valid unless an update is applied (#36574)** (0251c1d)
- **fix(desktop): never block the JS thread on the error-report dialog (#36575)** (0b9e290)
- **fix(ext/node): do not resume client TLS sessions unless requested (#36592)** (aaa05f9)
- **fix(http): preserve keep-alive after reading request body (#36690)** (a8fdbd6)
- **perf(core): zero-copy snapshot rehydration, drop bincode (#36680)** (7257de8)
- **fix(publish): reject invalid JSR package names (#36474)** (70839f0)
- **fix(lsp): restrict registry completion endpoint schemes (#36477)** (a5d4ccc)
- **perf(ext/websocket): shrink the op_ws_create future (#36681)** (a643568)
- **perf(core): uncontended-borrow fast path for AsyncRefCell (#36679)** (011f272)
- **perf(core): grow the op driver's future arena on demand (#36678)** (d11bfe5)
- **fix(coverage): compare a range against a line in V8's units (#36613)** (2648b63)
- **fix(ext/napi): surface OS error and path on addon load failure (#36630)** (d2c7081)
- **fix(ext/net): skip unsupported DNS records in ANY queries (#36650)** (092f809)
- **fix(npm): remove arrayref dependency (#36653)** (2de9375)
- **fix: prevent threadpool starvation with concurrent file locks (#32789)** (de4daca)
- **fix(ext/node_sqlite): invalidate sessions on database close (#36633)** (767871e)
- **fix(core): make Unix pipe fd ownership explicit (#36353)** (a9a4da4)
- **fix(ext/napi): wake the event loop at the next uv_timer deadline (#36559)** (b20dcc2)
- **fix(ext/http): keep request body readable after response is sent (#36629)** (1257f5c)
- **fix(ext/node): build the proxied request target with the URL parser (#36557)** (400cf81)
- **fix(ext/fetch): raise default HTTP/2 SETTINGS_MAX_HEADER_LIST_SIZE to 256KB (#36558)** (8900f8f)
- **fix(ext/web): snapshot SharedArrayBuffer input in TextDecoder.decode() (#36611)** (f213fb8)
- **fix(http): truncate streaming responses to content length (#36496)** (844bb19)
- **fix(npm): resolve bare npm specifier when latest is too new for min dependency age (#36619)** (e79e4e1)
- **fix(npm): flatten single-resolution peers when building package ids (#36608)** (9d6bbc6)
- **fix(fetch): require an initial multipart boundary (#36470)** (3000a70)
- **fix(process): reject NULs in Windows arguments (#36436)** (d4fff6f)
- **fix(node_crypto): size cipher updates by byte length (#36459)** (7b96368)
- **fix(node): preserve v8 deserializer view offsets (#36460)** (5cff29c)
- **fix(node): validate raw outgoing HTTP headers (#36471)** (cbc5bdd)
- **fix(glob): retain valid gitignore rules after parse errors (#36478)** (0570d68)
- **fix(npm): match peer fallbacks when checking peer resolution cache (#36607)** (dcaf93e)
- **fix(process): validate whitespace-only loader environment values (#36431)** (a983071)
- **fix(web): keep MessagePort resource identifiers private (#36440)** (b1d63d9)
- **fix(node_crypto): apply RFC 7748 scalar decoding for X448 (#36466)** (ca4da61)
- **fix(ext/web): clean up abort handlers when listeners are removed (#36226)** (e98ce3c)
- **fix(core): make user timer waker state thread-safe (#36495)** (603bb29)
- **fix(node): match domain uncaught exception handling (#36475)** (385540d)
- **fix(ext/napi): run JS-calling finalizers safely, NULL string result, and Float16Array (#36572)** (d189f5b)
- **fix(ext/napi): don't invoke napi_wrap finalizer twice at teardown (#36556)** (fbdf677)
- **fix(ffi): validate struct return buffers (#36373)** (06ceef1)
- **fix(node_shim): preserve explicit argument delimiters (#36435)** (7fad368)
- **fix(node/crypto): preserve binary key export passphrases (#36443)** (9935351)
- **fix(cache): combine duplicate headers for Vary matching (#36476)** (855e75e)
- **fix(fs): require write permission for creating opens (#36497)** (a155769)
- **fix(bundle): isolate esbuild downloads from workspace registries (#36467)** (778abb4)
- **fix(ext/node): accept string ports in dns.lookupService (#36546)** (df1e8f5)
- **fix(ext/napi): track pending finalizers by identity (#36551)** (e3ca33f)
- **fix(ext/web): close transfer MessagePort when a transferred readable is cancelled (#36270)** (de438b0)
- **fix(repl): skip regex literals when validating input (#36375)** (1921232)
- **fix(ext/node): fix perf_hooks detail.req.url proxied path duplication (#36407)** (db09b8e)
- **fix(ext/fetch): only retry transport errors on pooled connections (#36415)** (3ab3e76)
- **fix(permissions): check resolved IP against import deny list (#36486)** (ff4ecbe)
- **perf(core): use index-based `SafeArrayIterator` in primordials (#36543)** (0b4d489)
- **fix: bugs in primordials related to `ObjectCreate` and `ObjectDefineProperties` (#36541)** (0449c0e)
- **fix(npm): validate tar paths before extraction (#36468)** (7c44852)
- **fix(publish): memoize publish order depth (#36215)** (f7c4504)
- **fix(runtime): unregister dropped signal resources (#36213)** (5b9ef28)
- **fix(ext/node): handle readv short reads (#36211)** (5d6a3cd)
- **fix(node): check reads during require resolution (#36461)** (c1688a4)
- **fix(node): validate Brotli encoder operations (#36530)** (9988740)
- **fix(ext/fetch): enforce permissions for proxy transports (#36217)** (273e77b)
- **fix(os): serialize process environment updates (#36074)** (4d76a31)
- **fix(fmt): honor .editorconfig when formatting from stdin (#36267)** (dff5fd6)
- **fix(core): cap adaptive buffer initial allocations (#36432)** (79ea7e4)
- **fix(fs): use a private FsFile constructor token (#36439)** (6eeb953)
- **perf(ext/web): apply the base64url op design to standard base64 (#36422)** (2e11642)
- **fix(npm): use cached abbreviated metadata under --cached-only (#36526)** (6fa9300)
- **fix(desktop): run Vite-based HMR dev servers inside the desktop runtime (#36488)** (5689c31)
- **fix(ext/http): route invalid async responses to onError (#36437)** (2727241)
- **fix(ext/node): require sys permission for inspector.open (#36465)** (7e3d086)
- **fix(crypto): preserve RSA-OAEP label bytes (#36441)** (a14ac65)
- **fix(ext/tls): avoid panic for mismatched client certificate and key (#36457)** (c69a790)

### Backend
- **2.9.6 (#36706)** (e518fbd)

### Tests
- **test: deflake lsp_node_modules_dir and pty_regex_literal_with_quote (#36694)** (ea1928d)
- **test(core): serialize snapshot-creating tests behind a process-wide lock (#36675)** (93fb8e8)
- **test: don't assert a remote file's byte count in 017_import_redirect_info (#36621)** (b79ea84)
- **test: mark node_compat test-fs-read-stream-pos flaky (#36225)** (52c8f7c)

### Chore
- **chore: upgrade deno_doc to 0.207.0 and deno_graph to 0.111.0 (#36699)** (6115624)
- **refactor(core): split ModuleMap into focused submodules (#36677)** (8c7ee59)
- **chore(core): drop az, capacity_builder, and num-bigint's rand feature (#36676)** (94c99c8)
- **chore: fix the nix-update-rusty-v8 script (#36647)** (cc1c301)
- **refactor(ext/node): remove unused `n` arg from `IncomingMessage._read` (#36565)** (4fb0ab5)
- **ci: stop node_compat shard 0 starving its runner (#36620)** (82f59bf)
- **ci: time out the sysroot setup step after 10 minutes (#36617)** (0cefc51)
- **refactor(http): remove unused raw upgrade internals (#36528)** (974cc54)
- **refactor(cli): replace single-method flag ext traits with free functions (#36491)** (44c83e1)
- **refactor: remove clap from the tree (#36489)** (03672dc)
- **refactor: port dynamic shell completions off clap_complete (#36035)** (d6e2e47)
- **ci: only relink startup-function order on main and release tags (#36453)** (7951259)
- **refactor: cut over CLI flag parsing to deno_cli_parser (#35982)** (8ed3151)
- **chore: purge CDN cache after uploading latest version files (#36458)** (d4cec25)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/denoland/deno?utm_source=github-action)._