Skip to content

dsh-win32 v0.4.0

Choose a tag to compare

@sjh9714 sjh9714 released this 15 Aug 10:06
· 41 commits to master since this release

Two firsts.

The sandboxed persistent shell. MSYS bash dies under the workspace-write restricted token (cygheap TokenDefaultDacl 0xC0000022, measured), but busybox-w32 ash has no cygheap and survives. npx dsh-win32 setup --sandboxed installs the minimal-windows-sandboxed preset (busybox downloaded on consent, GPLv2, never bundled). Proven on windows-latest CI with a full send/read round-trip inside the restricted token, now a required CI job. The trade-off is ash, not bash.

Legacy-encoding reads (dsh-win32/fs). Stock DSH refuses GBK/UTF-16 files outright (FS_NOT_TEXT), locking agents out of Chinese-locale legacy projects. Both presets now mount a reader that sniffs and transparently decodes GBK and UTF-16 on reads. Writes stay UTF-8, so editing a legacy file converts it. Deliberate and documented.

Also documented. PTY output of legacy-codepage native tools is unfixable at the plugin layer (node-pty decodes UTF-8 before DSH sees bytes). Shipped presets are unaffected since Git Bash and busybox default to UTF-8.

Upgrade with dsh plugin --profile web add dsh-win32@0.4.0 && npx dsh-win32 setup --sandboxed