Repository navigation
Conversation
Collaborator
Author
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.
ELI5
Space bulk deletion can refuse a clean WSL workspace because the shell prints its startup message before Git runs. A dirty workspace containing a submodule can also lose the warning that Force Delete destroys work inside that submodule.
What Changed
Request the runner's existing captured-output mode for the removal preflight's status/index reads and its
.gitmodulesread. Only Git stdout reaches the existing parsers. Clean workspaces and configured shared links pass; actual edits still refuse deletion, with the specialized submodule warning retained.This affects the non-force local registered-worktree preflight reached by Space's bulk-delete action. Ordinary sidebar confirmation already sets force and bypasses this check.
Why
A required WSL login shell can print a normal banner such as
To run a command as administrator, use sudo.. Treating that text as status makes an empty clean result look dirty. Prefixing the.gitmodulesconfig record also changes its parsed path, so the populated submodule is missed. Use the established capture boundary instead of filtering arbitrary user output.Linked Issue
Found during the Git workflow audit; no existing linked issue.
Visual Proof
Production failure toast using actual before/after preflight results for a dirty populated submodule. Before offers the ordinary changed-files message; after warns about commits, local branches and stashes that were never pushed. These are headless component fixtures, not a full Electron deletion run.
Testing
ORCA_BACKGROUND_LAUNCH=1 pnpm check:changed --base=2d3e7e452000c26433650d75422e79a06be80684 --maxWorkers=2completed 19/20 checks; all non-unit checks pass. Its broad affected-test selection was stopped at 600.4 seconds under the authorized ten-minute bound without a final test summary, so the aggregate is not green. The controller finished in 604.1 seconds and verified all four owned subprocesses exited; the passing focused results above remain separate evidence.Review
Source and evidence reviewed independently before publication.
Agent skill upstream boundary
Notes
No wire, client, provider or path conventions change. Other platforms retain their native command path; force still returns before Git reads. Folder removal does not use this Git-worktree preflight. Execution hosts must update their own removal implementation; this does not change remote runtime removal policy.
Actual open patches #17173 (failed Windows deletion), #33531 (local Git runtime routing), and #22163 (automation reclamation) were inspected; none captures these parsed reads.