Stabilize UIA modal waits in Windows live gate - #402
Merged
coneilen merged 1 commit intoSep 21, 2026
Merged
Conversation
Replace the short fixed New Loop modal polling in the Windows UIA live gate with deadline-based waits for the expected modal window and for cancellation to fully close it before the next asynchronous command. The timeout path now emits UIA_WAIT_DIAGNOSTICS with foreground/focus state, preserving actionable failure output instead of hiding errors. Add a validation-runner contract so the live gate keeps using deterministic modal waits around project-row, empty-global, and empty-project New Loop flows. Signed-off-by: Colin Neilens <coneilen@microsoft.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
New Loopcommands sometimes timed out before the nativeCreate or edit nodemodal appeared, or before a previous modal had fully closed.UIA_WAIT_DIAGNOSTICS) and a validation-runner regression contract so future edits cannot silently reintroduce the short fixed New Loop polls.RED:
gh run view 35644468673 --repo scgopi/GraphCode --log-failed-> project-row New Loop did not open the node form after unit tests passed.GREEN:
pwsh -NoProfile -File .\Tools\windows\Tests\ValidationRunner.Tests.ps1-> ValidationRunner.Tests.ps1: PASS.REGRESSION:
pwsh -NoProfile -File .\Tools\windows\Tests\WindowsShell.Tests.ps1-> blocked locally by Zig 0.16 vs CI-pinned 0.15.2; GitHub Actions runs pinned validation.Flake evidence
gh run view 35626839265 --repo scgopi/GraphCode --log-failed-> Windows: dark-theme legacy dialogs and add loop-type teaching tiles #401 branchwindows-shellfailed withproject-row New Loop did not open the node form. Run: https://github.com/scgopi/GraphCode/actions/runs/35626839265/job/106432664750gh run view 35631354431 --repo scgopi/GraphCode --log-failed-> same Windows: dark-theme legacy dialogs and add loop-type teaching tiles #401 branchwindows-shellfailure:project-row New Loop did not open the node form. Run: https://github.com/scgopi/GraphCode/actions/runs/35631354431/job/106442790808gh run view 35644468673 --repo scgopi/GraphCode --log-failed-> failed inwindows-shellafterAll 95 tests passed; log ends withproject-row New Loop did not open the node form. Run: https://github.com/scgopi/GraphCode/actions/runs/35644468673/job/106489093830gh run view 35634399529 --repo scgopi/GraphCode --log-failed-> failed on the same Windows: dark-theme legacy dialogs and add loop-type teaching tiles #401 branch withempty global New Loop did not open the node form. Run: https://github.com/scgopi/GraphCode/actions/runs/35634399529/job/106471257007gh run view 35634399525 --repo scgopi/GraphCode --log-failed-> failed in Windows validation afterAll 92 tests passed; diagnostics show foreground/focus on the CIzmxconsole, thenempty global New Loop did not open the node form. Run: https://github.com/scgopi/GraphCode/actions/runs/35634399525gh run view 35633949744 --repo scgopi/GraphCode --log-failed-> unrelated branch failed in the same live gate atworkspace right panel omitted collapse control, then self-healed in runs 35635440902 and 35638849754 without a targeted change. Run: https://github.com/scgopi/GraphCode/actions/runs/35633949744/job/106446641148gh run view 35638849754 --repo scgopi/GraphCode --json conclusion,url->successfor the sameWindows shell validationworkflow on a nearby sibling branch/rerun window. Run: https://github.com/scgopi/GraphCode/actions/runs/35638849754RED
RED:
gh run view 35644468673 --repo scgopi/GraphCode --log-failed-> repeated/superseded Windows UIA gate failure atproject-row New Loop did not open the node formafter unit tests had passed.gh run view 35634399525 --repo scgopi/GraphCode --log-failed-> independent Windows UIA gate failure atempty global New Loop did not open the node form, with focus diagnostics showing the runner/zmx console still foregrounded.GREEN
GREEN:
pwsh -NoProfile -File .\Tools\windows\Tests\ValidationRunner.Tests.ps1->ValidationRunner.Tests.ps1: PASS.PowerShell Parser.ParseFile(.\Tools\windows\uia-live-gate.ps1)->uia-live-gate parser OK.REGRESSION
REGRESSION:
pwsh -NoProfile -File .\Tools\windows\Tests\WindowsShell.Tests.ps1-> blocked locally before exercising this change because the host only has Zig 0.16.0, while the repo/CI pins Zig 0.15.2; failure is the expected stdlib API mismatch (GeneralPurposeAllocator,trimLeft,std.fs.cwd, etc.). Pinned live validation is left to GitHub Actions.Notes