Skip to content

The latest news releases from the Qwik team

October 25th, 2026

@qwik.dev/core@2.0.0-rc.4

Minor Changes

  • ✨ migrate-v2 now includes all v1 migrations and runs with npx [@qwik](https://github.com/qwik).dev/core@latest migrate-v2. (by @wmertens in #9178)

Patch Changes

  • 🐞🩹 reject oversized or malformed BigInt values in serialized state (by @Varixo in 271d87f)

  • 🐞🩹 a resumed child component rerenders when its props change (by @yiannis-psomadelis in #9272)

  • 🐞🩹 click-to-source now finds elements created in the browser during dev (by @Aejkatappaja in #9210)

  • 🐞🩹 SSR subscribes qwikloader to event names as soon as their elements render, so interactions during streaming are not lost (by @Varixo in #9226)

  • 🐞🩹 preserve resumed state when pending segments finish before the shell (by @Varixo in #9254)

  • 🐞🩹 rewrite destructured props used as computed keys in nested closures (by @Varixo in #9215)

  • 🐞🩹 preserve zero content in streamed pending boundaries (by @Varixo in #9280)

  • 🐞🩹 defer visible tasks inside unclaimed projections (by @Varixo in #9029)

  • 🐞🩹 computed signals recompute once and without stale sources in diamond dependency graphs (by @Varixo in #9212)

  • 🐞🩹 inserting a component no longer drops the next sibling's signal bindings (by @ybai08 in #9230)

  • 🐞🩹 removing or reordering elements no longer re-inserts the siblings that stay in place (by @ybai08 in #9229)

  • 🐞🩹 preserve shared objects without retaining completed streaming state (by @Varixo in #9258)

  • 🐞🩹 re-export createOptimizer from @qwik.dev/core/optimizer so the runtime exports match the published types (and the v1 contract where @builder.io/qwik/optimizer exported it). (by @A-Raphie in #9248)

  • 🐞🩹 a throw inside out-of-order <Pending> content no longer crashes the server (by @Varixo in 75454ad)

  • 🐞🩹 the preloader applies hints sent before it loaded, and holds speculative preloads while needed bundles load (by @Varixo in #9223)

  • 🐞🩹 editing a plainly imported css file no longer reloads the page (by @jantimon in #9269)

  • 🐞🩹 a component serialized twice no longer resumes without its render function (by @yiannis-psomadelis in #9272)

  • 🐞🩹 preserve pre-resume interactions on WebKit while HTML streaming stalls. (by @akasakariko in #9208)

    The default module qwikloader strategy now starts the loader from a small inline bootstrap script instead of an external <script type="module" src> tag. The bootstrap receives the CSP nonce like other Qwik inline scripts, so nonce-based policies keep working. Deployments that allow inline scripts by hash instead (for example script-src 'self' plus a fixed list of 'sha256-...' hashes) must add a hash for the new bootstrap script, otherwise the browser will block it.

  • 🐞🩹 keep resolved pending content visible after parent updates (by @Varixo in #9280)

  • 🐞🩹 preserve child state and prop bindings after parent updates (by @Varixo in #9280)

  • 🐞🩹 isolate subscriptions between pending boundaries sharing reactive state (by @Varixo in #9258)

  • 🐞🩹 keep client-only callbacks outside smart render bundles (by @Varixo in #9263)

  • 🐞🩹 with the TypeScript optimizer, elements with spread props and a key no longer lose children or props, or throw _createElement is not defined (by @maiieul in #9107)

  • 🐞🩹 the TypeScript optimizer keeps outer loop items in scope for handlers in nested loops (by @SahinurDEV in #9231)

  • 🐞🩹 a component prop derived from a computed no longer goes stale when that computed first reads a lazy QRL during an update (by @intellix in #9285)

  • Updated dependencies [51dc669, 42a901d]:

Contributors:

  • qwik
  • latest
  • wmertens
  • Varixo
  • yiannis
  • Aejkatappaja
  • ybai08
  • builder
  • A
  • jantimon
  • akasakariko
  • maiieul
  • SahinurDEV
  • intellix
  • 2

October 13th, 2026

@qwik.dev/router@2.0.0-rc.3

Patch Changes

  • 🐞🩹 let <Form onSubmitCompleted$> accept an inline handler again, like native on*$ events (by @tzdesign in #9204)

  • 🐞🩹 the router serializes less state into every page (by @maiieul in #9090)

  • 🐞🩹 routeLoader$ signal invalidate() and usePoll now re-fetch, honoring the loader's cache headers (by @wmertens in #9202)

  • 🐞🩹 type routeLoader$ signals as computed signals so invalidate() and usePoll type-check (by @wmertens in #9202)

  • 🐞🩹 useLocation().isNavigating stays true until a navigation that reuses the current route component has rendered its new loader data (by @intellix in #9201)

  • 🐞🩹 exclude /manifest.json (not /mainifest.json) from the Netlify Edge function by default (by @musatoktas in #9187)

  • 🐞🩹 match routes that continue after a [...rest] segment, such as [...path]/product/[id] (by @tzdesign in #9198)

  • 🐞🩹 SPA navigation no longer needs serialized router tasks in every page (by @maiieul in #9091)

  • 🐞🩹 cacheControl with zero values no longer drops directives or sets an empty header (by @intellix in #9173)

  • Updated dependencies [1b6a280, b1b6348, 1520d59, dc8f84e, db38699, 4fc6e66]:

Contributors:

  • tzdesign
  • maiieul
  • wmertens
  • intellix
  • musatoktas
  • qwik
  • 2
12
3
...
2930