Skip to content

Conversation

@ibetitsmike
Copy link
Contributor

Generated with .

This PR improves Windows build compatibility:

  • Adjusts CI/workflows and scripts for Windows.
  • No breaking changes; no migrations required.

If you want me to expand the description with specific diffs, say "elaborate".

…to build and publish NSIS .exe\n- Install ImageMagick on Windows in setup-cmux action\n- Set Windows icon and artifactName in electron-builder config\n\n_Generated with _
@ibetitsmike ibetitsmike changed the title 🤖 fix: Windows build fix: Windows compatibility Nov 9, 2025
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines 93 to +105
## Development
dev: node_modules/.installed build-main ## Start development server (Vite + tsgo watcher for 10x faster type checking)
@bun x concurrently -k \
"bun x concurrently \"$(TSGO) -w -p tsconfig.main.json\" \"bun x tsc-alias -w -p tsconfig.main.json\"" \
"vite"
@npx concurrently -k --raw \
"$(TSGO) -w -p tsconfig.main.json" \
"bun tsc-alias -w -p tsconfig.main.json" \
"bun x vite"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge dev target calls nonexistent Bun binary

The dev recipe now launches bun tsc-alias -w -p tsconfig.main.json, but Bun only executes package binaries through bun x (or a script in package.json). Without that, the command fails with “could not find script or file tsc-alias” and the development server never starts. This regression blocks local development on every platform. Use bun x tsc-alias (or npx) as before so the watcher can run.

Useful? React with 👍 / 👎.

Comment on lines 29 to +34
/**
* Shescape instance for bash shell escaping.
* Reused across all SSH runtime operations for performance.
* Shescape properly auto-detects win32 & linux shells, but fails on macOS.
*/
const shescape = new Shescape({ shell: "bash" });
const shescape = new Shescape({ shell: process.platform === "darwin" ? "bash" : true });

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Escaping remote SSH commands using local shell semantics

The shared Shescape instance now auto-detects the local shell (new Shescape({ shell: process.platform === "darwin" ? "bash" : true })). SSHRuntime builds command strings that are always executed remotely via bash -c, so escaping must consistently follow bash rules. When the client runs on Windows, auto-detection returns cmd.exe semantics and inserts caret/double-quote escaping that bash interprets literally, causing SSH commands with spaces or special characters to fail. Keep the shell fixed to "bash" (or handle Windows separately on the remote side) to preserve correct quoting.

Useful? React with 👍 / 👎.

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +27 to +32
ifeq ($(OS),Windows_NT)
SHELL := /usr/bin/bash
else
SHELL := /bin/bash
endif
.SHELLFLAGS := -eu -o pipefail -c

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Use bash path that doesn’t exist on Windows

When $(OS)=Windows_NT) the Makefile now sets SHELL := /usr/bin/bash. Chocolatey’s make (used in the new build-windows workflow) ships only with sh.exe and there is no /usr/bin/bash on the default windows-latest runner or most developer environments. make will attempt to invoke that literal path and immediately exit with CreateProcess(/usr/bin/bash …) failed before any target runs, so bun run build in the Windows release job will fail. Use SHELL := bash (resolved from PATH) or a valid Windows path to bash instead.

Useful? React with 👍 / 👎.

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