RepoJournal

$ cat vuejs/week/2026-09-07.log

Vue.js

Vue.js

the week in review · Sep 7 – Sep 13, 2026

Vue core patches six suspense hydration bugs

By RepoJournal · composed from the cited sources · human-reviewed weekly · methodology

The stacked fixes target navigation during hydration, where pending boundaries were resolving with stale content; VitePress and test-utils also shipped.

19 commits 16 PRs merged 1 releases 7 briefings covered

all vuejs reviews →

fix(suspense): patch hydrating pending branches in place vuejs/core

by serkodev

A hydrating pending branch already lives in the real DOM, but patchSuspense was patching same-root updates into hiddenContainer, causing NotFoundError or leaving new nodes hidden. This can happen with a single <Suspense> without nesting. The fix patches in place.

fix(suspense): keep the boundary pending while its branch is patched vuejs/core

by serkodev

patchSuspense could let a nested <Suspense suspensible> resolve before its branch finished patching, leaving the boundary no longer pending. The bug was reported originally in #7506, and nuxt/nuxt#36249 is using part of this patch for a POC covering issues caused when users navigate during hydration.

fix(suspense): unmount the DOM an interrupted async component claimed vuejs/core

by serkodev

When hydration is interrupted, a component that has not rendered yet still owns live SSR DOM and Vue cannot clean it up. A component with pending async setup() got no placeholder subtree at all. This fix unmounts the DOM the interrupted async component claimed.

fix(suspense): don't drop nested suspense patches during hydration vuejs/core

by serkodev

Suspense skips nested boundary updates when the parent has pending deps, but that should not apply during hydration because the adopted branch will not be mounted again. The result was navigation updates being dropped and the boundary resolving with stale content.

fix(hydration): run leave hooks for hydration placeholders vuejs/core

by serkodev

The placeholder has no proper transition hooks or matching node type, which can cause a blank page with Transition mode="out-in" or a crash on comment roots. Leave hooks now run for hydration placeholders.

fix(compiler-sfc): restore await scope when leaving nested blocks vuejs/core

by daiwei

A compiler-sfc fix restores the await scope when leaving nested blocks, closing #15465. Projects using top-level await inside nested blocks in <script setup> were affected.

feat: add support for asset sharding vuejs/vitepress

by brc-dd

VitePress adds asset sharding for build output. It fixes #5427.

fix(theme): route CJK symbol fallback through the system font on WebKit vuejs/vitepress

by Divyansh Singh

On macOS 26 and iOS 26, some 1,400 glyphs (U+FF5C, circled numbers, stars, kana) moved to a hidden ".CJK Symbols Fallback" font that only CoreText's language-aware fallback can reach, so full-width characters rendered with the wrong weight in Safari. VitePress routes the fallback through the system font on WebKit. The same fix appears as [14] in the period's feed.

$ ls vuejs/week/ # the briefings behind this review

Keep up with Vue.js in about 3 minutes: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

fair warning: these emails are deeply technical. diffs, version numbers, CVEs, benchmark deltas. if that's not your idea of a good read, this isn't your newsletter.

Folds into your digest — weekly by default, monthly if you prefer. Unsubscribe in one click.

all vuejs reviews →