$ the-wire · showcase
Devtools fixes sparse array previews and same-page navigation
By RepoJournal · Filed · About Vue.js · Composed from the cited sources · methodology
The day's real work landed in vuejs/devtools, where three lifecycle and state-inspection bugs got fixes, while eslint-plugin-vue kept grinding through its TypeScript migration rule batch by rule batch.
fix(chrome): keep detection on same-page navigation vuejs/devtools
Chrome fires tabs.onUpdated with status 'loading' for same-document navigations too, so the background was resetting detection state and the icon went grey on the first Vue Router route change in any web-history app. The fix keeps the reset off those events, so the popup no longer flips to not-found.html until a full reload.
fix(codec): preserve sparse array slots in state previews vuejs/devtools
Array preview entries are now materialized with Array.from instead of slice(...).map(...), which had retained holes; JSON transport turned those holes into null, which is not a ValueEntry and could not be read as preview.key or preview.value. Sparse arrays like a length-3 value with only index 1 set now render every slot in the state inspector.
fix(kit): guard reinstall and stale plugin replay vuejs/devtools
install() on a disposed kit used to reset the flag and reinstall the hook, producing a kit that connected but failed every query with 'Unknown runtime query'; it is now a no-op with a warning. Neither issue is reachable through the Vite or Chrome hosts today, both of which already create a new kit after dispose.
refactor: migrate `require-*` component and template rules to TypeScript vuejs/eslint-plugin-vue
ValentinYoushkevich's TypeScript migration continues, with five more batches covering core wrapper rules, eleven require-* component and template rules, prop and emit require-* rules, props-related script rules, and the four *-after-await rules. utils/scope stays in JavaScript for now: utils/index.js and ts-ast.js still load it with a plain require, which breaks on Node 18 and 20.
chore(deps): update dependency vitest to v5 vuejs/create-vue
create-vue's scaffolding template moves vitest from ^4.1.11 to ^5.0.5, alongside a bump of @playwright/test to ^1.64.1 in the same wave of Renovate updates.