Reactor 0.1.0-preview.2
Pre-release
Pre-release
·
92 commits
to main
since this release
Reactor 0.1.0-preview.2
Interim distribution — see spec 022 for the rollout plan.
Three assets
Microsoft.UI.Reactor.0.1.0-preview.2.nupkg — the framework
Drop into a folder and add a NuGet source pointing at it:
<!-- nuget.config -->
<configuration>
<packageSources>
<add key="reactor-local" value="C:\path\to\folder\with\nupkg" />
</packageSources>
</configuration>Then in your .csproj:
<PackageReference Include="Microsoft.UI.Reactor" Version="0.1.0-preview.2" />
<PackageReference Include="Microsoft.UI.Reactor.Advanced" Version="0.1.0-preview.2" />Microsoft.UI.Reactor.Advanced.0.1.0-preview.2.nupkg — optional Win2D/advanced controls
Versioned in lock-step with the framework package.
reactor-skill-kit-0.1.0-preview.2.zip — agent skill bundle + mur CLI
Extract, then run:
cd reactor
.\install-skill-kit.ps1Installs to ~/.claude/skills/reactor/ and adds bin/<arch> to your user PATH. After a new shell, mur --version should resolve.
What's Changed
- Sync from ADO: Clean up Reactor build warnings (PR 15346990) by @codemonkeychris in #6
- Bump @apollo/server from 4.13.0 to 5.5.0 in /samples/apps/headtrax/service by @dependabot[bot] in #5
- Adding Microsoft SECURITY.MD by @microsoft-github-policy-service[bot] in #4
- Add GitHub Actions CI for unit tests by @codemonkeychris in #7
- Move source projects under src/ directory by @codemonkeychris in #8
- Add MIT LICENSE file by @codemonkeychris in #10
- docs: add Blazor as a Microsoft framework in comparative analysis by @codemonkeychris in #11
- Spec 020: async resources design (AsyncValue + UseResource) by @codemonkeychris in #12
- Add spec 021: docs folder reorganization by @codemonkeychris in #13
- Reframe README as WinUI/XAML landing page; refresh CONTRIBUTING by @codemonkeychris in #19
- Add spec 022: packaging and distribution by @codemonkeychris in #21
- ci: skip unit tests on Markdown-only changes by @codemonkeychris in #20
- docs(021): execute docs folder reorganization by @codemonkeychris in #23
- Add spec 023: performance insight tools by @codemonkeychris in #24
- docs(020): refine async resources spec after design review by @codemonkeychris in #26
- docs(023): add PERF006/PERF007 from perf-team feedback by @codemonkeychris in #27
- docs(024): add AI agent devtools spec by @codemonkeychris in #28
- Async resources: AsyncValue / QueryCache / UseResource / UseInfiniteResource / UseMutation + DataGrid hook-paging + analyzers by @codemonkeychris in #29
- docs(skills): split SKILL.md into root + on-demand sub-skills by @codemonkeychris in #30
- docs(skills): split SKILL.md into sub-skills; recompile guide by @codemonkeychris in #31
- feat(024): AI agent devtools — MCP server + UIA-driven automation tools (phases 1–4) by @codemonkeychris in #32
- test(d3): port upstream d3 tests to raise CI coverage by @codemonkeychris in #33
- refactor: rename Factories.Text → TextBlock, TextElement → TextBlockElement by @codemonkeychris in #35
- fix(reconciler): preserve Grid children on child type flip (#34) by @codemonkeychris in #36
- test(devtools): add stress harnesses for MCP startup/shutdown lifecycle by @codemonkeychris in #38
- feat(trace): ETW provider for correlated Reactor + WinUI profiling by @codemonkeychris in #37
- feat(25): CLI parity surface for devtools MCP by @codemonkeychris in #39
- test: isolate unit/selftest/e2e into 3 distinct projects (#18) by @codemonkeychris in #40
- chore(coverage): clean up coverage config, document unit+selftest merge by @codemonkeychris in #41
- feat(devtools): capture Debug/Trace/Console logs via reactor.logs by @codemonkeychris in #42
- refactor(monaco): move Monaco editor into sample, remove from core by @codemonkeychris in #44
- docs(readme): consolidate doc links into Guide by @codemonkeychris in #45
- ci: fix non-md path filter to actually skip markdown-only PRs by @codemonkeychris in #46
- docs: refresh bento slide, inline work-summary SVGs by @codemonkeychris in #47
- test: expand coverage; fix(FlexPanel): CSS block-level sizing + Collapsed support by @codemonkeychris in #48
- docs(spec-019): add Option F factory-initializers analysis by @codemonkeychris in #49
- feat(charting): theme-aware brushes + native gallery shell by @codemonkeychris in #51
- ci: fix MD-only path filter with shell diff by @codemonkeychris in #50
- docs(specs): 026 charting accessibility design by @codemonkeychris in #52
- docs(skills): prefer FlexPanel and TitleBar in design guidance by @codemonkeychris in #53
- feat(charting): complete accessibility Phase 1 — UIA peers, keyboard nav, forced-colors, scanner rules by @codemonkeychris in #54
- docs(research): rescore critical review against past 3 days by @codemonkeychris in #55
- docs(specs): add input & gestures design (spec 027) by @codemonkeychris in #56
- Add 1,264 unit tests for coverage improvements (84.3% merged) by @codemonkeychris in #57
- Boost selftest coverage to >85% by @codemonkeychris in #58
- Remove FlexPanelGallery and RegeditWinUI XAML-based samples by @codemonkeychris in #59
- docs: clarify post-initializer chaining precedence in spec 019 by @codemonkeychris in #60
- Show selftest progress on Windows taskbar icon by @codemonkeychris in #62
- feat(input): declarative pointer, gesture, focus, and drag-drop modifiers (spec 027) by @codemonkeychris in #61
- Add property inspection, resource browsing, and style inspection devtools by @codemonkeychris in #63
- docs(research): sync overview comparison with latest critical review by @codemonkeychris in #64
- Add navigation, forms, and input skill files; expand accessibility section by @codemonkeychris in #65
- Spec 029: TreeGrid control and DataGrid grouping by @codemonkeychris in #66
- Bump WindowsAppSDK to 2.0.0-preview2 by @codemonkeychris in #67
- feat(devtools): in-app devtools UX — UseDevtools + DevtoolsMenu + Observable (spec 028) by @codemonkeychris in #68
- Enable AOT compatibility analysis and add trimming annotations by @codemonkeychris in #69
- Fix native AOT crash in ReactorApplication at XAML bootstrap by @codemonkeychris in #71
- Convert JSON source-gen paths off reflection fallback by @codemonkeychris in #72
- test(selftest): add event-wiring fixtures for selection and value-change controls by @codemonkeychris in #73
- Typed editors catalog + fix programmatic-write change-event echo by @codemonkeychris in #74
- docs: add WinUI 2 to competitive comparison overview by @codemonkeychris in #75
- Sample polish + reconciler in-place updates by @codemonkeychris in #76
- Add spec 030: Reactor Gallery design by @codemonkeychris in #78
- test(selftest): identity-preservation fixtures for 14 in-place Update controls by @codemonkeychris in #80
- Add spec 031: Frame-aligned sampling design by @codemonkeychris in #81
- Add reconcile highlight overlay devtool by @codemonkeychris in #83
- test(selftest): fix ReconcileHighlight_MenuFlyoutUpdatesInPlace click by @codemonkeychris in #84
- fix(e2e): DevtoolsUx toggle tests — one-shot fixture reset by @codemonkeychris in #85
- fix(datagrid): make cell OnTapped idempotent to survive duplicate fires by @codemonkeychris in #87
- reconciler: skip-path correctness + lazy event wiring + overlay fidelity by @codemonkeychris in #88
- reconciler: fix duplicate event subscriptions from aliased RCWs (#86) by @codemonkeychris in #89
- Add spec 032: Layout cost overlay design by @codemonkeychris in #90
- feat(overlay): layout-cost overlay (spec 032) by @codemonkeychris in #92
- docs(async): threading model + rejected dispatcher-affinity proposal by @codemonkeychris in #94
- Add native chat sample by @davidfowl in #95
- docs: scrub personal references and stale paths by @codemonkeychris in #96
- refactor: naming cleanup — fold *Dsl factories, rename Md4c public API, fix Metadata casing by @codemonkeychris in #97
- Replace UnconditionalSuppressMessage with DynamicallyAccessedMembers annotations by @codemonkeychris in #98
- docs(spec): plan response to WinUI/XAML reviewer feedback (#33) by @codemonkeychris in #100
- Add Reconciler coverage fixtures + fix two flaky tests by @codemonkeychris in #99
- chore: pre-launch cleanup — license, metadata, CI, analyzer-id rename by @codemonkeychris in #101
- docs(readme): add WinUI banner and link to upstream repo by @codemonkeychris in #103
- Pre-launch hardening: security review remediations + OSS launch prep by @codemonkeychris in #102
- ci: bump actions/checkout from 4.3.1 to 6.0.2 by @dependabot[bot] in #104
- deps(vscode): bump typescript from 5.9.3 to 6.0.3 in /src/vscode-reactor by @dependabot[bot] in #106
- deps: Bump Microsoft.CodeAnalysis.Analyzers from 3.3.4 to 5.3.0 by @dependabot[bot] in #109
- ci: run Reactor.SelfTests on hosted windows-latest by @codemonkeychris in #110
- ci(coverage): compute branch rate from per-line condition-coverage by @codemonkeychris in #112
- deps(vscode): bump @types/node from 20.19.39 to 25.6.0 in /src/vscode-reactor by @dependabot[bot] in #107
- ci: bump actions/setup-dotnet from 4.3.1 to 5.2.0 by @dependabot[bot] in #105
- perf(stress_perf): emit per-second samples CSV alongside report by @codemonkeychris in #111
- deps(vscode): bump @types/vscode from 1.110.0 to 1.118.0 in /src/vscode-reactor by @dependabot[bot] in #108
- fix(reconciler): dedupe ToggleSwitch.Toggled wiring via EventHandlerState by @codemonkeychris in #113
- ci: bump actions/checkout from 4.3.1 to 6.0.2 by @dependabot[bot] in #116
- test: deflake 12 unit tests across 4 test classes by @codemonkeychris in #118
- Spec 033 — WinUI/XAML reviewer feedback (full implementation) by @codemonkeychris in #117
- docs: rewrite critical-review as concise current-state assessment by @codemonkeychris in #119
- docs(research): refresh Reactor ratings for May 2026 cycle by @codemonkeychris in #120
- perf(stress_perf): add ETW-based cross-framework perf baseline by @codemonkeychris in #121
- Spec 034 — Element allocation reduction (EX1+EX3+EX4) + investigation by @codemonkeychris in #124
- Spec 035 — Demo Script Tool sample app design by @codemonkeychris in #125
- ci: bump fast-xml-parser, @react-native-community/cli and react-native-windows in /tests/stress_perf_rn/VirtualList by @dependabot[bot] in #123
- Spec 034 — Element allocation reduction (LayoutModifiers / VisualModifiers shim, UseMemoCells, REACTOR_HOOKS_007) by @codemonkeychris in #126
- ci: bump fast-xml-parser, @react-native-community/cli and react-native-windows in /tests/stress_perf_rn/StocksGrid by @dependabot[bot] in #127
- fix(devtools): accept HTTP.SYS-owned ports in PortOwnership check by @codemonkeychris in #128
- docs(devtools-skill): clarify lockfile auth and add scripted-loop guidance by @codemonkeychris in #129
- Spec 022 P0 — release-asset distribution + skill kit by @codemonkeychris in #131
- docs(skill): document .Flex(grow:1) gotcha vs CSS
flex: 1shorthand by @codemonkeychris in #132 - samples: demo-script-tool (spec 035) + Command tooltip fix by @codemonkeychris in #134
- fix(reconciler): stop highlight overlay flashing typed ListView/GridView/FlipView/LazyStack on unrelated re-renders by @codemonkeychris in #135
- perf(stress_perf_rn): replace JS-dispatch timer with rAF-after-commit mount time by @codemonkeychris in #137
- fix(selftest): stabilize HostControlMountFunc + Tab/RadioButtons selection flakes by @codemonkeychris in #139
- samples(demo-script-tool): generate/re-gen fixes + session logging by @codemonkeychris in #140
- docs(skill): correct selftest command in SKILL.md by @codemonkeychris in #141
- chore(deps): bump Microsoft.WindowsAppSDK 2.0.0-preview2 → 2.0.1 by @codemonkeychris in #138
- Update skills/design.md with ReactorGallery design guidance by @karkarl in #91
- ci: bump actions/github-script from d746ffe35508b1917358783b479e04febd2b8f71 to 3a2844b7e9c422d3c10d287c895573f7108da1b3 by @dependabot[bot] in #115
- chore(samples): remove reactorfiles sample by @codemonkeychris in #143
- fix(hosting): chain entry-assembly and registered XAML metadata providers by @codemonkeychris in #144
- docs: add AGENTS.md for AI coding assistants by @sundaramramaswamy in #148
- fix(cli): correct scaffolder project path and drop stale WindowsSdkPackageVersion by @sundaramramaswamy in #146
- fix(selftest): stabilize Resource_FetchedData and PasswordBox UserEditFires by @codemonkeychris in #149
- fix(docs,analyzers): clear XML doc and analyzer SDK warnings by @codemonkeychris in #150
- fix(selftest): stabilize Mutation_Completed and GotFocus_FiresOnA by @codemonkeychris in #152
- test(startup_perf): add WinUI3 / Reactor / RNW startup baseline by @codemonkeychris in #154
- perf(reconciler): unblock fast-path for Setters; fix CommandHost ambient chord-tooltip leak by @codemonkeychris in #155
- ci: bump @xmldom/xmldom and react-native-windows in /tests/startup_perf/BlankRNW by @dependabot[bot] in #156
- ci: bump fast-xml-parser and react-native-windows in /tests/startup_perf/BlankRNW by @dependabot[bot] in #157
- fix(selftest): stabilize InfiniteBasic_TotalKnown by @codemonkeychris in #158
- fix(tests): serialize PersistedStateCache tests to fix flake by @codemonkeychris in #159
- perf(reconciler): skip update for unchanged chart primitives by @codemonkeychris in #161
- Sets the minimum supported version to 10.0.17763 by @dotMorten in #165
- fix(apptests): detect locked desktop / disconnected session by @codemonkeychris in #164
- fix(reconciler): templated ListView/GridView stale-closure refresh + feat(charting): rich Element labels with Canvas anchors by @codemonkeychris in #160
- build: migrate from .NET 9 to .NET 10 (LTS) by @sundaramramaswamy in #147
- fix: locale and environment-sensitive test failures by @sundaramramaswamy in #169
- docs(charting): document D3Pie params to silence CS1573 by @codemonkeychris in #170
- Ensure the compiled ReactorApplication.xaml gets embedded in the .PRI by @dotMorten in #168
- fix(reconcile-highlight): replace gradient brush + animations with timer-driven solid sprites (#167) by @codemonkeychris in #171
- fix(FlexPanel): eliminate +/-1 px height wobble on resize by @codemonkeychris in #172
- fix(hot-reload): bypass component memo so updated Render() bodies repaint by @codemonkeychris in #173
- fix(charting,reconciler): harden Path mounting and surface stack traces in error fallbacks by @codemonkeychris in #175
- fix(FlexPanel): honor VerticalAlignment.Stretch as definite block axis by @codemonkeychris in #176
- Make the analyzer a project reference by @dotMorten in #180
- perf(startup): defer a11y, charting, and logger init off the cold path by @codemonkeychris in #179
- fix(selftest): pump-until guard for GotFocus_FiresOnA by @codemonkeychris in #182
- fix(hot-reload,devtools): recover from hook-order edits; default DevtoolsMenu items to null by @codemonkeychris in #186
- ci: add manual stress workflow for unit and selftest jobs by @codemonkeychris in #188
- Adds a simple
dotnet new reactorappproject template by @dotMorten in #181 - ci(stress): escape $idx in pwsh string to fix parse error by @codemonkeychris in #189
- spec(036): Window model — multi-window, DPI-aware, full shell integration by @codemonkeychris in #191
- spec(036): resolve open questions by @codemonkeychris in #192
- fix(hot-reload): mirror hook-order recovery into ReactorHost by @codemonkeychris in #190
- test: stabilize four flakes surfaced by CI Stress workflow by @codemonkeychris in #193
- spec(036): tray-only startup; TrayIcon as a peer of Window by @codemonkeychris in #194
- fix: address three remaining flakes from CI Stress (validator timeout, deps-thrash race, render-coalesce honesty) by @codemonkeychris in #196
- docs(components): document factory-helper pattern for cleaner call sites by @codemonkeychris in #195
- fix(selftest): eliminate timer-vs-cancel race in DepsThrashing fixture by @codemonkeychris in #200
- Switch to AnyCPU for libraries, migrate to slnx by @devkanro in #187
- fix(selftest): stabilize 3 flakes from stress run #25535961443 by @codemonkeychris in #201
- fix(transitions): empty WithTransitions/ItemContainerTransitions clears WinUI defaults by @codemonkeychris in #202
- fix(reconciler): set AcceptsReturn before Text in MountTextField to preserve multi-line content by @codemonkeychris in #203
- fix(ci-stress): add -p:Platform=x64 to restore/build/test commands by @codemonkeychris in #204
- fix(reconciler): key echo-suppress counter on native DO identity by @codemonkeychris in #205
- ci: bump fast-xml-builder from 1.1.5 to 1.2.0 in /tests/startup_perf/BlankRNW by @dependabot[bot] in #208
- ci: bump fast-xml-builder from 1.1.5 to 1.2.0 in /tests/stress_perf_rn/StocksGrid by @dependabot[bot] in #216
- ci: bump softprops/action-gh-release from 2.3.2 to 3.0.0 by @dependabot[bot] in #217
- ci: bump actions/upload-artifact from 4.6.2 to 7.0.1 by @dependabot[bot] in #218
- deps(vscode): bump @types/node from 25.6.0 to 25.6.2 in /src/vscode-reactor by @dependabot[bot] in #219
- ci: bump fast-xml-builder from 1.1.5 to 1.2.0 in /tests/stress_perf_rn/VirtualList by @dependabot[bot] in #220
- Spec 036: Window model — full implementation (Phases 1-8) by @codemonkeychris in #215
- ci: bump @babel/plugin-transform-modules-systemjs from 7.29.0 to 7.29.4 in /tests/stress_perf_rn/VirtualList by @dependabot[bot] in #222
- feat(charting): add LabelRadiusOffset to PieChart by @codemonkeychris in #221
- ci: bump @babel/plugin-transform-modules-systemjs from 7.29.0 to 7.29.4 in /tests/startup_perf/BlankRNW by @dependabot[bot] in #223
- docs(windows): add Windows topic + fix doc-pipeline build platform by @codemonkeychris in #224
- Plugin format for skills + local NuGet flow + agent kit by @codemonkeychris in #225
- test: Ensure project template generates runnable apps by @dotMorten in #197
- docs(specs): add 037 (eval trace mining) + 038 (mur check did-you-mean) by @codemonkeychris in #228
- Replace em-dashes and check for .NET 10 instead by @dotMorten in #229
- docs(skills): fix broken examples; filter obsolete from api.txt by @codemonkeychris in #233
- Add doc for xaml devs by @dotMorten in #237
- Avoid adding the temporary tools path to global path environment by @dotMorten in #239
- Add StressPerf.XBind variant — WinUI MVVM via {x:Bind} by @codemonkeychris in #236
- fix(nuget): clear inherited sources so restore is deterministic (#214) by @codemonkeychris in #240
- Fix #213 (mur --create scaffolds ARM64 default on x64) and #232 (CLI build needs -p:Platform=x64) by @codemonkeychris in #241
- Spec 038 Phase 1:
mur checkdid-you-mean engine (Tier 2 + diagnostic-count gate) by @codemonkeychris in #243 - fix(hooks): auto-marshal UseState/UseReducer setters to UI thread (#212) by @codemonkeychris in #242
- docs: align all .NET version references to .NET 10 by @codemonkeychris in #245
- feat(forms): NumberBox .Immediate() and Button .DisabledFocusable() (fixes #231) by @codemonkeychris in #244
- Spec 038 Phase 3 — Class-B rules + Margin/Padding API ergonomics by @codemonkeychris in #248
- fix(dialog): ContentDialog opens without manual XamlRoot (#246) by @codemonkeychris in #247
- Spec 038 Phase 3 — Class-A rules, correctness fixes, EC3 results, template typo fix by @codemonkeychris in #250
- Spec 038 — rule_fired trace event for Tier-3 rule fires by @codemonkeychris in #251
- Add Minesweeper sample app by @jevansaks in #249
- ci(stress): add integration test target to ci-stress workflow by @codemonkeychris in #253
- Canonical window shell for default Reactor apps by @codemonkeychris in #256
- Break on user-unhandled exceptions by @dotMorten in #255
- ci: bump @protobufjs/utf8 from 1.1.0 to 1.1.1 in /samples/apps/headtrax/service by @dependabot[bot] in #254
- Create parameter consistency for margins and paddings by @dotMorten in #270
- Add mur clean-local and uninstall-skill-kit by @sundaramramaswamy in #272
- Use standard parameter name for cancellationToken by @dotMorten in #273
- docs(skill): document Ref.Current property by @sundaramramaswamy in #286
- Fix #230: add docs compile job to CI by @sundaramramaswamy in #275
- docs(skill): add -p:Platform=x64 build requirement by @sundaramramaswamy in #288
- docs(skill): document tuple deps and REACTOR_HOOKS_004 by @sundaramramaswamy in #289
- docs(skill): clarify FlexElement property naming (JustifyContent) by @sundaramramaswamy in #291
- fix: handle Border(null) gracefully by @sundaramramaswamy in #293
- fix: make OnTapped elements keyboard/UIA accessible by @sundaramramaswamy in #294
- reactor-dev: prefer mur check over dotnet build; ignore runs/ by @codemonkeychris in #295
- Fix #264: enforce init-only contract on immutable records by @sundaramramaswamy in #274
- docs(skill): list all Theme tokens, warn about hallucinated ones by @sundaramramaswamy in #287
- docs(skill): add NavigationView usage recipe by @sundaramramaswamy in #290
- docs(skill): add Canvas recipe, document name collision workaround by @sundaramramaswamy in #292
- refactor: move Flex naming note to reactor-dsl skill by @sundaramramaswamy in #297
- Fix #267: rename terse charting parameter names by @sundaramramaswamy in #298
- Change DataChanged from Action to EventHandler (#265) by @sundaramramaswamy in #299
- deps(vscode): bump @types/node from 25.6.2 to 25.8.0 in /src/vscode-reactor by @dependabot[bot] in #305
- Normalize state-change callback names (#261) by @sundaramramaswamy in #302
- Add .editorconfig codifying repo C# conventions by @codemonkeychris in #309
- feat(viewbox): fluent Stretch / StretchDirection setters by @codemonkeychris in #310
- build: make solution warning-free by @codemonkeychris in #311
- deps(vscode): bump @types/vscode from 1.118.0 to 1.120.0 in /src/vscode-reactor by @dependabot[bot] in #306
- deps: Bump coverlet.collector from 6.0.0 to 10.0.0 by @dependabot[bot] in #307
- build(samples): add per-app SLNX next to each sample csproj by @codemonkeychris in #315
- feat(039): Property & event API scrub — fluents, missing events, init props, named styles by @codemonkeychris in #314
- spec(041): docs comprehensive uplift plan by @codemonkeychris in #317
- docs(042): keyed-list reconciliation & ListView animation design spec by @codemonkeychris in #318
- feat: reduce reactor-dev agent build-attempt fix-loops by @codemonkeychris in #319
- spec(043):
mur findand the Reactor sample catalogue by @codemonkeychris in #320 - fix(perf): keep PerfStress responsive at 250/500 elements by @codemonkeychris in #321
- feat(042): keyed-list reconciliation + Animate(...) ambient (closes #198) by @codemonkeychris in #322
- fix(virtualization): proper ItemsRepeater recycling — stop leaking every realized container by @codemonkeychris in #324
- docs(041): comprehensive docs uplift — Phases 0-5 + recipes (spec 041) by @codemonkeychris in #325
- docs(readme): link Quick start to docs/guide/getting-started.md by @codemonkeychris in #328
- docs(getting-started): show launch line in samples + pipeline fixes by @codemonkeychris in #331
- build(deps-dev): bump brace-expansion from 5.0.5 to 5.0.6 in /tests/stress_perf_rn/VirtualList by @dependabot[bot] in #329
- build(deps-dev): bump brace-expansion from 5.0.5 to 5.0.6 in /tests/startup_perf/BlankRNW by @dependabot[bot] in #330
- build(deps-dev): bump brace-expansion from 5.0.5 to 5.0.6 in /tests/stress_perf_rn/StocksGrid by @dependabot[bot] in #332
- docs(wpf-interop): replace speculative surface with stub + workaround by @codemonkeychris in #335
- test(coverage): uplift Reactor.dll line coverage 79.52% → 80.79% by @codemonkeychris in #333
- Add selftests for coverage uplift by @codemonkeychris in #336
- Return ComponentElement from factory methods (#263) by @sundaramramaswamy in #300
- Normalize event/callback naming conventions (#260) by @sundaramramaswamy in #301
- Add standalone IconElement for the element tree by @sundaramramaswamy in #271
- refactor: normalize ShowAddButton to IsAddButtonVisible by @sundaramramaswamy in #296
- docs(specs): 044 tracing and logging cleanup design by @codemonkeychris in #340
- Add retry loop for DataGrid external state test by @sundaramramaswamy in #339
- Widen overlay refresh lifetime timing margins by @sundaramramaswamy in #338
- docs: migrate doc templates + apps to renamed boolean modifiers (#268) by @codemonkeychris in #342
- feat: ComponentElement for typed with-expression mutation (#308) by @codemonkeychris in #349
- docs(specs): add 045 docking windows design by @codemonkeychris in #350
- AOT batch: nav POCO state, DataGrid DAM, ArrayOps runtime gate by @codemonkeychris in #341
- docs(aot): expand selftest AOT skip list + document AOT test workflow by @codemonkeychris in #352
- test(aot): skip selftest fixtures for documented AOT-broken subsystems by @codemonkeychris in #353
- Tracing and logging cleanup — release-visible diagnostics (spec 044, closes #323) by @codemonkeychris in #351
- loc: replace reflection-based args with tuple-params + IDictionary overloads by @codemonkeychris in #354
- Add off-dispatcher AOT hang watchdog and clean up stale selftest skips by @codemonkeychris in #358
- fix: ScrollView() factory mounts the modern WinUI ScrollView (#348) by @codemonkeychris in #357
- Remove blanket exception swallowing from user callbacks by @codemonkeychris in #356
- Workaround WindowsAppSDK#6394: copy project .pri into AOT publish output by @codemonkeychris in #360
- A11y sample: Replace missing symbol images with new Icon element by @dotMorten in #362
- ci: add AOT Selftests job to gate against NativeAOT regressions by @codemonkeychris in #363
- Remove unnecessary try/catch(Exception) from JumpList code by @codemonkeychris in #361
- ci: add managed-mode BinSkim scan to release workflow by @codemonkeychris in #365
- FlexPanel: CSS Flexbox §4.5 min-sizing + Exactly clamp (#364) by @codemonkeychris in #366
- docs: add MORSE security threat model by @codemonkeychris in #368
- FlexPanel: address PR #366 review feedback (rename attached DPs) by @codemonkeychris in #369
- ci: SharpFuzz harnesses for Md4cParser + PathDataParser by @codemonkeychris in #367
- ci: cgmanifest + vulnerable-NuGet gate + BinSkim scope tighten by @codemonkeychris in #370
- fix(reconciler): reconcile Content for CommandBar + TeachingTip (#343) by @codemonkeychris in #372
- ReactorHostControl: survive transient reparent (#344) by @codemonkeychris in #373
- build(deps): bump uuid and @apollo/server in /samples/apps/headtrax/service by @dependabot[bot] in #371
- analyzer: REACTOR_POOL_001 — flag .Set writes to pool-reset properties (#346) by @codemonkeychris in #374
- loc/devtools: minor terminology cleanup by @codemonkeychris in #376
- docs: introduce Microsoft.UI.Reactor on first prose reference by @codemonkeychris in #378
- deps(vscode): bump @types/node from 25.8.0 to 25.9.1 in /src/vscode-reactor by @dependabot[bot] in #380
- deps: Bump coverlet.collector from 10.0.0 to 10.0.1 by @dependabot[bot] in #381
- ItemsView: wire reconciler arm + ItemContainer wrapper element by @codemonkeychris in #379
- Fix NumberBox immediate typing updates by @codemonkeychris in #386
- feat(045): docking windows Phase 2 — ready for §2.29 review by @codemonkeychris in #377
- feat(045): cross-window tab dock-in (Center) + floating tab chrome by @codemonkeychris in #388
- refactor: rename TextField -> TextBox for WinUI parity by @codemonkeychris in #387
- Update docking docs and screenshot tooling by @codemonkeychris in #391
- Remove obsolete TextField factory by @codemonkeychris in #390
- Fix stress test harness isolation by @codemonkeychris in #392
- Fix unit stress test isolation flakes by @codemonkeychris in #393
- Fix #114: dedupe poolable wiring on native DO identity, not RCW by @codemonkeychris in #395
- Fix unit stress flakes in JumpList and QueryCache threading tests by @codemonkeychris in #394
- Stress test fixes: visual demo budgets, GC marshaling, InfiniteBasic pump by @codemonkeychris in #396
- Stress fixes: framerate/PerGroup timeouts, overlay tick race, DataGrid scroll poll by @codemonkeychris in #397
- Stress fixes: Cluster F poll, leak baseline timeout bump by @codemonkeychris in #399
- test(docking): coverage uplift for Native renderer and persistence by @codemonkeychris in #398
- docs: extract TESTING.md and compress CHANGELOG by @codemonkeychris in #400
- Publish docs/guide as GitHub Pages with MkDocs Material by @codemonkeychris in #402
- Pin pygments to 2.19.2 to fix docs build by @codemonkeychris in #405
- feat(046): docking content types & reserved document area by @codemonkeychris in #401
- build(deps): bump qs from 6.15.1 to 6.15.2 in /tests/startup_perf/BlankRNW by @dependabot[bot] in #382
- build(deps): bump qs and express in /samples/apps/headtrax/service by @dependabot[bot] in #403
- build(deps): bump pymdown-extensions from 10.12 to 10.21.3 in /docs by @dependabot[bot] in #404
- build(deps): bump pygments from 2.19.2 to 2.20.0 in /docs by @dependabot[bot] in #406
- test(stress): raise default FixtureTimeout 15s -> 30s by @codemonkeychris in #408
- api: standardize PlaceholderText across input controls by @codemonkeychris in #407
- docs(specs): 047 fully extensible control model proposal by @codemonkeychris in #410
- spec(047): Phase 0 deliverables — audits, perf scaffolding, ARM64 baseline by @codemonkeychris in #411
- fix(045): splitter cursor tracking + deterministic test matrix by @codemonkeychris in #409
- build(deps): bump qs from 6.15.1 to 6.15.2 in /tests/stress_perf_rn/VirtualList by @dependabot[bot] in #412
- fix(reactor): §8.2 — setters run inside echo-suppression scope by @codemonkeychris in #413
- spec(047): Phase 0 finalize — promote ratified §13 decisions, demote §8.1 by @codemonkeychris in #414
- feat(hosting): layered-window attrs — Opacity, NoActivate, IgnorePointerInput by @codemonkeychris in #415
- feat(045): VS-style immediate tab tear-off pipeline by @codemonkeychris in #418
- fix(045): remove broad catch{} swallows in tear-off pipeline (#420) by @codemonkeychris in #421
- docs(readme): expand "What's included" with docking, shell, devtools, mur CLI by @codemonkeychris in #423
- spec(047): Phase 1+2 — V1 protocol + descriptor authoring (A|B baseline) by @codemonkeychris in #422
- spec(047): Phase 3 prereqs — HandCoded* builders + TextBox descriptor proof by @codemonkeychris in #424
- test(045): tear-off E2E suite reliable under WinAppDriver (#419) by @codemonkeychris in #426
- feat: one-command bootstrap (bootstrap.ps1 + mur doctor/upgrade + dotnet-tool mur) by @codemonkeychris in #425
- Improving onboarding by @crutkas in #429
- spec(047): Phase 3 batches 1+2 — value-bearing descriptors (CheckBox, RadioButton, RatingControl, ToggleSplitButton, ColorPicker, CalendarDatePicker, DatePicker, TimePicker) by @codemonkeychris in #428
- fix: clean-machine bootstrap (analyzer pack path) + winget auto-install + CI workflow by @codemonkeychris in #430
- Streamline feedback process description in README by @niels9001 in #432
- fix(stress): per-fixture hang watchdog + WaitForIdle cap raise by @codemonkeychris in #431
- spec(047): Phase 3 bulk-port — 9 batches, 38 controls by @codemonkeychris in #435
- Boost Accessibility + ReactorApp helper coverage by @codemonkeychris in #434
- Figma-to-Reactor: agent-driven design translation with CLI watch + Figma plugin by @karkarl in #178
- spec(047): Phase 3-final descriptor scale-out (Batches A-G1) by @codemonkeychris in #436
- spec(047): Phase 3 close-out + finish — 100% V1 dispatch for typed-items hosts by @codemonkeychris in #437
- spec(047): §14 Phase 3 completion — register Phase 3 descriptors + close engine gaps by @codemonkeychris in #440
- fix(docking): commit tab click-selection; reshape dock-showcase into ReactorIde sample by @codemonkeychris in #438
- fix(selftest): drain dispatcher after UpdateLayout to fix local TabView race by @codemonkeychris in #442
- spec(047): ARM64 Phase 3 ratification capture - inconclusive (thermal/order drift) by @codemonkeychris in #441
- spec(047): close V1-protocol descriptor regressions (default stays V1 OFF) by @codemonkeychris in #443
- docs: under-the-hood guide to the V1 Protocol + extension cookbook by @codemonkeychris in #444
- docs: wire up nav + rename "V1 Protocol" page to "Control Reconciler Protocol" by @codemonkeychris in #448
- docs: fix Pages publish + add strict link check to PR CI by @codemonkeychris in #449
- docs(readme): link to the Pages site + expand the Performance bullet by @codemonkeychris in #450
- fix(navigationview): reconcile menu items in place to preserve expansion by @codemonkeychris in #454
- spec-047 Phase 4 — V1 migration close-out (V1 is the production path) by @codemonkeychris in #455
- ci: bump actions/setup-dotnet from 5.2.0 to 5.3.0 by @dependabot[bot] in #458
- ci: bump actions/deploy-pages from 4 to 5 by @dependabot[bot] in #459
- ci: bump actions/setup-python from 5 to 6 by @dependabot[bot] in #460
- spec-047 §4.9: ARM64 post-Phase-4 micro perf capture (LAPTOP-4MEP83VI) by @codemonkeychris in #465
- docs(spec): add spec 048 — lazy, trimmable control registration by @codemonkeychris in #466
- fix(treeview): typed data-driven TreeView with per-container hosting (#447) by @codemonkeychris in #453
- deps: Bump System.Formats.Asn1 from 8.0.2 to 10.0.8 by @dependabot[bot] in #463
- spec(047): migrate Button to ButtonDescriptor (retire legacy mount/update) by @codemonkeychris in #467
- perf(reconciler): gate V1 ReactorState tagging on HasCallbacks (spec 047 §4.4 follow-up) by @codemonkeychris in #468
- spec-047: migrate all 6 built-in panels to V1 descriptor keyed reconcile by @codemonkeychris in #469
- perf(spec-047): post-gate M12 re-capture — regression closed by @codemonkeychris in #470
- ci: bump actions/checkout from 4 to 6 by @dependabot[bot] in #461
- refactor(spec-047): delete dead legacy mount/update code by @codemonkeychris in #472
- fix(bootstrap): skip template uninstall on first run + add -Verbose diagnostics by @codemonkeychris in #471
- docs(spec-049): hot reload improvements design proposal by @codemonkeychris in #474
- refactor(spec-047): port TemplatedTreeView to V1 handler model (#447) by @codemonkeychris in #473
- ci: bump actions/upload-pages-artifact from 3 to 5 by @dependabot[bot] in #462
- Bump Nerdbank.MessagePack from 1.1.62 to 1.2.4 by @dependabot[bot] in #457
- refactor(spec-047): relocate Bucket 1 legacy mount/update into V1-owned code by @codemonkeychris in #475
- Rename MaskedTextField to MaskedTextBox (#389) by @codemonkeychris in #477
- Fix UseEffect cleanup leak under docking pane Border wrapper (#375) by @codemonkeychris in #478
- fix(gridview): suppress programmatic SelectedIndex echoes (#464) by @codemonkeychris in #476
- Port composites to V1 handlers; fix overlay teardown leaks by @codemonkeychris in #482
- fix(selftest): stabilize GridViewLazy threshold + PDM_Stack drain race by @codemonkeychris in #485
- Improve hot reload robustness with state migration (spec 049) by @codemonkeychris in #483
- fix(#480): inline UI inside RichTextBlock + reconcile-overlay polish by @codemonkeychris in #488
- chore: fix all build warnings (153 → 0) by @codemonkeychris in #490
- fix(analyzers): stop REACTOR_DOC_* rules leaking to customer builds by @codemonkeychris in #491
- test(harness): bounded convergence loop for multi-wave WinUI realization by @codemonkeychris in #492
- spec(048): Lazy, Trimmable Control Registration — implementation by @codemonkeychris in #489
- Spec 050: controlled-prop authority and Optional (fixes #494) by @codemonkeychris in #500
- fix(#495): break ListView SelectedIndex+UseState re-render storm; harden GridView and typed templated lists by @codemonkeychris in #499
- test(harness): poll re-queried predicate for lazy WinUI realization (fix NativeDocking flakes) by @codemonkeychris in #502
- feat(#479): clickable inline RichTextHyperlink (OnClick mode) by @codemonkeychris in #501
- chore: remove layout-cost visualizer and its ETW infrastructure by @codemonkeychris in #507
- docs(spec): add spec 051 — devtools trimmability and isolation by @codemonkeychris in #508
- docs(spec-052): add ControlRod automatic triage bot design by @codemonkeychris in #509
- Move remaining per-control logic out of the core Reconciler by @codemonkeychris in #504
- test(selftest): sweep remaining NativeDocking probe flakes to WaitFor by @codemonkeychris in #510
- fix(#511): restore TitleBar caption-button inset for RightHeader by @codemonkeychris in #512
- Spec 053: Reactor.Advanced + Win2D canvas integration by @codemonkeychris in #516
- Spec 051: Devtools trimmability and isolation by @codemonkeychris in #515
- Spec 053: Reactor.Advanced + Win2D canvas integration by @codemonkeychris in #517
- User/sumand/blank test app for perf by @subhajitm in #506
- Clean up BlankReactorMsix startup perf integration by @codemonkeychris in #519
- docs: update README to require explicit platform flag for builds by @azchohfi in #521
- chore: default samples and perf benches to the installed Windows App SDK by @codemonkeychris in #523
- Fix PropertyGrid collection editors by @codemonkeychris in #524
- docs: add spec 054 — windowing evolution by @codemonkeychris in #527
- Spec 050: Optional and controlled-prop authority (fixes #494) by @codemonkeychris in #525
- Fix #522: reset TextBlock styling on recycled control transitions by @codemonkeychris in #529
- ci(ob): add Official build/release pipelines by @philnach in #532
- docs: add spec 055 - reactivity and representation exploration by @codemonkeychris in #535
- Spec 054: Windowing evolution by @codemonkeychris in #536
- Fix OptionalThemeInteraction NativeAOT stress flake by @codemonkeychris in #539
- Fix gallery source snippets + Copy button + Optional factory audit (closes #538) by @codemonkeychris in #540
- docs: add spec 056 — Visual Studio embedded preview by @codemonkeychris in #541
- docs: surface Microsoft.UI.Reactor.Advanced in setup, packaging, doctor by @codemonkeychris in #542
- Expose native rich text properties by @codemonkeychris in #544
New Contributors
- @microsoft-github-policy-service[bot] made their first contribution in #4
- @davidfowl made their first contribution in #95
- @karkarl made their first contribution in #91
- @sundaramramaswamy made their first contribution in #148
- @dotMorten made their first contribution in #165
- @devkanro made their first contribution in #187
- @jevansaks made their first contribution in #249
- @crutkas made their first contribution in #429
- @niels9001 made their first contribution in #432
- @subhajitm made their first contribution in #506
- @azchohfi made their first contribution in #521
Full Changelog: https://github.com/microsoft/microsoft-ui-reactor/commits/v0.1.0-preview.2