Files
deepseek-harness/packages/bundle/base
Huanqi Cao 8ff75622c6 feat(bundle): default Windows hosts to the pwsh shell stack
win32 hosts booting a shipped profile now get pwsh-local as the ctx.bash
executor and tool-pwsh as the shell tool through the base bundle's new
windows.cordis.patch.yml platform layer, injected by the launcher between
the bundle layers and the user layers on win32. bash-sandbox, tool-bash,
permission, and ui-permission are disabled there: the POSIX-only executor
cannot run on Windows, and dsh-permission requires a confining executor.
Overriding the default is a composition decision through the user's
cordis.patch.yml; there is no environment override channel.

apps/cli and dsh-base re-declare dsh-pwsh-local/dsh-tool-pwsh so the
profile module fallback links them for cold starts (the profiles rework
had dropped them from the CLI closure).

Promotes the windows-pwsh-default Agent Note from proposed to implemented
and documents the platform layer in the base bundle README.
2026-08-07 00:37:33 +08:00
..

@deepseek-ai/dsh-base

English | 中文

The shared dsh core as a profile bundle: cordis.patch.yml inserts every base plugin row — model adapters, tools, persistence, policy, settings/credentials, repository Plugins, telemetry — over the empty profile root, as the first layer of every profile's dsh.profile.bundles list. Later bundle layers (e.g. dsh-web-app) and the user's profile cordis.patch.yml override these rows by id; a patch replaces a row's whole config, so mode-specific values live in mode bundles, not here. The package has no runtime API; the profile composer resolves the universal patch through the dsh.bundle.patch manifest field, and the launcher reads the Windows platform layer below from code on win32 hosts.

Windows hosts booting a shipped profile additionally receive windows.cordis.patch.yml: it disables the POSIX-only bash executor/tool and the permission stack (dsh-permission requires a confining executor), and inserts the PowerShell executor and tool (@deepseek-ai/dsh-pwsh-local, @deepseek-ai/dsh-tool-pwsh). The launcher applies it between the bundle layers and the user layers on win32 hosts; a Windows host that prefers the bash stack overrides these rows through its profile or home cordis.patch.yml. POSIX hosts never receive it.

The row set and its rationale are documented inline in the patch file; the generated composition graph renders it.

Model Experience

Indirectly, through the inserted rows: this bundle selects the shipped persona-less prompt base, tool set, and DeepSeek adapter that mode bundles specialize, and contributes no model-visible text of its own.

KV Cache effect

None directly; each inserted row's package owns its effect.

Known Limitations and Deferred Work

  • A patch replaces whole row configs — profile overrides must restate every field a row keeps; there is no deep-merge layer.
  • Windows loses the permission switcherdsh-permission hard-requires a confining ctx.bash executor, so the Windows platform layer disables permission/ui-permission with the bash stack. The fs tools keep the sandbox policy and the approval service, so file confinement and escalation still apply on Windows.