v2.9.1
📦 denoView on GitHub →
✨ 3 features🐛 43 fixes🔧 17 symbols
Summary
This release introduces desktop-specific features like type-checking flags and deep-link registration, alongside numerous fixes across bundling, caching, desktop environment, Node.js compatibility, and npm handling.
✨ New Features
- Added --desktop flag to type-check for deno desktop.
- Registered deep-link URL schemes at bundle time for desktop applications.
- Updated laufey dependency to version 0.5.0.
🐛 Bug Fixes
- Emitted CSSStyleSheet for CSS raw imports during bundling.
- Skipped checksums for cached 404 entries.
- Did not strip workspace-member includes from deploy config.
- Applied deferred fast-call op upgrade to the captured bootstrap clone.
- Prevented shared-buffer timer expiry race from losing timers.
- Defaulted desktop window title to app name instead of laufey_webview.
- Detected SvelteKit adapter-node and error on unsupported adapters in desktop mode.
- Discovered deno.json in the project directory for `deno desktop .`.
- Prevented deletion of user directories that collide with the app name.
- Repaired webview and raw backends on Windows (laufey v0.4.1).
- Resolved launcher symlink so .deb/.rpm apps find the backend.
- Set LAUFEY_RUNTIME_PATH in Linux app launcher.
- Showed macOS tray icon in bundled .app launched via Finder.
- Used zstd for appimage squashfs.
- Stripped blockquote > prefixes from JSDoc code blocks.
- Included path and reason when fetching a file:// URL fails in ext/fetch.
- Checked permissions when binding node:net unix sockets.
- Exported report as a named export from node:process.
- Ensured mock.reset() also resets MockTimers.
- Passed Deno subcommands through child_process spawn.
- Sent TLS close_notify on JS stream-backed socket shutdown.
- Kept attach limit capped under scoped permissions for node_sqlite.
- Made URL and URLSearchParams non-serializable in ext/web.
- Ensured stable formatting of multi-line html/svg tagged templates.
- Added support for Chrome worker debugging in the inspector.
- Pinned pre-release npm versions added via dist-tag during installation.
- Registered stdin peer only after ZMTP handshake completes for jupyter.
- Added PerformanceObserver and PerformanceObserverEntryList types.
- Added missing `write_flushed` in `poll_start_fixed_response_with` for http.
- Watched .wasm files for changes in the language server protocol implementation.
- Loaded graph-backed TypeScript modules synchronously in node.
- Decoded percent-encoded subpath of npm specifiers.
- Fell back for age-filtered npm dist-tags.
- Normalized bin names with path separators for npm packages.
- Realpathed npm bin main module.
- Showed scoped-registry auth hint on tarball 404 errors.
- Used case-insensitive match for trust-policy-exclude.
- Revealed initial window on first paint in desktop runtime to prevent startup black flash.
- Corrected property name for JSX new line configuration in the schema file.
- Resolved LAUFEY_VERSION from crate-local Cargo.lock during publish.
- Showed a clear error when V8 fails to create worker threads.
- Fast-pathed Response reconstruction in ext/fetch.
- Coalesced chunked response writes into a single write in ext/http.