Drop-in scope
@vizejs/vite-plugin is a drop-in replacement for @vitejs/plugin-vue on Vue 3 SFCs
(<script setup> and Options API). Vue 2 / 2.7 (vue.version: "2" / "2.7") is
incubating and opt-in, webpack / rollup / esbuild / Rspack are outside the drop-in claim
(@vizejs/unplugin and @vizejs/rspack-plugin are experimental), and plugin-option
parity with @vitejs/plugin-vue is still incomplete.
See Drop-in Scope and
#3227.
What's Changed
- test(content-mapper): require Vue declaration maps by @ubugeeei in #4809
- feat(davinci): emit dynamic bind keys by @ubugeeei in #4811
- refactor(davinci): use ordinary module layout by @ubugeeei in #4816
- test(glyph): compare stable Pug compiler warnings by @ubugeeei in #4823
- docs(davinci): reconcile Phase 2 evidence ledger by @ubugeeei in #4824
- test(content-mapper): prove declaration map navigation by @ubugeeei in #4812
- refactor(davinci): make Carton the S0 foundation by @ubugeeei in #4822
- perf(davinci): audit compact storage and std boundaries by @ubugeeei in #4828
- refactor(atelier-core): use ordinary module layout by @ubugeeei in #4826
- test(davinci): establish TS-40 projection differential lane by @ubugeeei in #4825
- test(content-mapper): cover declaration map type queries by @ubugeeei in #4830
- test(content-mapper): align declaration-map lsp conformance by @ubugeeei in #4843
- refactor(davinci): rename S1 crate to vize_s1 by @ubugeeei in #4844
- test(davinci): pin consumer migration surfaces by @ubugeeei in #4842
- test(davinci): use stage aliases in fuzz harness by @ubugeeei in #4847
- ci(davinci): upload compact storage bench reports by @ubugeeei in #4849
- refactor(glyph): use S0 alias for allocation by @ubugeeei in #4850
- test(content-mapper): stabilize exact LSP oracle by @ubugeeei in #4846
- test(davinci): classify S2 DOM unsupported shapes by @ubugeeei in #4852
- test(davinci): pin DOM patch flag parity by @ubugeeei in #4848
- test(davinci): extend s2 DOM patch flag witness by @ubugeeei in #4855
- fix(davinci): fail closed on invalid bench report dirs by @ubugeeei in #4856
- perf(davinci): gate compact storage wall baselines by @ubugeeei in #4853
- refactor(davinci): use S1-to-S2 alias in DOM tests by @ubugeeei in #4851
- fix(davinci): stabilize compact storage wall gate by @ubugeeei in #4857
- test(davinci): track stage alias adoption by @ubugeeei in #4854
- test(davinci): pin corpus hydration preflight by @ubugeeei in #4858
- refactor(davinci): use s0 alias in vize crate by @ubugeeei in #4859
- feat(davinci): emit vue2 filters in s2 dom lane by @ubugeeei in #4860
- refactor(davinci): rename s2 package to vize_s2 by @ubugeeei in #4861
- test(davinci): cover s2 dom witnesses in alias guard by @ubugeeei in #4863
- test(davinci): add s2 dom binding build fixture by @ubugeeei in #4864
- test(davinci): add vue2 filter build fixture by @ubugeeei in #4865
- feat(davinci): emit modifier-free dynamic v-on keys by @ubugeeei in #4866
- refactor(patina): use ordinary module layout by @ubugeeei in #4867
- refactor(atelier-sfc): use ordinary module layout by @ubugeeei in #4868
- refactor(croquis): use ordinary module layout by @ubugeeei in #4869
- refactor(vapor): use ordinary module layout by @ubugeeei in #4871
- test(davinci): fail closed on partial differential corpus by @ubugeeei in #4873
- perf(patina): stream JSX markup roots by @ubugeeei in #4874
- test(lsp): add ant-design-vue authored oracle by @ubugeeei in #4875
- fix(davinci): re-record compact-storage wall baselines from the reference runner by @ubugeeei in #4877
- perf(maestro): keep local script-setup references on the project surface by @ubugeeei in #4878
- fix(davinci): preserve file-absolute SFC spans by @ubugeeei in #4872
- fix(davinci): demote compact-storage wall gates to report-only by @ubugeeei in #4880
- test(content-mapper): pin authored declaration map sources by @ubugeeei in #4881
- fix(matrix): retarget outside compilerOptions plugin paths by @ubugeeei in #4884
- fix(matrix): retarget outside vueCompilerOptions plugin paths by @ubugeeei in #4883
- fix(matrix): retarget outside jsxImportSource paths by @ubugeeei in #4885
- fix(matrix): scope package-local baseline declarations by @ubugeeei in #4882
- test(content-mapper): prove declaration map LSP coordinates by @ubugeeei in #4879
- fix(matrix): pin Vue runtime overlay paths onto the fixture copy by @ubugeeei in #4886
- test(matrix): expect jsx runtime path overlays by @ubugeeei in #4916
- test(content-mapper): cover project reference declaration maps by @ubugeeei in #4914
- fix(canon): treat vue/* subpaths as native runtime support by @ubugeeei in #4917
- fix(canon): prefer value bindings over type-only PascalCase aliases by @ubugeeei in #4915
- fix(davinci): preserve vue2 filter helper order by @ubugeeei in #4919
- fix(canon): allow open native-root fallthrough attrs by @ubugeeei in #4920
- fix(davinci): mirror slot outlet same-name names by @ubugeeei in #4921
- docs(davinci): record slot outlet installments by @ubugeeei in #4922
- fix(matrix): isolate shard baseline escapes by @ubugeeei in #4923
- test(davinci): broaden patch flag equivalence matrix by @ubugeeei in #4924
- docs(davinci): record patch flag matrix installment by @ubugeeei in #4925
- fix(glyph): separate unusable corpus baselines by @ubugeeei in #4926
- test(davinci): cover dynamic component patch flags by @ubugeeei in #4927
- docs(davinci): record dynamic component patch flags by @ubugeeei in #4928
- test(davinci): cover model listener patch order by @ubugeeei in #4929
- fix(matrix): isolate no-tsconfig typecheck fixtures by @ubugeeei in #4930
- docs(davinci): record model listener patch order by @ubugeeei in #4932
- fix(davinci): elide static attrs on slot templates by @ubugeeei in #4931
- fix(davinci): emit dynamic component model arguments by @ubugeeei in #4933
- docs(davinci): record dynamic model arguments by @ubugeeei in #4936
- fix(matrix): harden typecheck subprocess timeouts by @ubugeeei in #4935
- refactor(davinci): align canon content mapper with s0 by @ubugeeei in #4937
- refactor(davinci): align maestro lsp with s0 by @ubugeeei in #4940
- test(matrix): tolerate non-gogocode glyph shards by @ubugeeei in #4941
- fix(syntax): classify pug filter names by @ubugeeei in #4942
- fix(matrix): separate typechecker dependency coverage by @ubugeeei in #4943
- fix(matrix): follow package extends through parent configs by @ubugeeei in #4944
- refactor(davinci): align atelier s2 witnesses with s1-to-s2 by @ubugeeei in #4945
- fix(matrix): pin fixture-local pnpm vue runtime paths by @ubugeeei in #4946
- refactor(atelier): import SSR S0 storage through stage alias by @ubugeeei in #4947
- fix(matrix): refresh vue-storefront fixture count by @ubugeeei in #4948
- refactor(atelier): import DOM S0 storage through stage alias by @ubugeeei in #4949
- fix(patina): align deprecated slot attribute span by @ubugeeei in #4951
- fix(canon): honor vueCompilerOptions.checkUnknownProps like vue-tsc by @ubugeeei in #4918
- feat(ui): add shortcut, command, and history primitives by @ubugeeei in #4957
- refactor(patina): import S0 storage through stage alias by @ubugeeei in #4958
- feat(ui): add virtualizer and measurement primitives by @ubugeeei in #4960
- feat(ui): add presence, portal, live-region, and locale primitives by @ubugeeei in #4938
- feat(ui): adopt the nesting CSS pipeline and kebab-case authoring by @ubugeeei in #4959
- test(tooling): add vue-bits and shadcn-vue authored lsp oracles by @ubugeeei in #4969
- feat(ui): add drag-and-drop and sortable primitives by @ubugeeei in #4970
- refactor(fresco): import S0 storage through stage alias by @ubugeeei in #4971
- feat(fresco): add cross-platform CI lanes for the JS and Rust suites by @ubugeeei in #4968
- fix(fresco): use S0 alias in panic hook tests by @ubugeeei in #4975
- fix(patina): align attribute hyphenation arguments by @ubugeeei in #4967
- test(canon): pin inherited paths under child baseUrl by @ubugeeei in #4972
- refactor(davinci): add shared physical stage identifiers by @ubugeeei in #4974
- refactor(curator): import S0 storage through stage alias by @ubugeeei in #4976
- fix(patina): match no-lone-template slot boundaries by @ubugeeei in #4977
- fix(patina): align attribute order with formatter slots by @ubugeeei in #4978
- fix(patina): match reserved component parity by @ubugeeei in #4979
- fix(fixtures): isolate formatter matrix snapshots by @ubugeeei in #4980
- feat(ui): finish the overlay-primitive inventory for portal and positioner by @ubugeeei in #4973
- test(ricalco): pin source-block lowering spans by @ubugeeei in #4983
- fix(patina): count class array objects via parser by @ubugeeei in #4984
- fix(cli): fail closed when the resolved oxlint binary is a non-lint wrapper shim by @ubugeeei in #4987
- feat(ui): motion tokens, easing recipes, and view transition adapters by @ubugeeei in #4986
- fix(patina): allow whitespace-only mustaches by @ubugeeei in #4991
- ci(ricalco): require TS-20 lowering corpus lane by @ubugeeei in #4990
- test(ricalco): pin source-block side-table spans by @ubugeeei in #4989
- test(ricalco): pin source-block tokenizer error spans by @ubugeeei in #4993
- fix(canon): resolve $route strictly and match tsc on side-effect imports by @ubugeeei in #4988
- fix(canon): honor tsc -p file sets for referenced workspaces and accept real HTML attrs in strict prop checks by @ubugeeei in #4992
- test(dom): pin modified v-on patch flags by @ubugeeei in #4995
- fix(canon): isolate component event handler assignments by @ubugeeei in #4994
- feat(ui): add announcer, error-summary, and field-wiring primitives by @ubugeeei in #4985
- fix(fuzz): skip number-folding math in percentage-only slots in css_parse by @ubugeeei in #4981
- fix(canon): stop inline event-handler assignments from narrowing sibling template bindings by @ubugeeei in #4996
- fix(atelier): normalize keyed v-bind branch spreads by @ubugeeei in #4997
- feat(ui): design tokens, cascade layers, and the atelier preset by @ubugeeei in #4998
- fix(patina): quiet four opinionated vue rule false positives by @ubugeeei in #4982
- feat(ui): add paper theme preset by @ubugeeei in #4999
- feat(ui): add midnight theme preset by @ubugeeei in #5001
- feat(davinci): emit native v-once from S2 DOM lane by @ubugeeei in #5000
- feat(ui): add signal theme preset by @ubugeeei in #5002
- feat(ui): add play theme preset by @ubugeeei in #5003
- fix(canon): map slot outlet payload names by @ubugeeei in #5005
- feat(ui): add high contrast theme preset by @ubugeeei in #5006
- feat(ui): add headless theme preset by @ubugeeei in #5008
- fix(ricalco): skip SFC style carriers in DOM emit by @ubugeeei in #5009
- docs(davinci): render migration surfaces by physical stage by @ubugeeei in #5015
- test(ricalco): pin P2-10 css-bind spans by @ubugeeei in #5013
- test(ricalco): pin css v-bind scanner parity by @ubugeeei in #5017
- refactor(armature): import s0 storage through stage alias by @ubugeeei in #5019
- fix(ricalco): admit bare template default slots by @ubugeeei in #5011
- refactor(test-runner): import s0 storage through stage alias by @ubugeeei in #5021
- test(content-mapper): pin static slot-name projection fixtures by @ubugeeei in #5023
- docs(davinci): refresh p2-11 installment 29 ledger by @ubugeeei in #5025
- refactor(relief): import s0 storage through stage alias by @ubugeeei in #5027
- fix(perf): reject malformed davinci bench reports by @ubugeeei in #5029
- test(davinci): ratchet consumer migration surfaces by @ubugeeei in #5031
- refactor(marquette): import s0 storage through stage alias by @ubugeeei in #5035
- test(content-mapper): ratchet package resolution workflow by @ubugeeei in #5033
- fix(perf): reject mismatched davinci bench identity by @ubugeeei in #5037
- test(davinci): pin formatter corpus evidence hashing by @ubugeeei in #5039
- refactor(doctor): import s0 storage through stage alias by @ubugeeei in #5041
- test(doctor): assert s0 alias via parsed manifest by @ubugeeei in #5043
- test(lsp): pin davinci ts40 prop diagnostics by @ubugeeei in #5045
- test(content-mapper): pin defineModel TS-40 projection coverage by @ubugeeei in #5047
- test(content-mapper): pin defineModel LSP navigation by @ubugeeei in #5049
- refactor(canon): import LSP client storage through s0 alias by @ubugeeei in #5051
- refactor(atelier): import compiler slots through s0 alias by @ubugeeei in #5053
- refactor(atelier): import compiler props through s0 alias by @ubugeeei in #5055
- refactor(atelier): import compiler v-if through s0 alias by @ubugeeei in #5057
- refactor(atelier): import compiler v-for through s0 alias by @ubugeeei in #5059
- refactor(atelier): import compiler element through s0 alias by @ubugeeei in #5061
- refactor(atelier): import compiler context through s0 alias by @ubugeeei in #5063
- refactor(atelier): import compiler source map through s0 alias by @ubugeeei in #5065
- refactor(atelier): import compiler component binding through s0 alias by @ubugeeei in #5067
- refactor(atelier): import compiler children through s0 alias by @ubugeeei in #5069
- refactor(atelier): import emit codegen through s0 alias by @ubugeeei in #5071
- refactor(atelier): import expression codegen through s0 alias by @ubugeeei in #5073
- refactor(atelier): import generate codegen through s0 alias by @ubugeeei in #5075
- refactor(atelier): import node codegen through s0 alias by @ubugeeei in #5077
- refactor(atelier): import patch flag codegen through s0 alias by @ubugeeei in #5079
- refactor(atelier): import patch flag static literal through s0 alias by @ubugeeei in #5081
- refactor(atelier): import root codegen through s0 alias by @ubugeeei in #5083
- refactor(atelier): import runtime helpers through s0 alias by @ubugeeei in #5085
- refactor(atelier): import lane options through s0 alias by @ubugeeei in #5087
- refactor(atelier): import structural keys through s0 alias by @ubugeeei in #5089
- refactor(atelier): import lane context through s0 alias by @ubugeeei in #5091
- refactor(atelier): import codegen helpers through s0 alias by @ubugeeei in #5093
- refactor(atelier): import lane element through s0 alias by @ubugeeei in #5095
- refactor(atelier): import lane extensions through s0 alias by @ubugeeei in #5097
- refactor(atelier): import remaining lane modules through s0 alias by @ubugeeei in #5099
- refactor(atelier): import element step through s0 alias by @ubugeeei in #5101
- refactor(atelier): import expression steps through s0 alias by @ubugeeei in #5103
- refactor(atelier): import hoist static steps through s0 alias by @ubugeeei in #5105
- refactor(atelier): import legacy steps through s0 alias by @ubugeeei in #5107
- refactor(atelier): import directive steps through s0 alias by @ubugeeei in #5109
- refactor(atelier): import internal tests through s0 alias by @ubugeeei in #5111
- refactor(canon): import TS7006 fixture through S0 alias by @ubugeeei in #5113
- refactor(canon): import global callback fixtures through S0 alias by @ubugeeei in #5115
- refactor(canon): import directive anchor fixtures through S0 alias by @ubugeeei in #5117
- refactor(canon): import directive value fixtures through S0 alias by @ubugeeei in #5119
- refactor(canon): import external slot payload fixtures through S0 alias by @ubugeeei in #5121
- refactor(canon): import fallthrough attr fixtures through S0 alias by @ubugeeei in #5123
- refactor(canon): import global html fallthrough attrs through S0 alias by @ubugeeei in #5125
- refactor(canon): import generic emit guard through S0 alias by @ubugeeei in #5127
- refactor(canon): import literal union props guard through S0 alias by @ubugeeei in #5129
- refactor(canon): import single required camel prop guard through S0 alias by @ubugeeei in #5132
- refactor(canon): import strict route instance global guard through S0 alias by @ubugeeei in #5134
- refactor(canon): import unmapped template fallback guard through S0 alias by @ubugeeei in #5136
- refactor(canon): import TS extension substitution guard through S0 alias by @ubugeeei in #5138
- refactor(canon): import template instance props guard through S0 alias by @ubugeeei in #5140
- refactor(canon): import template instance type-only guard through S0 alias by @ubugeeei in #5142
- refactor(canon): import template instance options API guard through S0 alias by @ubugeeei in #5144
- refactor(canon): import template key expression guard through S0 alias by @ubugeeei in #5146
- refactor(canon): import template key dialect baselines through S0 alias by @ubugeeei in #5148
- refactor(canon): import exact optional props guard through S0 alias by @ubugeeei in #5150
- refactor(canon): import diagnostic normalization guard through S0 alias by @ubugeeei in #5152
- refactor(canon): import v-for source callbacks through S0 alias by @ubugeeei in #5154
- refactor(canon): import split script anchors through S0 alias by @ubugeeei in #5156
- refactor(canon): import component options index guard through S0 alias by @ubugeeei in #5158
- refactor(canon): import side effect import guard through S0 alias by @ubugeeei in #5160
- refactor(canon): import options API bridge guard through S0 alias by @ubugeeei in #5162
- refactor(canon): import generic callback union guard through S0 alias by @ubugeeei in #5164
- refactor(canon): import namespace hoist tests through S0 alias by @ubugeeei in #5166
- refactor(canon): import plain export tests through S0 alias by @ubugeeei in #5168
- refactor(canon): import template ref registry tests through S0 alias by @ubugeeei in #5170
- refactor(canon): import callback prop guard through S0 alias by @ubugeeei in #5172
- refactor(canon): import wide props guard through S0 alias by @ubugeeei in #5174
- refactor(canon): import guarded callback props through S0 alias by @ubugeeei in #5176
- fix(ricalco): elide inert slot-template bindings by @ubugeeei in #5178
- fix(corsa): use JSON-RPC for TypeScript 7 runtimes by @ubugeeei in #5180
- fix(security): pin Musea postMessage, loopback writes, MCP source, and VS Code downloads by @cursor[bot] in #4934
- fix(security): pin Musea postMessage, loopback writes, MCP source, and VS Code downloads by @cursor[bot] in #4840
- fix(security): pin Musea postMessage, loopback writes, MCP source, and VS Code downloads by @cursor[bot] in #5130
- fix(ricalco): emit slot-template carriers inline by @ubugeeei in #5183
- docs(davinci): refresh p2-11 slot-template carrier ledger by @ubugeeei in #5185
- test(content-mapper): pin transform wire DTO shape by @ubugeeei in #5187
- fix(canon): avoid replaying cached package route bindings by @ubugeeei in #5188
- fix(ricalco): emit dynamic v-on modifiers by @ubugeeei in #5190
- fix(ricalco): match shipped dynamic template literal keys by @ubugeeei in #5192
- fix(ricalco): emit v-memo from S2 DOM by @ubugeeei in #5194
- fix(ricalco): keep siblings when nested slot templates unwrap by @cursor[bot] in #5181
- fix(canon): resolve TypeScript 7 tsc wrappers by @ubugeeei in #5195
- fix: use stable TypeScript 7 runtime for vize check by @ubugeeei in #5196
- feat: add vue.show to the S2 DOM lane by @ubugeeei in #5198
- feat: add vue.html to the S2 DOM lane by @ubugeeei in #5200
- feat: add vue.text to the S2 DOM lane by @ubugeeei in #5203
- feat: add vue.cloak to the S2 DOM lane by @ubugeeei in #5205
- fix(ricalco): emit slot outlet v-on props by @ubugeeei in #5207
- fix(ricalco): emit object v-bind modifiers by @ubugeeei in #5208
- fix(ricalco): emit object v-on modifiers by @ubugeeei in #5210
- test(dom): cover recent s2 patch flags by @ubugeeei in #5212
- test(davinci): pin stage publish graph firewall by @ubugeeei in #5214
- refactor(davinci): rename s2 crate directory by @ubugeeei in #5217
- fix(canon): materialize TS7 Vue overlay diagnostics by @ubugeeei in #5219
- fix(canon): materialize TS7 LSP fallback overlays by @ubugeeei in #5221
- test(canon): gate TS7 ProjectSession-only probes by @ubugeeei in #5223
- test(patina): gate TS runtime ProjectSession smoke by @ubugeeei in #5225
- refactor(davinci): rename s1-to-s2 crate by @ubugeeei in #5227
- refactor(vitrine): import s0 storage through stage alias by @ubugeeei in #5229
- refactor(davinci): rename compact-storage bench ids to s1_to_s2 by @ubugeeei in #5231
- test(tooling): add Vben authored LSP oracle by @ubugeeei in #5234
- test(tooling): guard TypeScript 7 user guidance by @ubugeeei in #5236
- refactor(atelier): remove Atelier core S0 code-name alias by @ubugeeei in #5238
- refactor(patina): port no-i-for-icon to markup facade by @ubugeeei in #5240
- bench(tools): rate the type-check surface against its same-engine incumbent by @ubugeeei in #5241
- refactor(patina): port mouse-events a11y rule to markup facade by @ubugeeei in #5243
- refactor(patina): port no-redundant-roles to markup facade by @ubugeeei in #5245
- fix(patina): avoid drop_non_drop in Davinci markup bench by @ubugeeei in #5247
- refactor(patina): port deprecated-attr to markup facade by @ubugeeei in #5249
- refactor(nix): split the flake into per-concern modules by @ubugeeei in #5250
- feat(ui): add theme scope bootstrap contract by @ubugeeei in #5252
- feat(ui): add locale formatter helpers by @ubugeeei in #5255
- test(ui): run toolchain gates in package check by @ubugeeei in #5256
- chore(tooling): update pnpm to v12 by @ubugeeei in #5251
- refactor(patina): port media-has-caption to markup facade by @ubugeeei in #5254
- feat(ui): add Standard Schema form foundations by @ubugeeei in #5258
- test(ui): add story testbed inventory harness by @ubugeeei in #5259
- feat(ui): add toggle button primitive by @ubugeeei in #5261
- refactor(patina): port no-consecutive-br to markup facade by @ubugeeei in #5263
- feat(ui): add source registry CLI foundation by @ubugeeei in #5260
- refactor(patina): port no-aria-hidden focus rule to markup facade by @ubugeeei in #5266
- feat(ui): add native input primitive by @ubugeeei in #5264
- feat(ui): add native textarea primitive by @ubugeeei in #5267
- refactor(patina): port presentation role focus rule to markup facade by @ubugeeei in #5269
- fix(ui): track textarea composition emptiness by @ubugeeei in #5270
- feat(ui): add native search field primitive by @ubugeeei in #5271
- fix(cli): require TypeScript 7 for bundled check runtime by @ubugeeei in #5273
- fix(ui): make search clear slot optional by @ubugeeei in #5274
- feat(ui): add native link primitive by @ubugeeei in #5275
- refactor(patina): port interactive focus rule to markup facade by @ubugeeei in #5277
- refactor(patina): port iframe title rule to markup facade by @ubugeeei in #5280
- feat(ui): add native switch primitive by @ubugeeei in #5278
- feat(ui): add native alert primitive by @ubugeeei in #5281
- refactor(patina): port no-duplicate-class rule to markup facade by @ubugeeei in #5283
- feat(ui): add native progress primitive by @ubugeeei in #5284
- refactor(patina): port no-duplicate-dt rule to markup facade by @ubugeeei in #5287
- test(tooling): exempt package manifests from source length ratchet by @ubugeeei in #5288
- feat(ui): add aspect ratio primitive by @ubugeeei in #5285
- refactor(patina): port require-datetime rule to markup facade by @ubugeeei in #5290
- feat(ui): add separator primitive by @ubugeeei in #5291
- refactor(patina): port no-dupe-style-properties to markup facade by @ubugeeei in #5293
- feat(ui): add skeleton primitive by @ubugeeei in #5294
- feat(ui): add dialog foundation primitive by @ubugeeei in #5295
- refactor(patina): port heading-levels to markup facade by @ubugeeei in #5297
- feat(ui): add native meter primitive by @ubugeeei in #5298
- feat(tools): add Rust Script command surface by @ubugeeei in #5257
- feat(ui): add alert dialog primitive by @ubugeeei in #5299
- refactor(patina): port placeholder-label-option to markup facade by @ubugeeei in #5301
- feat(ui): add locale display and collation helpers by @ubugeeei in #5302
- feat(ui): add spacer primitive by @ubugeeei in #5303
- feat(ui): add field composition components by @ubugeeei in #5304
- feat(ui): add collapsible primitive by @ubugeeei in #5305
- feat(ui): add stack primitive by @ubugeeei in #5306
- refactor(patina): port no-boolean-attr-value to markup facade by @ubugeeei in #5308
- feat(ui): add badge primitive by @ubugeeei in #5309
- feat(ui): add cluster primitive by @ubugeeei in #5311
- feat(ui): add container primitive by @ubugeeei in #5312
- feat(ui): add grid primitive by @ubugeeei in #5313
- refactor(patina): port use-list to markup facade by @ubugeeei in #5315
- feat(ui): add empty state primitive by @ubugeeei in #5316
- feat(ui): add card primitive by @ubugeeei in #5317
- feat(ui): add text primitive by @ubugeeei in #5318
- refactor(patina): port no-bare-strings to markup facade by @ubugeeei in #5320
- feat(ui): add heading primitive by @ubugeeei in #5321
- feat(ui): add block ui primitive by @ubugeeei in #5322
- refactor(patina): port no-multi-spaces to markup facade by @ubugeeei in #5324
- feat(ui): add kbd primitive by @ubugeeei in #5325
- test(ui): harden theme preset matrix by @ubugeeei in #5326
- feat(ui): add code primitive by @ubugeeei in #5327
- refactor(patina): migrate no-inline-style to markup facade by @ubugeeei in #5329
- feat(ui): add blockquote primitive by @ubugeeei in #5330
- feat(ui-tooling): add source install dry-run planner by @ubugeeei in #5331
- feat(ui): add list primitive by @ubugeeei in #5332
- test(ui): harden toggle prop contract by @ubugeeei in #5333
- feat(ui): add avatar primitive by @ubugeeei in #5334
- feat(ui): add radio group primitive by @ubugeeei in #5335
- refactor(patina): migrate vue/no-textarea-mustache to markup facade by @ubugeeei in #5337
- feat(ui): add toggle group primitive by @ubugeeei in #5338
- feat(ui): add tooltip primitive by @ubugeeei in #5339
- refactor(patina): add markup context ancestry substrate by @ubugeeei in #5341
- feat(ui): add breadcrumb primitive by @ubugeeei in #5342
- feat(ui): add tabs primitive by @ubugeeei in #5343
- feat(ui): add listbox primitive by @ubugeeei in #5344
- refactor(patina): move permitted-contents onto markup facade by @ubugeeei in #5346
- feat(ui): add stepper primitive by @ubugeeei in #5347
- feat(ui): add pagination primitive by @ubugeeei in #5348
- feat(ui): add spinner primitive by @ubugeeei in #5351
- refactor(patina): move form-control-has-label onto markup facade by @ubugeeei in #5350
- feat(ui): add status light primitive by @ubugeeei in #5354
- refactor(patina): move anchor-is-valid onto markup facade by @ubugeeei in #5355
- feat(ui): add icon primitives by @ubugeeei in #5356
- fix(ui): keep icon expose reactive by @ubugeeei in #5358
- fix(s1-to-s2): keep both nested slots when wrappers unwrap by @cursor[bot] in #5232
- fix(oxlint): harden plugin bridge by @ubugeeei in #5353
- test(davinci): pin corpus comparison count by @ubugeeei in #5359
- perf(davinci): gate p2-11 dom allocations by @ubugeeei in #5360
- fix(atelier): prefix identifiers in dynamic bind and on keys by @cursor[bot] in #4862
- feat(ui): add slider primitive by @ubugeeei in #5361
- fix(s1-to-s2): keep single nested slot wrappers default by @ubugeeei in #5363
- feat(ui): add native select primitive by @ubugeeei in #5364
- refactor(patina): move heading-has-content onto markup facade by @ubugeeei in #5366
- docs(davinci): record p2-11 latest gates by @ubugeeei in #5365
- feat(ui): add popover primitive by @ubugeeei in #5368
- test(davinci): refresh corpus baseline scope by @ubugeeei in #5369
- docs(davinci): record p2-9 corpus residual by @ubugeeei in #5367
- feat(tools): migrate legacy commands to Rust Script by @ubugeeei in #5362
- docs(davinci): record p2 exit blockers by @ubugeeei in #5370
- fix(matrix): keep pnpm store out of generated baselines by @ubugeeei in #5372
- feat(ui): add button group primitive by @ubugeeei in #5371
- fix(davinci): cover p2-11 event model slot residuals by @ubugeeei in #5373
- feat(davinci): surface p2-12b build walk counts by @ubugeeei in #5374
- fix(ui): reject duplicate button group item values by @ubugeeei in #5375
- test(ui): guard sfc lint preset wiring by @ubugeeei in #5382
- fix(davinci): harden p2-11 handler bodies by @ubugeeei in #5379
- fix(davinci): match static class patch flags by @ubugeeei in #5380
- fix(davinci): emit if branches containing v-for by @ubugeeei in #5376
- feat(ui): add surface and callout primitives by @ubugeeei in #5378
- feat(ui): add banner primitive by @ubugeeei in #5385
- fix(lsp): fail fast on deleted component import targets by @ubugeeei in #5384
- fix(davinci): emit component once wrappers by @ubugeeei in #5386
- refactor(ui): move tooltip into overlay family by @ubugeeei in #5388
- test(davinci): add p2-11 dom corpus lane by @ubugeeei in #5387
- fix(davinci): emit opaque bind and empty text edges by @ubugeeei in #5390
- feat(ui): add feedback tone theme tokens by @ubugeeei in #5389
- refactor(ui): move dialog into overlay family by @ubugeeei in #5392
- fix(davinci): admit trailing block comments in js expressions by @ubugeeei in #5391
- test(davinci): pin authored s2 artifact spans by @ubugeeei in #5393
- fix(davinci): admit keyed slot template forwarding by @ubugeeei in #5381
- refactor(ui): move locale into i18n family by @ubugeeei in #5394
- fix(davinci): keep slot text facts aligned by @ubugeeei in #5396
- test(davinci): pin v-memo patch flags by @ubugeeei in #5398
- feat(ui): add rating primitive by @ubugeeei in #5395
- fix(davinci): admit line-comment expression edges by @ubugeeei in #5399
- test(davinci): run dom corpus lane in ci by @ubugeeei in #5401
- test(davinci): pin v-once patch flag sites by @ubugeeei in #5400
- test(davinci): pin slot outlet patch sites by @ubugeeei in #5404
- feat(ui): add scroll area and skip link primitives by @ubugeeei in #5403
- test(davinci): harden s2 authored span oracle by @ubugeeei in #5402
- test(davinci): pin createSlots patch sites by @ubugeeei in #5405
- feat(ui): add table primitive by @ubugeeei in #5407
- feat(ui): publish theme css entrypoints by @ubugeeei in #5409
- feat(ui): add toolbar primitive by @ubugeeei in #5410
- feat(ui): add copy button primitive by @ubugeeei in #5412
- docs(davinci): record latest p2-11 witnesses by @ubugeeei in #5411
- ci(davinci): gate hydrated s2 dom corpus by @ubugeeei in #5408
- feat(ui): add print button primitive by @ubugeeei in #5414
- fix(davinci): preserve slot helper order by @ubugeeei in #5415
- fix(davinci): hoist static directive children by @ubugeeei in #5416
- feat(ui): add fullscreen button primitive by @ubugeeei in #5417
- fix(davinci): skip static literal bind patch sites by @ubugeeei in #5413
- test(tooling): guard oxlint directory spelling by @ubugeeei in #5418
- feat(ui): add share button primitive by @ubugeeei in #5420
- test(ui): guard family directory layout by @ubugeeei in #5421
- refactor(ui): rehome typography primitives by @ubugeeei in #5424
- feat(ui): add progress bar primitive by @ubugeeei in #5425
- fix(davinci): gate static prop hoists by subtree facts by @ubugeeei in #5419
- refactor(ui): rehome feedback primitives by @ubugeeei in #5426
- refactor(ui): rehome layout primitives by @ubugeeei in #5427
- refactor(ui): rehome form field primitives by @ubugeeei in #5428
- refactor(ui): rehome navigation primitives by @ubugeeei in #5430
- test(davinci): harden s1 lowering fuzz oracle by @ubugeeei in #5432
- refactor(ui): rehome selection primitives by @ubugeeei in #5431
- refactor(ui): rehome overlay primitives by @ubugeeei in #5434
- test(davinci): gate s2 dom corpus evidence by @ubugeeei in #5433
- refactor(ui): rehome interaction primitives by @ubugeeei in #5435
- refactor(ui): rehome accessibility primitives by @ubugeeei in #5437
- fix(davinci): match v-for child prop layout by @ubugeeei in #5436
- refactor(ui): rehome button primitive by @ubugeeei in #5438
- refactor(ui): rehome foundation utilities by @ubugeeei in #5439
- refactor(ui): rehome deterministic id by @ubugeeei in #5441
- refactor(ui): rehome collapsible primitive by @ubugeeei in #5442
- refactor(ui): rehome link primitive by @ubugeeei in #5443
- fix(davinci): cache static namespace siblings by @ubugeeei in #5440
- refactor(ui): rehome transition primitive by @ubugeeei in #5444
- refactor(ui): rehome command router by @ubugeeei in #5445
- refactor(ui): rehome error summary family by @ubugeeei in #5446
- refactor(s2): add S2 folio stage name by @ubugeeei in #5447
- refactor(ui): rehome measure utilities by @ubugeeei in #5449
- refactor(ui): rehome typeahead utility by @ubugeeei in #5450
- refactor(ui): rehome history utility by @ubugeeei in #5451
- refactor(atelier): import SFC S0 storage through stage alias by @ubugeeei in #5452
- refactor(davinci): use S2 folio name in S1 lowering by @ubugeeei in #5453
- refactor(canon): import template refs S0 through stage alias by @ubugeeei in #5454
- refactor(atelier): import empty component S0 through stage alias by @ubugeeei in #5455
- refactor(atelier): import compile diagnostics S0 through stage alias by @ubugeeei in #5456
- fix(davinci): normalize bare object style binds by @ubugeeei in #5457
- fix(davinci): retry DOM corpus hydrate serially by @ubugeeei in #5459
- test(davinci): pin owned folio span contracts by @ubugeeei in #5458
- test(davinci): compare compatibility-notice corpus inputs by @ubugeeei in #5461
- refactor(canon): import SFC typecheck S0 through stage alias by @ubugeeei in #5460
- refactor(atelier): import SFC bindings S0 through stage alias by @ubugeeei in #5463
- fix(davinci): cache static element siblings as arrays by @ubugeeei in #5462
- fix(davinci): wrap typed arrow event handlers by @ubugeeei in #5464
- fix(davinci): format nested cached static arrays by @ubugeeei in #5465
- fix(davinci): compare nested interactive recoveries by @ubugeeei in #5467
- fix(davinci): preserve static hoist node ids by @ubugeeei in #5468
- fix(davinci): normalize raw js comment props by @ubugeeei in #5469
- fix(davinci): decode named entity text by @ubugeeei in #5474
- fix(fixtures): classify lint rule location divergences by @ubugeeei in #5470
- test(davinci): report DOM corpus old-lane error reasons by @ubugeeei in #5479
- fix(davinci): carry static vnode hoist context by @ubugeeei in #5480
- fix(davinci): preserve raw comment expression emit by @ubugeeei in #5478
- fix(glyph): stabilize charset comment formatting by @ubugeeei in #5485
- fix(davinci): preserve nested hoist parity by @ubugeeei in #5483
- fix(davinci): match cached static prop formatting by @ubugeeei in #5482
- fix(davinci): preserve s2 helper order parity by @ubugeeei in #5484
- fix(patina): ignore slot outlets for v-for key by @ubugeeei in #5486
- fix(davinci): block keyed transition slot roots by @ubugeeei in #5488
- fix(davinci): keep static refs out of vnode hoists by @ubugeeei in #5481
- fix(davinci): suppress static spread patch keys by @ubugeeei in #5489
- fix(davinci): skip static component style normalization by @ubugeeei in #5491
- fix(davinci): preserve transition slot edge parity by @ubugeeei in #5492
- fix(davinci): preserve AIRI DOM preamble order by @ubugeeei in #5493
- fix(davinci): preserve TS cast model updates by @ubugeeei in #5494
- fix(davinci): preserve spread style patch keys by @ubugeeei in #5496
- fix(canon): infer emit props for imported components by @ubugeeei in #5490
- fix(canon): resolve literal dynamic slot names by @ubugeeei in #5487
- fix(davinci): detect TS-only model syntax structurally by @ubugeeei in #5498
- fix(corsa): suppress recursive union false positives by @ubugeeei in #5495
- fix(davinci): skip normalizeStyle for static style binds by @ubugeeei in #5497
- fix(maestro): resolve dotted basename imports by @ubugeeei in #5502
- fix(davinci): block keyed nested components by @ubugeeei in #5499
- fix(davinci): preserve block handler line comments by @ubugeeei in #5501
- refactor(ui): group flat npm ui family files by @ubugeeei in #5500
- fix(davinci): preserve static hoist text separators by @ubugeeei in #5505
- fix(davinci): preserve template slot helper order by @ubugeeei in #5504
- fix(davinci): align static icon hoist order by @ubugeeei in #5506
- refactor(ui): remove core package split and root family barrels by @ubugeeei in #5509
- ci: build native package before js checks by @ubugeeei in #5510
- fix(davinci): preserve multiline prop value source by @ubugeeei in #5508
- fix(davinci): seed namespace for bare svg tags by @ubugeeei in #5514
- ci: unblock v0.388.0 release checks by @ubugeeei in #5511
- refactor(typechecker): remove content-mapper croquis naming dependency by @ubugeeei in #5507
- fix(davinci): recover nested interactive end tags by @ubugeeei in #5515
- test(davinci): pin s1 record stage alias by @ubugeeei in #5516
- fix(davinci): align mathml integration namespaces by @ubugeeei in #5517
- refactor(tools): port commands to Rust Script by @ubugeeei in #5513
- ci: add zizmor workflow scanning by @ubugeeei in #5518
- chore(tools): drop root local action config by @ubugeeei in #5521
- fix(davinci): close DOM corpus parity gaps by @ubugeeei in #5519
- fix(davinci): preserve nested interactive close identity by @ubugeeei in #5520
- fix(davinci): preserve raw handler expressions by @ubugeeei in #5531
- refactor(tools): move vite-plus config under tools by @ubugeeei in #5530
- refactor(tools): move nix modules under tools by @ubugeeei in #5532
- docs(davinci): record latest P2-11 witnesses by @ubugeeei in #5534
- fix(davinci): preserve dynamic-component directive patch flags by @ubugeeei in #5536
- test(davinci): pin P2-8 lowering totality witnesses by @ubugeeei in #5537
- refactor(tools): consolidate benchmark assets by @ubugeeei in #5535
- refactor(tools): move Rust Script support by use case by @ubugeeei in #5539
- fix(davinci): preserve template-wrapper component props by @ubugeeei in #5533
- test(davinci): pin P2-11 stage feature firewall by @ubugeeei in #5538
- refactor(tools): port benchmark dispatcher to Rust Script by @ubugeeei in #5540
- refactor(tools): port source length check to Rust Script by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5541
- refactor(tools): port warning budget check to Rust Script by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5542
- fix(davinci): keep component class binds inline by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5543
- refactor(tools): port npm tag helper to Rust Script by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5545
- test(davinci): pin fixture tool coverage surfaces by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5546
- docs(davinci): record latest P2-11 installments by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5544
- refactor(tools): port rule type generator to Rust Script by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5547
- refactor(tools): port source coverage gate to Rust Script by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5548
- refactor(tools): port native optional deps injection to Rust Script by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5549
- refactor(tools): port title policy helper to Rust Script by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5550
- fix(davinci): align nested component prop hoists by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5553
- refactor(tools): port coverage summary helper to Rust Script by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5555
- refactor(tools): port native cleanup helper to Rust Script by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5556
- refactor(tools): port run-many helper to Rust Script by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5558
- fix(davinci): preserve loop component prop order by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5557
- fix(maestro): point LSP typecheck guidance at TypeScript 7 by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5551
- fix(security): confine token reads, generate paths, and MCP leaks by @cursor[bot] in https://github.com/ubugeeei-prod/vize/pull/5201
- fix(atelier): treat computed bind object keys as dynamic by @cursor[bot] in https://github.com/ubugeeei-prod/vize/pull/5503
- fix(atelier): pass prefix_identifiers through DOM codegen by @cursor[bot] in https://github.com/ubugeeei-prod/vize/pull/5377
- fix(davinci): preserve scoped component prop order by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5559
- fix(davinci): preserve slot branch vnode order by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5560
- fix(davinci): preserve runtime directive prop order by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5561
- fix(davinci): close residual DOM corpus gaps by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5552
- fix(davinci): preserve scoped slot key prop order by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5562
- fix(davinci): preserve transition prop hoist order by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5563
- fix(davinci): preserve nested component prop hoist order by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5564
- fix(davinci): keep component static props inline by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5565
- fix(davinci): preserve helper preamble order by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5566
- fix(davinci): preserve directive helper priority by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5567
- fix(davinci): preserve codegen directive helper order by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5568
- fix(davinci): align static prop hoist surfaces by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5569
- fix(davinci): align slot branch key reservations by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5572
- fix(davinci): align modifier helper preamble order by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5573
- fix(davinci): snap tokenizer diagnostics to UTF-8 boundaries by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5575
- fix(release): accept flat job evidence in preflight by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5577
- fix(davinci): close next DOM corpus residuals by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5576
- fix(release): allow VS Code vsce dlx builds by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5579
- fix(release): invoke VS Code vsce through corepack by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5581
- fix(davinci): close residual DOM corpus gaps by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5582
- fix(release): align npm smoke init flags by @ubugeeei in https://github.com/ubugeeei-prod/vize/pull/5584
Full Changelog: v0.387.0...v0.388.0