Skip to content

Show the directory and separate window before creating a workspace - #965

Merged
coneilen merged 14 commits into
mainfrom
coneilen-native-workspace-creation
Nov 8, 2026
Merged

coneilen merged 14 commits into
mainfrom
coneilen-native-workspace-creation

Conversation

@coneilen

@coneilen coneilen commented Nov 8, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Replace the generic workspace-name prompt with a native sheet that shows the directory and separate window the user will get. Keep creation, identity guards and launch ownership in the existing lifecycle.

Changes

  • Add resolved path, typed-name window diagram, isolation details, inline validation, Cancel and Create & Open; scope Ctrl+A to the owned name edit.
  • Wire existing workspace menu, manager and accessibility entrypoints and register colocated tests.
  • Preserve primary and secondary cleanup errors before ownership-retention signaling using bounded immutable diagnostics, without relaxing guards or adding process-control authority.
  • Register the seven diagnostic identities in both full and shell-unit routes; require 77 exact executed cases and reject missing, extra or duplicate diagnostics.
  • Document the unchanged Windows ASCII/48-character normalization difference. Shared Swift and macOS source are unchanged.

Test plan

RED: & ..graphcode-tools\zig-0.15.2\zig.exe test .\graphcode-windows\src\NewWorkspaceForm.zig --test-filter 'new workspace' -target x86_64-windows-msvc -lc -luser32 -lgdi32 -ladvapi32 -I .graphcode-tools\providers\winghostty\include --cache-dir .build\m3\zig-local -> 8 executed, 1 passed and 7 failed; expected resolved path but found empty output, plus state/layout failures against compilable incomplete behavior.
GREEN: & $env:GRAPHCODE_ZIG0152 test graphcode-windows\src\NewWorkspaceForm.zig --test-filter 'new workspace' -target x86_64-windows-msvc -lc -luser32 -lgdi32 -ladvapi32 "-I$env:GRAPHCODE_WINGHOSTTY_ROOT\include" --cache-dir .build\m3\zig-local --global-cache-dir .build\m3\zig-global -> 15/15 passed on composed head 6afc111.
REGRESSION: & $env:GRAPHCODE_ZIG0152 test graphcode-windows\src\WorkspaceLifecycle.zig --test-filter 'workspace names' --test-filter 'workspace paths' --test-filter 'workspace normalization' --test-filter 'workspace validation rejects long names' --cache-dir .build\m3\zig-local --global-cache-dir .build\m3\zig-global -> 4/4 passed; affected ownership mock/filesystem Pester regression passed 47/47 on composed head, with 30 other/native tests unselected.

Current composed head: 6afc111743ad14e89f5002b107de0ae97f16d691, tree e42572a4250bc0e6ccc958fbffda5e3a01be4b61. Signed normal merge parents include the previously validated E1 head and main 28493994e8e876fe5a00036214d3914f6f38ad1e. Strict branch-update policy required this update after all 26 E1 checks completed successfully or legitimately skipped. The intake changes only .gitignore, docs/compare.html, and docs/conductor-alternative.html; product and validation source-input diff is zero and 480 compiled provenance input occurrences remain hash-equal. Earlier native/full/shell executions retain their original head/build labels and apply only through unchanged-input evidence; current composed-head required CI must pass before merge. No new native run or guard rebuild was used to relabel them.

Actual functional acceptance: one admitted Invoke-M3CreateOpenDiagnostic.ps1 run, recipe D27B84CF0408DA5A3A5C5BC73F24DE5CEFCFB413C63565191CA1B0EB9E1183F8, passed actual directory creation, distinct owned window, selected workspace, normal onboarding and role-bound Unicode folder navigation. In a fresh empty namespace, one explicitly recorded restoreOpenProjects registers an observer sidebar (not read-only in general); its initial read fails, normal UI Open Folder produces one exact-path publication, then its correlated read succeeds on the same kernel server peer. Inner result A559522E...; outer CF2FED5E..., exit0, all six cleanup checks true, 17.4559146s. Product inputs are unchanged since this run; this is source-applicable evidence, not a composed-head functional execution.

E1 full compiled validation: unfiltered executable with --repository-root D:\depot\copilot-worktrees\GraphCode\coneilen-probable-robot --artifact-root D:\m3fulle1\full --fixture-compiler-input C:\Users\coneilen\.copilot\session-state\481117da-1883-41d1-b2d3-bb19ae883cf4\files\m3-current-compiler-input.json --fixture-compiler-input-sha256 9577984F46C8B4E3BE888F16C3BFB7C3BC94799414CD8322EE9D13AE0D12F4EA -> 684/684 unique positive units, direct sum2238 plus one derived unit, exact77/seven diagnostic groups. Coverage A05E5463...; terminal 941B26F5..., exit0/all six cleanup fields true, 1080.0442967s. E0 guard was actually built on131; compiled-input maps are verified unchanged, not relabeled as a new-head rebuild. Raw compiler-file EOF remains unproven separately from host pipe EOF.

E1 shell units: validate.ps1 -Task windows-shell -ShellPart unit -ShellTestShard N -ShellTestShardCount 3 -ShellTestManifest D:\m3unitse1\sections\shard-N.json for N=0,1,2 -> three fresh E1 manifests23/18/25. Canonical Test-ShellSectionManifests.ps1 -Directory D:\m3unitse1\sections -ShardCount 3 -> PASS, 66 unique sections; aggregate D76F079C.... No old65 catalog substitute.

E1 default integration: validate.ps1 -Task windows-shell -SkipTrayLive -ShellPart integration -SwiftExecutable the bootstrap-pinned Swift6.3.3 executable, through the reviewed protected caller -> PASS. Terminal CCC4FC2C..., exit0/no retention/all six cleanup fields true, 377.8670269s. UIA report 77C64CA1...: fixture2/action7/surface7 and existing edge/node/rename flows. Isolation45/provider2/smoke6/scrubbed5/daemon/tray controls retained. Button/command fallbacks are not whole physical-pointer or visual-parity proof.

Composed-head local checks: validate.ps1 -Task @('privacy','tdd-evidence') -> both passed; current form15/15 and selected ownership47/47 passed; TDD body checker, diff whitespace, touched-file LF and DCO/coauthor trailers verified. No source change followed these checks. Whole-App zig-fmt has three pre-existing upstream Wire hunks, left unchanged.

Hosted requirements: all nine applied required contexts must pass on the current head before normal merge. Packaging contracts/real are CI-only because actual user PATH/scheduler effects were not locally admitted. The sole existing Swift scheduler exception is GraphcodeWindowsProductionTests.WindowsDaemonTests/testWindowsScheduledTaskXMLRegistersLongUnicodeSupportAndPipe; actual isolated unfiltered current-head CI must pass. No other exclusion or setting exception is implied. These hosted jobs passed on E1 and are rerunning for the composed head.

Limits/history: functional acceptance is not paired visual parity or direct proof of the app's separate pipe handle. Historical picker failure B84EC6A9... still has unknown failing focus operand. Historical retained-authority 3E5A... still has null exit/cleanup proof; user OS session reset did not make it cleaned or recovered. Earlier full 683/684 and shard2 old70 failures remain preserved; registry and unit repairs were tested with exact missing/extra/duplicate controls before subsequent passes. macOS-only make test/make check were not run on this Windows host. No new release, auto-merge, force push or check bypass.

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

coneilen and others added 14 commits November 6, 2026 09:59
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>
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>
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>
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>
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>
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>
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>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
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