Change8

@qwik.dev/core@2.0.0-beta.39

Breaking Changes
📦 qwikView on GitHub →
3 breaking🐛 14 fixes🔧 32 symbols

Summary

This release introduces significant changes to signal handling, replacing `allowStale` with `.clear()` and removing polling options from computed signals. It also refines suspense fallback behavior and includes numerous bug fixes for optimization, rendering, and SSR.

⚠️ Breaking Changes

  • The `allowStale` signal option has been replaced by an explicit `.clear()` method. Use `.clear()` instead of `allowStale`.
  • Suspense fallbacks are now only shown during initial loading. The `showStale` option has been removed.
  • The `expires`, `poll`, and `interval` options have been removed from computed signals. Use `usePoll` from `@qwik.dev/utils` instead.

Migration Steps

  1. Replace `allowStale` signal option with `.clear()`.
  2. Use `usePoll` from `@qwik.dev/utils` for polling functionality previously handled by `poll`, `interval`, or `expires` on computed signals.
  3. Remove usage of the `showStale` option for suspense fallbacks.

🐛 Bug Fixes

  • Bundle-graph optimization no longer drops reachable dependencies, preventing transitive duplicates.
  • Namespaced document and window event names are now supported.
  • Nested `Each` components are now rendered on the server.
  • The build optimizer now runs before Vite ecosystem worker bundles.
  • Unchanged components are no longer re-rendered after resume.
  • The minified build now emits valid `@__PURE__` annotations for better tree-shaking by downstream bundlers.
  • Async component rejections are now handled during SSR flushes.
  • The optimizer plugin now supports Vite's Rolldown type definitions.
  • Eager container resume is avoided for capture-free sibling handlers.
  • `<Link />` data prefetching now avoids fetching already present and valid loader data.
  • Repeated `qrl` chunk load failures are now reported only once.
  • Vnode metadata keys in script output are now encoded.
  • Values for `noSerialize` now require the marker brand.
  • HMR placeholders are no longer projected into nested components.

Affected Symbols