166 wires and counting

$ follow Vue.js

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.

$ status

wire 2026-11-03
stories 35

© 2026 RepoJournal Home Showcase How it works Privacy

$ the-wire · showcase

Suspense stops leaking pending deps; Pinia HMR keeps renamed keys

By RepoJournal · Filed · About Vue.js · Composed from the cited sources · methodology

A cluster of runtime-core fixes closes the Suspense paths that left parent boundaries stuck on their fallback, and Pinia's hot update no longer deletes a property it just wrote when that property changes kind.

fix(suspense): release parent dep on suspensible unmount vuejs/core

by maxymlyskov

A nested <Suspense suspensible> removed while it and its parent are both pending incremented parentSuspense.deps without a matching release, so the outer boundary stayed on its fallback forever with nothing logged. The fix releases that dependency on unmount. This is a breaking change only in the sense that a boundary previously frozen in fallback will now resolve.

fix(suspense): resolve async deps whose pending cycle was discarded vuejs/core

by edison1105

Async components whose pending cycle was discarded, switched away from or revisited, now resolve into the correct branch, and abandoned async work no longer holds up the active one. Hydration is fixed for the same switch-away-and-back case.

fix(hmr): handle properties that change kind (#3203) vuejs/pinia

by Ngo Quoc Viet

Because _hotUpdate applied new state, actions and getters before removing stale keys, a name that changed kind was deleted right after being set: changing <code>const double = computed(() =&gt; n.value * 2)</code> to <code>const double = ref(5)</code> left store.double undefined while store.$state.double was 5, until a full reload. Cleanup now runs first, closing vuejs/pinia#3203.

fix(hydration): only update component el when replacing its host node vuejs/core

by ondrhn

A nested node mismatch during SSR hydration could redirect a component's vnode.el into its own subtree, after which a dynamic component replacement throws NotFoundError, or inserts content after following siblings inside Suspense. Component and HOC host elements now sync only when parentComponent.vnode.el === node.

fix(kit): keep component tree order in sync after reorders vuejs/devtools

by webfansplz

The Components tree kept the old sibling order after a keyed reorder, such as a reversed v-for, because Vue reports component:updated only for the parent. The kit now recomputes children's domOrder and sends the reorder patch the protocol already defined but nothing emitted.

docs: mark the next guard argument as deprecated (#2863) vuejs/router

by Seyi Bello

Also shipped: the router docs now mark the next guard argument as deprecated, devtools resolves vapor component root nodes, and a Dependabot group bumps actions/setup-node to 7.1.0 and actions/upload-artifact.

Quick answers

What shipped in Vue.js on November 3, 2026?
A cluster of runtime-core fixes closes the Suspense paths that left parent boundaries stuck on their fallback, and Pinia's hot update no longer deletes a property it just wrote when that property changes kind. In total, 17 commits and 18 pull requests landed.
Who contributed to Vue.js on November 3, 2026?
7 developers shipped this update, including edison, maxymlyskov, ondrhn, webfansplz, Ngo Quoc Viet, Seyi Bello, and dependabot.
What were the notable Vue.js updates?
fix(suspense): release parent dep on suspensible unmount, fix(suspense): resolve async deps whose pending cycle was discarded, and fix(hmr): handle properties that change kind (#3203).