Skip to content

fix(windows): Bun runtime, PowerShell robustness, path/encoding + 3 more fixes#583

Open
palprateek wants to merge 3 commits into
JuliusBrussee:mainfrom
palprateek:windows-support
Open

fix(windows): Bun runtime, PowerShell robustness, path/encoding + 3 more fixes#583
palprateek wants to merge 3 commits into
JuliusBrussee:mainfrom
palprateek:windows-support

Conversation

@palprateek

Copy link
Copy Markdown

Adds Bun as first-class runtime (>=1.3.14) and fixes 12 Windows-specific issues:

Shell / Installer

MSYS / Git Bash

caveman-compress

Cavecrew agents

caveman-shrink

CI

  • Add Node.js test workflow for installer tests

Add Bun as first-class runtime (>=1.3.14) — works standalone or alongside Node. Shell wrappers auto-detect either runtime; bin/install.js accepts both.

Fixes seven Windows-specific issues:

- Rename $Args->$InstallerArgs in install.ps1 to avoid PowerShell automatic-variable collision (JuliusBrussee#366, JuliusBrussee#439, JuliusBrussee#440, JuliusBrussee#518)

- Guard $MyInvocation.MyCommand.Path against null in pipe mode so irm ... | iex doesn't crash (JuliusBrussee#546, JuliusBrussee#565)

- Convert MSYS paths (/c/Users/...) to Windows paths (c:/Users/...) in Claude Code hook commands so Node resolves them on Git Bash (JuliusBrussee#199)

- Pin all caveman-compress read_text/write_text to encoding=utf-8 to prevent charmap codec crash on Windows cp1252 (JuliusBrussee#533)

- Reconfigure stdout/stderr to UTF-8 in benchmark.py for checkmark/crossmark glyphs
Runs npm test on ubuntu-latest with Node 22 on push/PR to main. Skips markdown-only changes. Uses concurrency groups to cancel redundant runs.
Fixes three more issues:

- Quote process.execPath in spawnXplat on Windows so Node at C:\Program Files\nodejs\node.exe spawns correctly (JuliusBrussee#461)

- Remove tools: and model: from cavecrew agent YAML frontmatter so Gemini CLI can load them; tool restrictions already expressed in prose (JuliusBrussee#473)

- Loop sentinel restoration in caveman-shrink until stable so nested protected segments (enum values like (STARTER/BUSINESS)) aren't left as numeric placeholders (JuliusBrussee#444)

JuliusBrussee#406 investigated: npm ETARGET yaml@^2.8.3 is an upstream skills CLI dependency issue, not a caveman bug
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant