openclaw / openclaw/openclaw-windows-node

Track WinUI ItemsView fix and retire Reactor preview.12 Markdown workaround

Open
#1,424 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

impact:crash-loop issue-rating: 🌊 off-meta tidepool P2
Dominant language
C#
Stars
2.1k
Forks
295
Avg merge
1d 6h
Merged PRs (30d)
99

Description

Context

Temporarily pin Microsoft.UI.Reactor and Microsoft.UI.Reactor.Advanced to 0.1.0-preview.12 to mitigate the release-blocking chat session-switch crashes reported in #1421 and #1419. The identified trigger is the ElementFactory eviction/lifetime change introduced in preview.13: microsoft/microsoft-ui-reactor@8ee940cbf73360d4216a7926671651a9e6546bf8. The underlying WinUI defect is microsoft/microsoft-ui-xaml#11865: ItemsView retains a pending bring-into-view target after that target is collapsed, leading to E_INVALIDARG.

This reverses the dependency upgrades in #1376 (build(deps): upgrade Microsoft.UI.Reactor to 0.1.0-preview.14) and #1400 (fix(chat): prevent bubble text truncation), not unrelated improvements in those PRs.

Why this workaround

#1407 (fix(chat): work around WinUI session-switch crash) avoided the crash in reported tests, but Barbara's 240 mixed-height message scenario stopped near message 233. The bottom extent changes as virtualized rows render, so scrolling to the current extent does not guarantee reaching the final message. That is also a release blocker. Preserve the existing row-targeted scrolling rather than adopting that workaround.

Preview.15 included microsoft/microsoft-ui-reactor#1197 (Fix Markdown list content wrapping). While pinned to preview.12, use the public MarkdownOptions.ListItem callback to replace the default horizontal list-row stack with an Auto-marker/Star-content Grid. Preserve the parser-produced marker, content, spacing, nesting and inline formatting rather than flattening Markdown or imposing fixed widths.

Retirement gates

  • Track microsoft/microsoft-ui-xaml#11865 through a released Windows App SDK NuGet containing the fix (not merely a source merge).
  • Select and test a compatible Reactor version containing microsoft/microsoft-ui-reactor#1197 and the corrected ItemsView lifetime behavior.
  • Update both Reactor packages together and remove the preview.12 pin and local ListItem layout override in the same PR.
  • Retain behavioral regression coverage for ordered/unordered, nested, loose, formatted and long list content at narrow widths and after resize.
  • Prove repeated session switching while bring-into-view is pending, history replacement, and 240 mixed-height messages. Verify the actual final message is visible, not merely the current scroll extent.
  • Verify streaming tail-follow and preservation of the reader's position when scrolled up.
  • Run the full repository build, Shared and Tray tests, and current-head mounted WinUI proof. Record exact package versions and results.

Until these gates pass, do not remove the compatibility workaround or automatically advance Reactor past preview.12.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the preview.12 Reactor package references and the local MarkdownOptions.ListItem layout override, then run the Shared and Tray tests and current-head mounted WinUI proof named in the gates. Done requires a released Windows App SDK fix, a compatible Reactor version, preserved list and scrolling regression coverage, and successful full-build and test results.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
desktop
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.