Dialog-collision crash fix, FlaUI e2e suite, branded splash (beta.10) #29

Merged
KofTwentyTwo merged 1 commits from dev into main 2026-07-04 23:03:49 +00:00
1 Commits
Author SHA1 Message Date
James MaesandClaude Fable 5 16f5e54dd0 Fix dialog-collision process crash; add FlaUI e2e suite + branded splash
Root cause (from the WER crash dump): WinUI allows one open ContentDialog
per XamlRoot, and a second ShowAsync throws COMException 0x80000019 which,
escaping an async void handler, killed the process as a stowed exception
(0xc000027b). Every dialog now opens through DialogGuard, which ignores an
open request while another dialog is showing; App gains a last-resort
UnhandledException net that logs to the activity log and keeps running.

The new gclo.UiTests project drives the real gclo.exe through UIA (FlaUI):
eight token-free smoke tests covering launch, navigation, the connect card,
Settings/About/wizard dialogs, offline token input, and a regression test
reproducing the dialog collision. Tests run against an isolated
GCLO_DATA_DIR (new GcloPaths seam) and get their own non-required CI job.

The startup splash is a branded in-window overlay (gradient, wordmark,
version line, fade-out after 800ms) rather than a second Window, which
would be a UIA/assistive-tech close-race hazard.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 17:56:31 -05:00