Fix Windows workspace lifecycle safety and isolation - #456
Merged
Merged
Conversation
Preserve accepted native dialog values, guard workspace ownership, and isolate new child daemon endpoints. Add production-helper, allocation-failure, disposable-filesystem, and hidden-native regressions. Keep lifecycle parity Partial pending authentic multi-instance, UIA, keyboard, and backend evidence. Signed-off-by: Colin Neilens <coneilen@microsoft.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Integrate the verified Windows platform merge while preserving lifecycle identity and dialog safety. Reconcile MenuRefresh state-change and popup-open routing, retain physical UIA bounds and fatal diagnostics, and initialize the new workspace identity in the existing DPI fixture. Combined focused tests, the full WindowsShell suite, and the production shell build pass. Signed-off-by: Colin Neilens <coneilen@microsoft.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Preserve both the toolbar keyboard callback and workspace identity validation at startup. Retain incoming logical header layout, typed UIA bounds, focus routing, fixture geometry, and accumulated native link flags alongside the reviewed lifecycle safeguards. Focused coverage, the complete wired Windows suite, and the production shell build pass on the combined tree. Signed-off-by: Colin Neilens <coneilen@microsoft.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
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.
Summary
Fix Windows workspace lifecycle ownership, child-instance isolation, and native dialog result handling. Preserve the merged #454 DPI/menu/diagnostic work. The lifecycle parity row remains Partial.
Changes
Evidence
RED: Run production-helper fixtures against original behavior -> accepted dialog text becomes empty, partial allocations leak, file collisions are accepted, and child instances inherit the parent's daemon pipe.
GREEN: Run identical fixtures with fixes -> pass; focused lifecycle, native-dialog and window/menu suites pass.
REGRESSION: Run WindowsShell.Tests.ps1 and the production build on merged #454 foundation -> 43 source suites pass, App/C++ 332/332 pass, and the shell builds successfully.
The coordinator independently reviewed the combined changes and reran App/C++ tests. Tests use disposable filesystem fixtures and never-shown native controls; no real user workspace was renamed or deleted.
Limits
No shown multi-instance, keyboard/UIA, app-driven save/reload, or real-backend lifecycle walkthrough is claimed. Structured Manage UI, macOS-style cycling, and recoverable deletion with session teardown remain follow-up work.
Reviewed head: bbeade3.
Commits include DCO sign-off and Copilot coauthor.