Files
deepseek-harness/packages/shell
Chinesezjc 0364343a7e test: remove dsh-* temp dirs created by unit tests at teardown
Spec files that create /tmp/dsh-* directories via mkdtemp now track and
delete them in afterEach/afterAll; module-scope fixture dirs (executor
spill dirs) are removed in afterAll. The file list came from the
observed-residue inventory on the self-hosted CI host: only specs whose
dirs actually accumulated were leak sources (issue #3134), superseding
the kept-but-unmerged CI sweep branch per the #3233 review decision.

Product per-process spill roots (dsh-subprocess-local spawn,
dsh-spill-local store) register a process-exit handler that removes the
memoized dir, so processes that used the spawn/spill path clean up on
normal exit. A SIGKILLed process cannot run in-process teardown; the
machine-side timer remains the backstop for that path.

Agent Note: .agents/notes/implemented/process/2026-08-28-test-temp-dir-self-cleanup.md
2026-09-03 16:19:18 +08:00
..
2026-09-03 02:27:19 +08:00
2026-09-03 02:27:19 +08:00
2026-09-03 02:27:19 +08:00
2026-09-03 02:27:19 +08:00

description, kind
description kind
The bash capability family for deployments and maintainers choosing and composing a shell executor, sandboxing, and the model-facing bash and pwsh tools. package-group

shell/ — bash capability family

English | 中文

Summary

The shell group provides command execution to agents: run a foreground command and read its bounded output, or start a background process and poll it, on POSIX with Bash and on Windows with PowerShell. Exactly one executor implementation is mounted per composition; the sandboxing executors confine every command through the sandbox capability, and the model-facing bash and pwsh tools sit on top of whichever executor is mounted. Choose a Bash executor for POSIX, a PowerShell executor for Windows, and pick the sandboxing variant when commands need file-level confinement.

Table of Contents


Packages

Package Role ctx key
shell Defines the executor contract: foreground runs, background handles, and request resolution ctx.shell
bash-local Runs Bash commands as fresh bash -c processes on POSIX registers ctx.shell
bash-sandbox Runs Bash commands confined through the sandbox capability, reporting denials as facts registers ctx.shell
pwsh-local Runs PowerShell commands as fresh pwsh -Command processes on Windows registers ctx.shell
pwsh-sandbox Runs PowerShell commands confined through the sandbox capability registers ctx.shell
shell-env Supplies the managed DSH_* environment every shell command receives ctx.shellEnv
tool-bash Exposes Bash execution and background jobs to the model as the bash tool registers on ctx.tools
tool-bash-persistent Runs model shell calls in one owner-isolated persistent Bash session registers on ctx.tools
tool-pwsh Exposes PowerShell execution to the model as the pwsh tool registers on ctx.tools
tool-pwsh-persistent Runs model shell calls in one owner-isolated persistent PowerShell session registers on ctx.tools

A profile layer selects exactly one executor implementation (the win32 layer swaps the POSIX rows for the pwsh ones; mounting two fails loud on the duplicate service registration) and the model-facing tools it needs. A sandboxed composition also selects a ctx.sandbox provider and ctx.sandboxPolicy; the base bundle owns the shipped wiring.


  • Bash executor subsystem — the shared request/spec vocabulary, results, background processes, and the service contract.
  • Sandbox subsystem — the confinement capability the sandboxing executors consume.

Dev Note

None.