Skip to content

Fix fitted lane geometry UIA gate - #936

Merged
coneilen merged 1 commit into
mainfrom
coneilen-fix-lane-geometry-uia
Oct 26, 2026
Merged

coneilen merged 1 commit into
mainfrom
coneilen-fix-lane-geometry-uia

Conversation

@coneilen

@coneilen coneilen commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Fix the live Windows UIA lane-card geometry oracle so fitted cards clipped by the graph viewport still prove the shared source 250x96 layout without changing #778 product behavior.

Refs #778

Changes

  • Freeze exact card IDs, names, and physical bounds after owned Fit Canvas actions on overview, project, and restored overview surfaces.
  • Derive each fitted axis scale from an unclipped full-size peer and reconstruct the source edge only when a smaller card is clipped at the exact graph viewport boundary.
  • Preserve strict source dimensions, card order, non-overlap, viewport containment, foreign/missing-card rejection, and denominator-derived rounding budgets.
  • Add the exact DPI192 190x78/206x78 regression plus wrong source size, observed size, order, overlap, foreign, missing, outside-viewport, both-clipped, and no-full-peer negatives.

Test plan

RED: pwsh -NoProfile -Command "invoke extracted stale lane oracle with 190x78 fitted cards" -> lane cards do not normalize to the shared 250x96 geometry
GREEN: pwsh -NoProfile -Command "invoke final normalized lane helper with 190x78 and 206x78 cards" -> FOCUSED_LANE_GEOMETRY=PASS observed=190x78,206x78 clipping=left,none noFullPeerNegatives=2
REGRESSION: pwsh -NoProfile -File Tools\windows\Tests\ValidationRunner.Tests.ps1 -> UiScenario 166/166 and UiCaptureDriver 182/182 passed

  • PowerShell parser checks for both changed files passed.
  • pwsh -NoProfile -File Tools\windows\validate.ps1 -Task hardening passed deterministic fixtures and repeated runs 3/3.
  • Fresh short-root live integration emitted UIA_LANE_OPEN_NORMALIZED_EVIDENCE with normalizedEqual=true for 190x78/206x78 project cards, exact 250x96 source dimensions, left/none clipping, exact order, non-overlap, viewport containment, and DeltaX error 1.9574 within the 8.3928 budget.
  • Restored overview comparison emitted Equal=true; the uninspected lane retained legacyChipCount=0.
  • The live run later stopped at the unrelated New Tab did not expose a mounted background tab cutoff before context-menu evidence. Process-tree/provider cleanup and the default-profile guard passed; a post-run process check found zero GraphCode, graphcoded, or zmx processes.
  • git diff --check and LF checks for both changed files passed.
  • No Windows parity: Context menus carry the macOS item set and grouping #778 product files were changed. Context-menu behavior was not modified.
  • Original head cdf6078cc3a0e86f18d057864cb754be80c57369 completed all GitHub checks successfully or intentionally path-gated skipped, including integration, three unit shards, real packaging, Windows spikes, deterministic hardening on Windows 2022/2025, DCO, TDD evidence, and privacy scan.
  • Rebased patch-identically onto origin/main at 5f7d579b356a932617478158f46c03e41c0a4b42; stable patch ID remained 1421f555d4437f54a3dbf3feda143a044fd865b9.
  • Rebased head 8c894bb36c9624438086afe8f5069ea82b344341 repeated the focused 190x78/206x78 contract, ValidationRunner 166/166 + 182/182, hardening 3/3, and the same live normalized-lane success followed by the later New Tab cutoff and verified cleanup.

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 force-pushed the coneilen-fix-lane-geometry-uia branch from cdf6078 to 8c894bb Compare October 26, 2026 19:29
@coneilen
coneilen merged commit 445e5f3 into main Oct 26, 2026
26 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