Skip to content

The latest news releases from the Qwik team

April 6th, 2026

@qwik.dev/router@2.0.0-beta.31

Minor Changes

  • documentHead now includes the manifest hash, which can be used for cache busting or eTag generation. (by @wmertens in #8503)

Patch Changes

Contributors:

  • wmertens
  • qwik
  • 2

April 6th, 2026

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

Minor Changes

  • useAsync now accepts a negative interval to invalidate the cache without recalculating, for lazy cache invalidation. (by @wmertens in #8503)

  • asyncSignal.invalidate(info: unknown) allows passing info to the calculation function. This can for example be used to request cache busting while reloading. (by @wmertens in #8503)

Patch Changes

  • fix(vite): skip qwikloader emitFile in serve mode (by @SchahinRohani in #8512)

  • 🐞🩹 crash when inserting dom nodes near an errored-host (by @Varixo in #8494)

  • 🐞🩹 improve preloader scheduling so large preload batches yield more reliably in the browser (by @Varixo in #8510)

  • The issue is caused by cli.mjs eagerly loading migrate-v2 code at startup. That migration path has top-level imports of ts-morph, ignore, and semver, so even normal CLI usage in third-party apps can fail with ERR_MODULE_NOT_FOUND when those migrate-only dependencies are not installed. (by @JerryWu1234 in #8507)

  • Updated dependencies [152e65b]:

Contributors:

  • wmertens
  • SchahinRohani
  • Varixo
  • JerryWu1234
  • qwik
  • 2

March 26th, 2026

2.0.0-beta.30

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

Major Changes

  • BREAKING: useTask() and useVisibleTask() now await their cleanup functions before running the next invocation. If this is not what you want, do not return the cleanup Promise (and handle errors). (by @wmertens in #8481)

Minor Changes

  • ✨ introduce Each component for fast list operations (by @Varixo in #8434)

Patch Changes

  • 🐞🩹 prevent auto-exports for variables shadowed inside catch/do-while/switch/labeled blocks (by @Varixo in #8458)

  • 🐞🩹 imported css passed to useStyles$ is now deduplicated (by @wmertens in #8436)

  • fix(core): useSerializer$ now can handle thrown Promises while initializing. (by @wmertens in #8473)

  • Split the optimizer bindings into the new @qwik.dev/optimizer package. (by @wmertens in #8469) @qwik.dev/core/optimizer now re-exports the optimizer runtime from that package while keeping the Vite plugin bundled in core.

  • 🐞🩹 exported variables passed to $ functions are no longer incorrectly inlined into segments (by @Varixo in #8458)

  • 🐞🩹 sibling node duplication when toggling elements with dangerouslySetInnerHTML (by @Varixo in #8461)

  • Updated dependencies [4e54bce]:

@qwik.dev/optimizer@2.0.1-beta.0

Patch Changes

  • ✨ the Qwik optimizer is now in a separate package, which reduces download size for the qwik package (by @wmertens in #8483)

@qwik.dev/react@2.0.0-beta.30

Patch Changes

@qwik.dev/router@2.0.0-beta.30

Patch Changes

Full Changelog: https://github.com/QwikDev/qwik/compare/@qwik.dev/core@2.0.0-beta.29...@qwik.dev/core@2.0.0-beta.30

Contributors:

  • qwik
  • 2
  • wmertens
  • Varixo
1
...
4
5
6
...
30