Agent: Windows process containment and environment allowlist (follow-up to #320)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 12/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- docker, electron, nodejs, powershell, typescript
- Ambito
- desktop-dev, devops, security
Direzione di ricerca
The work spans runtime/process-tree.ts (killTreeAndEscapees), runtime/command-environment.ts (the win32 denylist to replace with an allowlist) and a Job Object wrapper that needs a native addon or ffi. Start by reading how killTreeAndEscapees and the environment filter are wired, then decide the native-addon approach with maintainers. Done means a grandchild reparented outside the tree is killed on Stop in Windows CI, and git, node, npm and python still run under the allowlist.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Not finishable safely without Windows hardware or a native addon, so split out from the 0.3.7 follow-ups.
- Job Object (H2, Windows). Node cannot create a Job Object with KILL_ON_JOB_CLOSE without a native addon (e.g. a small N-API module or ffi). 0.3.7 ships a PowerShell ParentProcessId sweep plus
taskkill /T /F(runtime/process-tree.ts, killTreeAndEscapees), which cannot reach processes started through WMI/schtasks or whose parent already exited. Spawn the shell inside a Job Object and close the handle on Stop/timeout. Test on Windows CI with a grandchild that is reparented. - Windows environment allowlist (H3 / N7). runtime/command-environment.ts still passes the whole environment minus a denylist on win32. Kept today: STRIPE_SECRET_KEY, DJANGO_SECRET_KEY, LITELLM_MASTER_KEY, _KEY, GITHUB_PAT, PGPASSWORD, MYSQL_PWD, DATABASE_URL, REDIS_URL, SENTRY_DSN, SLACK_WEBHOOK_URL, DOCKER_AUTH_CONFIG, NODE_OPTIONS, ELECTRON_RUN_AS_NODE. Use an allowlist: SystemRoot, windir, ComSpec, PATHEXT, PATH, TEMP, TMP, USERPROFILE, APPDATA, LOCALAPPDATA, ProgramData, ProgramFiles, SystemDrive, HOMEDRIVE, HOMEPATH, USERNAME, USERDOMAIN, COMPUTERNAME, OS, PROCESSOR_*, NUMBER_OF_PROCESSORS, PSModulePath. Check that git, node, npm, python still run on windows-latest CI.
- Already-daemonised processes (POSIX). The ppid walk cannot find a process that was reparented to init before Stop (double fork that outlived its parent). Options: tag the run's environment with a unique MUSTER_RUN_ID and sweep
ps ewwfor it on Stop (Linux: /proc/*/environ), or a cgroup/subreaper where available. - A background job that outlives a successful command is never cleaned up (matches the Codex route); decide whether to sweep after each command.
Source: scratchpad/sec320-REVERIFY.md (H2, H3, N2, N7).
- Lingua principale
- TypeScript
- Stelle
- 3
- Fork
- 0
- Merge medio
- 17h 33m
- PR unite (30g)
- 163
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un 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 musterhq/muster-code
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
musterhq/muster-code#866 ·
I maintainer di solito rispondono entro 1 giorno
-
p2 type:feature
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
musterhq/muster-code#843 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
p1 type:feature
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
musterhq/muster-code#840 ·
I maintainer di solito rispondono entro 1 giorno
-
p1 type:feature
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
musterhq/muster-code#829 ·
I maintainer di solito rispondono entro 1 giorno
-
type:bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 70/100
musterhq/muster-code#815 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di musterhq/muster-code
Issue simili
-
[analytics-core] getQueryParams does not decode `+` as space and truncates values containing `=`Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
amplitude/Amplitude-TypeScript#2179 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
ci good first issue severity: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
TMHSDigital/GH-Arcade#111 ·
-
AsnIntegerConverter.toASN coerces strings with +value, rounding integers outside safe-integer rangeAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
PeculiarVentures/asn1-schema#189 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100