Agent: Windows process containment and environment allowlist (follow-up to #320)
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 12/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- docker, electron, nodejs, powershell, typescript
- Lĩnh vực
- desktop-dev, devops, security
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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).
- Ngôn ngữ chính
- TypeScript
- Star
- 3
- Fork
- 0
- Merge trung bình
- 17 giờ 33 phút
- Pull request đã merge (30 ngày)
- 163
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của musterhq/muster-code
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
musterhq/muster-code#866 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
p2 type:feature
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
musterhq/muster-code#843 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
p1 type:feature
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
musterhq/muster-code#840 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
p1 type:feature
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
musterhq/muster-code#829 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
type:bug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 70/100
musterhq/muster-code#815 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của musterhq/muster-code
Issue tương tự
-
[analytics-core] getQueryParams does not decode `+` as space and truncates values containing `=`Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
amplitude/Amplitude-TypeScript#2179 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
ci good first issue severity: low
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
TMHSDigital/GH-Arcade#111 ·
-
AsnIntegerConverter.toASN coerces strings with +value, rounding integers outside safe-integer rangeĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
PeculiarVentures/asn1-schema#189 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 4 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100