Advertise Windows keyboard-only shortcuts and drop unsupported gesture claims - #504
Merged
Merged
Conversation
coneilen
force-pushed
the
coneilen-microsoft-keyboard-discovery-hints
branch
from
September 28, 2026 23:54
81fc801 to
1667b9d
Compare
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Signed-off-by: Colin Neilens <coneilen@microsoft.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Signed-off-by: Colin Neilens <coneilen@microsoft.com>
coneilen
force-pushed
the
coneilen-microsoft-keyboard-discovery-hints
branch
from
September 29, 2026 02:16
1667b9d to
ad59225
Compare
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.
Problem
The Windows
Keyboard discoveryparity row claimed every shortcut was represented by a menu item or visible hint. It was not accurate on either side of the claim.Auditing the Windows keyboard mapper against the visible surfaces turned up two separate defects:
The second defect is the more damaging one: it made a gap look closed.
Change
graphcode-windows/src/MainWindow.zigCtrl+M, context-sensitiveCtrl+E,Ctrl+Up/Ctrl+Down, worktreeUp/Down, terminal focus1/2,Ctrl+Shift+X, andCtrl+Shift+V, plus toolbar and jump-palette navigation.graphcode-windows/README.mdandinvestigation/ui-parity-matrix.mdThree shortcuts are deliberately left unadvertised, and the reasoning is recorded rather than left implicit:
Ctrl+Pinvokes the samejumpToNodeaction asCtrl+J; advertising a duplicate adds noise.Ctrl+Shift+Iinvokes the same worktree-inspection action asCtrl+Shift+W.Ctrl+Shift+Ccollides with terminal copy; Clone Repository stays the advertised route.Ledger
The
Keyboard discoveryrow remainsPartial— this PR makes the row honest, it does not close it. The row now names the specific residuals: canvas click-to-select/open, blank-canvas drag-to-pan, node drag-to-move, connector drag-to-create-edge, wheel/pinch zoom, right-click context-menu access, and sidebar root-loop drag-to-reorder all still lack visible gesture hints.Closing those requires rendering inside
GraphCanvas.zig(canvas gestures) andSidebar.zig(root-loop reorder). Both are excluded from this PR's scope by explicit instruction, so the work is documented and left for an owner of those surfaces rather than reached into from here.Exactly one ledger row is modified. No other session's rows are touched.
Test evidence
Run with the pinned Zig 0.15.2 from
Tools\windows\bootstrap.ps1($env:GRAPHCODE_ZIG0152), against the pinned Winghostty include root.RED:
& $env:GRAPHCODE_ZIG0152 test src\MainWindow.zig -target x86_64-windows-msvc -lc -luser32 -lgdi32 -ladvapi32 "-I$env:GRAPHCODE_WINGHOSTTY_ROOT\include" --test-filter 'main and help menus expose missing shortcuts without canvas gesture claims'-> failed with a behavioral assertion mismatch: 10 keyboard-only rows were expected but the Help menu contained 18 rows, including the gesture claims.GREEN:
& $env:GRAPHCODE_ZIG0152 test src\MainWindow.zig -target x86_64-windows-msvc -lc -luser32 -lgdi32 -ladvapi32 "-I$env:GRAPHCODE_WINGHOSTTY_ROOT\include" --test-filter 'main and help menus expose missing shortcuts without canvas gesture claims'-> 1 test passed, executed count asserted non-zero so a filter typo cannot read as a pass.REGRESSION:
& $env:GRAPHCODE_ZIG0152 test src\MainWindow.zig -target x86_64-windows-msvc -lc -luser32 -lgdi32 -ladvapi32 "-I$env:GRAPHCODE_WINGHOSTTY_ROOT\include"-> all 48 MainWindow and transitively imported InputRouter tests passed; the 18-entry native accelerator-table assertion and the original 15-binding order contract are both unchanged.The RED above is a behavioral failure, not a compile failure — the test root built and the assertion reported a concrete row-count mismatch.
git diff --check origin/main...HEAD-> exit 0.Limits of this evidence
Stated plainly, because the row's status depends on it:
MainWindow.zigtest root, not the full Windows shell suite.This is why the row stays
Partial.Checklist
git commit -s); DCO cleanRED:/GREEN:/REGRESSION:lines present incommand -> resultform, from commands actually runPartialbecause the evidence is unit-levelGraphCanvas.zig,Sidebar.zig,App.zig)PATH