Skip to content

Match Windows cycle card hierarchy to macOS - #942

Merged
coneilen merged 1 commit into
mainfrom
coneilen-match-cycle-card-hierarchy
Oct 28, 2026
Merged

coneilen merged 1 commit into
mainfrom
coneilen-match-cycle-card-hierarchy

Conversation

@coneilen

Copy link
Copy Markdown
Collaborator

Summary

Matches the Windows closed-cycle card hierarchy to the current macOS card: Inspect remains the body action, while cycle · no entry point stays in the metadata footer.

Changes

  • Keep the cycle reason chip in the footer by eliding footer metadata instead of moving the chip into the body row.
  • Match the macOS cycle-chip typography and the blocked Inspect button finish without changing unwired recovery controls or terminal chrome.
  • Publish the cycle reason as stable, non-invokable UIA Text while preserving card/action identities, selection, activation, hit targets, and context behavior.
  • Add focused rendering, layout, zoom, clipping, hit, UIA, native-provider, matched-scene, live-scene, and raw component export coverage.

Test plan

RED: & $env:GRAPHCODE_ZIG0152 test src\GraphCanvas.zig --test-filter "closed cycle card keeps Inspect" -target x86_64-windows-msvc -lc -luser32 -lgdi32 -lgdiplus "-I$env:GRAPHCODE_WINGHOSTTY_ROOT\include" -> TestUnexpectedResult at !role.chip_in_detail
GREEN: & $env:GRAPHCODE_ZIG0152 test src\GraphCanvas.zig --test-filter "closed cycle card keeps Inspect" -target x86_64-windows-msvc -lc -luser32 -lgdi32 -lgdiplus "-I$env:GRAPHCODE_WINGHOSTTY_ROOT\include" -> 1/1 passed
REGRESSION: pwsh -NoProfile -File Tools\windows\Tests\ValidationRunner.Tests.ps1 -ScratchRoot C:\gcf3-vr-final -> PASS with UiCaptureDriver 182/182

  • Full GraphCanvas.zig: 408 passed, 18 explicit opt-in skips, 0 failed.
  • Full registered App.zig: 1587 passed, 18 explicit opt-in skips, 0 failed.
  • Native accessibility provider: 259 checks, 0 failures.
  • Standalone UiCaptureDriver: 182 passed, 0 failed.
  • Matched scene contracts: 8 passed, 0 failed.
  • Hardening deterministic fixtures: 3/3 repeated runs passed.
  • Focused live UIA at short root C:\gcf3live3: both s-main-cycle-selected and s-main-cycle-unselected retained stable card/action/reason identities; Inspect ended above the footer reason; selected-card activation entered the workspace and returned through Show in Graph. Evidence SHA-256: F18898A5389E86FE1FC6C94E9244A94969E52183C821A78696A9A4A1961E912F.
  • Commit-bound raw unresampled offscreen component export: 2 scenes x 3 repeat-identical RGB hashes. Unselected BMP/RGB: ade1cc346a9546e9393d06a248d145d98f5b09509291ac12ff9ae7dc9a9da9bb / 5efa303852c2124615856e6a05f60cc37287ee2d58add0aab13aec2f2b3d6ced; selected BMP/RGB: 6de37b5f93934ca9a0d87953dc24b9c1a3c07ef24d8849393e96713ecdeee917 / cf35c810ce4a6cb35dbe680cf7379f5750b68a5664e134351b7873fe763ebf81.
  • Aggregate validate.ps1 -Task windows-shell -SkipTrayLive limit: the first run refused before UIA launch because its generated lease path was 242/232 characters. Two fresh short-root runs passed all preceding build, unit, contract, hardening, scrubbed-startup, and real-daemon phases, then both stopped in the same unrelated existing full-gate Delete Loop SelectionItemPattern.Select() COM failure at uia-live-gate.ps1:9070; both runs verified complete owned-process cleanup and an unchanged default profile.
  • The raw export is offscreen component evidence, not a paired desktop review. The parity ledger should remain Partial until the exact 100-percent macOS/Windows component pair is reviewed; antialiasing/compositor equivalence and the unrelated full-gate Delete Loop phase remain unqualified.

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

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Colin Neilens <coneilen@microsoft.com>
@coneilen
coneilen merged commit ccff5ef into main Oct 28, 2026
25 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