Agent: Windows process containment and environment allowlist (follow-up to #320)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 12/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- docker, electron, nodejs, powershell, typescript
- Área
- desktop-dev, devops, security
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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).
- Lenguaje dominante
- TypeScript
- Estrellas
- 3
- Forks
- 0
- Merge medio
- 17 h 33 min
- PR fusionados (30 d)
- 163
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de musterhq/muster-code
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
musterhq/muster-code#866 ·
Los mantenedores suelen responder en 1 día
-
p2 type:feature
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
musterhq/muster-code#843 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
p1 type:feature
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
musterhq/muster-code#840 ·
Los mantenedores suelen responder en 1 día
-
p1 type:feature
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
musterhq/muster-code#829 ·
Los mantenedores suelen responder en 1 día
-
type:bug
Dificultad 3/5 1-2 días Aptitud para principiantes 70/100
musterhq/muster-code#815 ·
Los mantenedores suelen responder en 1 día
Todos los issues de musterhq/muster-code
Issues similares
-
[analytics-core] getQueryParams does not decode `+` as space and truncates values containing `=`Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
amplitude/Amplitude-TypeScript#2179 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
ci good first issue severity: low
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
TMHSDigital/GH-Arcade#111 ·
-
AsnIntegerConverter.toASN coerces strings with +value, rounding integers outside safe-integer rangeAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
PeculiarVentures/asn1-schema#189 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 4 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100