Skip to content

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

Description

@karkarl

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@8ee940c. 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 ItemsView crashes with E_INVALIDARG when a pending bring-into-view target is collapsed 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 Fix Markdown list content wrapping 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Normal priority bug or improvement with limited blast radius.impact:crash-loopThis issue is about crashes, hangs, restart loops, or process-level availability.issue-rating: 🌊 off-meta tidepoolIssue quality rating does not apply to this item.

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions