Skip to content

Close Windows sidebar and navigation parity gaps - #400

Merged
coneilen merged 1 commit into
scgopi:mainfrom
coneilen:coneilen-microsoft-sidebar-nav-parity-gaps
Sep 21, 2026
Merged

coneilen merged 1 commit into
scgopi:mainfrom
coneilen:coneilen-microsoft-sidebar-nav-parity-gaps

Conversation

@coneilen

@coneilen coneilen commented Sep 21, 2026

Copy link
Copy Markdown
Collaborator

Summary

This PR closes the Windows sidebar/navigation behavior gaps called out in the parity ledger and updates investigation/ui-parity-matrix.md with the resulting evidence-based statuses.

Itemized results

  1. Nested loop treeValidated

    • Implemented root-row pointer drag reorder using the existing Sidebar.State.reorderRoots / persisted root records.
    • Applied persisted root ordering to the rendered loop tree.
    • Added a new Windows client wire command, sidebarNodesReordered, and daemon dispatch plumbing so reorder operations are emitted server-side as well.
    • Added focused reorder tests plus a deterministic UIA/live gate assertion that observes the reordered root rows and the emitted daemon command.
  2. Recent projects / Add Folder menuPartial

    • Added File > Add Folder > Recent Folders in the native menu, with a dedicated recent-folder command range and tests.
    • Split sidebar presentation so unopened recents remain distinct from currently open workspaces (project-row-* vs open-project-*).
    • The UIA/live gate verifies the distinct recent/open sidebar presentation and section behavior.
    • Ledger remains Partial because the native submenu structure is covered by focused tests, but there is not yet a live submenu walkthrough in the gate.
  3. Needs-you sectionValidated

    • Wired the Needs-you Stop action to the existing loop-stop daemon path using the actual attention entry project path + loop id.
    • Added focused routing coverage and a populated UIA/live assertion that proves Stop targets the correct loop.
  4. Activity stripValidated

    • Added the attention-only filter toggle.
    • Implemented real horizontal viewport/scroll state.
    • Wired activity-card navigation into the existing loop/workspace navigation flow.
    • Added focused coverage and UIA/live assertions for scroll-state change, filtering, and navigation to the selected loop.
  5. Sidebar error footerValidated

    • Switched the footer to wrapped multi-line layout for long ingress errors.
    • Added dedicated accessibility/UIA identities and semantics for the footer.
    • Added focused coverage and a UIA/live assertion that verifies the dedicated footer identity and wrapped bounds.
  6. Project context menuValidated

    • Kept Move as a Windows-native Explorer /select handoff rather than expanding scope to a riskier in-app relocation flow.
    • Added live filesystem/shell evidence by logging and asserting the actual Explorer target path in the UIA gate.
    • Updated the ledger row to document this platform decision explicitly.

Validation

  • Tools\\windows\\uia-live-gate.ps1 -SidebarParityOnly
  • ..\\.graphcode-tools\\zig-0.15.2\\zig.exe test .\\src\\Wire.zig
  • ..\\.graphcode-tools\\zig-0.15.2\\zig.exe test .\\src\\WorktreeStatus.zig
  • ..\\.graphcode-tools\\zig-0.15.2\\zig.exe test .\\src\\MainWindow.zig

TDD evidence

RED: powershell -NoProfile -ExecutionPolicy Bypass -File .\Tools\windows\uia-live-gate.ps1 -Shell .\pr400-red\graphcode-windows\zig-out\bin\graphcode-windows.exe -Zmx ..graphcode-tools\providers\zmx\zig-out\bin\zmx.exe -SidebarParityOnly -> exit 1: Projects did not expose grouped recent rows
GREEN: powershell -NoProfile -ExecutionPolicy Bypass -File .\Tools\windows\uia-live-gate.ps1 -Shell .\graphcode-windows\zig-out\bin\graphcode-windows.exe -Zmx ..graphcode-tools\providers\zmx\zig-out\bin\zmx.exe -SidebarParityOnly -> exit 0: sidebar parity gate passed
REGRESSION: Push-Location .\graphcode-windows; & '...graphcode-tools\zig-0.15.2\zig.exe' test .\src\Wire.zig; & '...graphcode-tools\zig-0.15.2\zig.exe' test .\src\WorktreeStatus.zig; & '...graphcode-tools\zig-0.15.2\zig.exe' test .\src\MainWindow.zig; Pop-Location -> exit 0: All 56 Wire, 9 WorktreeStatus, and 3 MainWindow tests passed

Protocol note

This PR adds the Windows-side sidebarNodesReordered graph command for sidebar root ordering. If the daemon/service does not already handle that command, a matching server-side handler may still be needed in the corresponding daemon repo/service for full end-to-end persistence outside the local Windows shell state.

Signed-off-by: Colin Neilens <coneilen@microsoft.com>

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@coneilen
coneilen merged commit 24b31ab into scgopi:main Sep 21, 2026
10 of 11 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