Skip to content

Start daemon connection before first-run onboarding - #579

Merged
coneilen merged 1 commit into
mainfrom
coneilen-microsoft-first-run-daemon-ordering
Oct 2, 2026
Merged

coneilen merged 1 commit into
mainfrom
coneilen-microsoft-first-run-daemon-ordering

Conversation

@coneilen

@coneilen coneilen commented Oct 2, 2026

Copy link
Copy Markdown
Collaborator

Summary

Part of #556. Start the daemon client connection independently before the modal first-run onboarding sequence, without changing onboarding UI implementation or closing the issue.

Changes

  • Register the daemon callback and schedule DaemonClient.connect() before a genuine first-run modal enters its message loop.
  • Preserve the existing late connection point for ordinary startup, smoke hooks, supervisor hooks, and UIA gate startup.
  • Add focused behavioral coverage for connection-before-modal ordering and the non-first-run deferral path.

Test plan

RED: & $env:GRAPHCODE_ZIG0152 test src\App.zig src\AccessibilityProvider.cpp src\FilePicker.c $wing -DUNICODE -D_UNICODE -target x86_64-windows-msvc -lc -luser32 -lgdi32 -lgdiplus -lmsimg32 -lopengl32 -lkernel32 -limm32 -lole32 -loleaut32 -luiautomationcore -lshell32 -ladvapi32 -lwinhttp "-I$include" $vt --test-filter "first-run startup schedules daemon connection before the modal returns" -> expected .connection_scheduled, found .modal_entered; 0 passed, 1 failed
GREEN: & $env:GRAPHCODE_ZIG0152 test src\App.zig src\AccessibilityProvider.cpp src\FilePicker.c $wing -DUNICODE -D_UNICODE -target x86_64-windows-msvc -lc -luser32 -lgdi32 -lgdiplus -lmsimg32 -lopengl32 -lkernel32 -limm32 -lole32 -loleaut32 -luiautomationcore -lshell32 -ladvapi32 -lwinhttp "-I$include" $vt --test-filter "first-run startup schedules daemon connection before the modal returns" -> 1/1 passed
REGRESSION: & $env:GRAPHCODE_ZIG0152 test src\App.zig src\AccessibilityProvider.cpp src\FilePicker.c $wing -DUNICODE -D_UNICODE -target x86_64-windows-msvc -lc -luser32 -lgdi32 -lgdiplus -lmsimg32 -lopengl32 -lkernel32 -limm32 -lole32 -loleaut32 -luiautomationcore -lshell32 -ladvapi32 -lwinhttp "-I$include" $vt -> 731/731 passed on rerun; initial run was 730/731 because an unrelated foreground-sensitive overview test failed, then passed 1/1 in isolation

Native package install, first-launch onboarding, keyboard operation, and UI Automation were not run. This PR does not claim those acceptance criteria.

Remaining layer 2 acceptance criteria: expose named keyboard-operable UIA pages and actions with deterministic focus, preserve modal foreground/ownership/teardown, and exercise package install through first launch, onboarding, and connected Welcome using native keyboard and UIA.

Checklist

  • I have read the Contributing Guidelines
  • I have signed off my commits (git commit -s) per the DCO
  • Tests pass locally (make test)
  • Code follows the existing style (make check)
  • I added the test/contract before the implementation and observed the intended RED failure

Part of #556.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Colin Neilens <coneilen@microsoft.com>
@coneilen
coneilen force-pushed the coneilen-microsoft-first-run-daemon-ordering branch from 26699d0 to 6556d99 Compare October 2, 2026 01:37
@coneilen coneilen mentioned this pull request Oct 2, 2026
3 of 5 tasks
@coneilen
coneilen added this pull request to stack #581 October 2, 2026 02:00
@coneilen
coneilen merged commit acdb2a6 into main Oct 2, 2026
24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant