Conversation
coneilen
added this pull request to stack #581
October 2, 2026 02:00
This was referenced Oct 2, 2026
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
Exposes the four-page custom Windows onboarding modal as a named UI Automation tree with Invoke-capable actions and deterministic keyboard focus. This is layer 2 above #579 and preserves the early daemon connection, modal ownership, foregrounding, teardown, navigation, and backend selection behavior.
Part of #556.
Changes
IRawElementProviderFragmentRootfor the current page, Skip, Back, Continue/Get Started, and backend actions.WM_GETOBJECT, UIA Invoke/SetFocus, mouse input, and Tab/Shift+Tab/Enter/Space through one deterministic onboarding action model with visible focus outlines.Test plan
RED: zig test src\WindowsOnboarding.zig -target x86_64-windows-msvc -lc -luser32 -lgdi32 -> 11/12 passed; deterministic Tab traversal failed with TestUnexpectedResult
GREEN: zig test src\WindowsOnboarding.zig -target x86_64-windows-msvc -lc -luser32 -lgdi32 -> 13/13 passed
REGRESSION: zig test src\App.zig src\AccessibilityProvider.cpp src\FilePicker.c winghostty-win32-host.lib and ghostty-vt-static.lib with Windows system libraries -> 734/734 passed
Additional provider RED:
zig test src\WindowsOnboarding.zig ... --test-filter "onboarding routes WM_GETOBJECT"-> 0/1 passed; the assertion found noWM_GETOBJECTroute.Additional verification:
zig test src\WindowsOnboarding.zig src\AccessibilityProvider.cpp ...-> 13/13 passed with the native provider compiled and linked.zig build -Doptimize=ReleaseSafe -Dwinghostty-dir=... -Dwinghostty-lib=...-> passed.GRAPHCODE_SUPPORT_DIR,LOCALAPPDATA,TEMP,TMP, andUSERPROFILEroots -> named root and four pages discovered; Skip, Back, Continue/Get Started, and Copilot CLI exposed Invoke; backend selection reportedSelected; UIA SetFocus reached Get Started; posted nativeWM_KEYDOWNTab traversed Continue -> Skip -> Continue.Checklist
git commit -s) per the DCOmake test)make check)