Windows sandbox: a command that fails before starting leaves sandbox-helper.exe running
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- rust, typescript
Direzione di ricerca
Inizia con HelperProcess.fail() in src/main/tools/sandbox_windows.ts e il test del fake helper in sandbox_windows.test.ts:291; confronta il comportamento del vero helper all’EOF di stdin in native/sandbox-helper/src/win.rs:216-252. Aggiorna il fake helper affinché resti attivo finché stdin non viene chiuso, quindi verifica che l’helper termini dopo fail() ed esegui i test del sandbox Windows.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Found in the 2026-10-07 code review (traced on both the TypeScript and Rust sides).
Problem
HelperProcess.finish() (src/main/tools/sandbox_windows.ts:365-377) ends the helper's stdin, but fail() (:356-363) does not. The helper's serve loop (native/sandbox-helper/src/win.rs:216-252) only exits when stdin reaches EOF. After run() returns Err, it sends Error{id} and waits for more input. ShellRunner treats 'error' as finished and never calls killTree. Background entries get exitCode = null, so stopBackground skips them too.
Scenario
Every error before the command starts leaves one idle helper process with three pipes: a lock timeout, missing git metadata, a CreateAppContainerProfile/CreateProcessW failure, no free drive letter, or a cancel during preparation. A model that retries a failing command piles them up until Patch quits.
Why the tests miss it
The fake helper in sandbox_windows.test.ts:291 calls process.exit(0) after sending error. The real helper doesn't exit.
Fix
private fail(message: string): void {
if (this.done) return;
this.done = true;
this.helper.stdin?.end(); // the helper exits once its input closes
this.stdout.end();
this.stderr.end();
this.emit('error', new Error(message));
this.emit('close', null);
}
Make the fake helper stay alive until its stdin closes, and assert that the helper process exited after fail().
- Lingua principale
- TypeScript
- Stelle
- 2
- Fork
- 2
- Merge medio
- 8h 28m
- PR unite (30g)
- 26
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di PierrunoYT/patch
-
enhancement priority: low severity: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
PierrunoYT/patch#305 ·
I maintainer di solito rispondono entro 1 giorno
-
security: isAppPageUrl checks devRendererUrl with startsWith instead of comparing parsed URL originsApertapriority: low security severity: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
PierrunoYT/patch#300 ·
I maintainer di solito rispondono entro 1 giorno
-
Claude Code chats: tool calls made inside Claude Code subagents leave cards that end as "(stopped)"Apertabug priority: low severity: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
PierrunoYT/patch#289 ·
I maintainer di solito rispondono entro 1 giorno
-
bug priority: medium severity: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
PierrunoYT/patch#285 ·
I maintainer di solito rispondono entro 1 giorno
-
priority: medium security severity: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
PierrunoYT/patch#283 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di PierrunoYT/patch
Issue simili
-
Edit: Tele Posadas HDApertacheck:passed streams:edit
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
area:mcp bug has repro platform:vscode regression
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
anthropics/claude-code#103970 ·
I maintainer di solito rispondono entro 1 giorno
-
skillopt: success-reflect prompt omits the edit schema, so every success-only edit is droppedAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Workspace secrets/constants containing "$" are corrupted when resolved in data source optionsApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno
-
sdk-typescript: unquoted COPY globs in shell form are silently dropped from the image build contextApertabug javascript
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno