Skip to content

feat: add Windows and Linux terminal support#569

Open
frosty-geek wants to merge 7 commits into
BugRoger:mainfrom
frosty-geek:feature/windows-support
Open

feat: add Windows and Linux terminal support#569
frosty-geek wants to merge 7 commits into
BugRoger:mainfrom
frosty-geek:feature/windows-support

Conversation

@frosty-geek
Copy link
Copy Markdown

Summary

  • New TerminalSessionFactory for Windows and Linux: dispatches phases to Windows Terminal (wt new-tab) or GNOME Terminal (gnome-terminal --tab), falling back to xterm; completion detected via existing file-based .output.json markers
  • Extracted session-watcher.ts: shared file-watcher logic split out of it2.ts so both ITermSessionFactory and TerminalSessionFactory use the same completion detection
  • Cross-platform process termination: proc.kill("SIGINT")proc.kill() in factory.ts and compact.ts; SIGTERM listener guarded by process.platform !== "win32" in watch-loop.ts
  • Fixed --version flag parsing: args.ts rejected --version/-v before index.ts switch could handle them
  • npx installer — Windows/Linux support: platform checks for bun installation (PowerShell vs curl), where vs command -v for prereqs, beastmode.cmd wrapper dropped directly in npm bin dir (bun shim dir not in PATH when bun is npm-installed)
  • npx installer — plugin marketplace fixes (supersedes Fix npx install for Claude Code v2.1.112 #558): source: "directory" instead of unimplemented "npm", marketplace.json placed in .claude-plugin/ subdir, Windows directory junction for plugin/ link (no admin rights required), error message printed on install failure
  • Tests: Windows/Linux variants added for bun-installer and prereqs; "rejects non-macOS" replaced with "rejects unsupported platforms"

Test plan

  • npx beastmode install on Windows — plugin loads in Claude Code (/reload-plugins = 1 plugin, 17 agents)
  • beastmode help works via beastmode.cmd wrapper in npm bin dir
  • beastmode --version no longer exits 1
  • Unit tests pass for bun-installer and prereqs including new win32/linux variants
  • TerminalSessionFactory on Windows Terminal — dispatch opens tabs, phases complete
  • TerminalSessionFactory on GNOME Terminal — dispatch opens tabs, phases complete

Note: The TerminalSessionFactory terminal dispatch is structurally complete but not yet integration-tested end-to-end on a live dashboard session. macOS/iTerm2 path is unchanged.

Supersedes the npx fixes from #558 and extends them with Windows-specific adaptations.

Generated with Claude Code

Michael Schmidt and others added 3 commits April 12, 2026 21:42
## Fixes

- Resolve lockfile path to `.beastmode/.beastmode-watch.lock` instead of `cli/.beastmode-watch.lock`
- Update `.gitignore` entry to match new lockfile path

## Docs

- Update lockfile path references in orchestration and CLI context docs

## Artifacts

- Design: .beastmode/artifacts/design/2026-04-12-lockfile-path-fix-dcd0.md
- Plan: .beastmode/artifacts/plan/2026-04-12-lockfile-path-fix-dcd0--lockfile-path-fix.1.md
- Release: .beastmode/artifacts/release/2026-04-12-lockfile-path-fix-dcd0.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add TerminalSessionFactory for Windows Terminal (wt) and GNOME Terminal
- Extract shared file-watcher logic to session-watcher.ts
- Fix proc.kill() calls to use no-arg form (SIGTERM unsupported on Windows)
- Guard SIGTERM listener behind platform check in watch-loop
- Fix --version/-v flag parsing in args.ts (was rejected before index.ts switch)
- npx installer: support win32/linux platforms (bun install, prereq checks)
- npx installer: create beastmode.cmd in npm bin dir on Windows
- npx installer: fix plugin marketplace source type (directory, not npm)
- npx installer: place marketplace.json in .claude-plugin/ subdir
- npx installer: use Windows junctions for plugin/ symlink (no admin rights)
- npx installer: print error message on install failure
- Tests: add Windows/Linux variants for bun-installer and prereqs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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