Skip to content

chore(windows): one-command dev setup and a relay container - #4

Merged
QuicksilverSlick merged 1 commit into
mainfrom
chore/windows-dev-setup
Aug 31, 2026
Merged

chore(windows): one-command dev setup and a relay container#4
QuicksilverSlick merged 1 commit into
mainfrom
chore/windows-dev-setup

Conversation

@QuicksilverSlick

Copy link
Copy Markdown
Owner

just dev cannot run on Windows. It prepends the repo's Hermit bin/ to PATH — those shims are checked out as plain text files, not symlinks — and its beforeDevCommand is Unix shell that cmd.exe cannot execute.

scripts/dev-windows.bat

The equivalent: loads .env, starts the relay, starts Vite, waits on the relay's readiness probe, then launches the desktop app.

Two Windows traps are documented in the header because both cost real time to diagnose:

  • Git for Windows ships /usr/bin/link.exe (GNU coreutils link), which shadows the MSVC linker. rustc resolves a bare link.exe off PATH and fails with missing operand after '@...linker-arguments'. Calling vcvars64.bat first puts MSVC ahead of it. Setting VCINSTALLDIR by hand makes it worse — rustc then believes it is already in a developer prompt, skips vswhere detection, and picks the Git linker again.
  • A path containing (x86) echoed inside a parenthesized if block ends the block early, failing with \Microsoft was unexpected at this time. Every conditional branches with goto for that reason.

scripts/build-windows-installer.bat

Builds the release sidecars and produces the NSIS/MSI bundle. Requires MSVC v143 — v142 cannot link the prebuilt ONNX Runtime that sherpa-onnx pulls in, failing with ~41 unresolved __std_* vectorized-STL symbols.

docker-compose.relay.yml

Runs the relay as a container against the existing dev services, so it returns with Docker rather than needing a terminal.

Deliberately not deploy/compose/compose.yml, which brings its own Postgres/Redis/MinIO on the same ports with separate volumes and would shadow the dev database.

`just dev` cannot run on Windows: it prepends the repo's Hermit bin/ to
PATH, and those shims are checked out as plain text files rather than
symlinks, and its beforeDevCommand is Unix shell that cmd.exe cannot
execute.

scripts/dev-windows.bat is the equivalent — loads .env, starts the
relay, starts Vite, waits on the relay's readiness probe, then launches
the desktop app. Two Windows-specific traps are documented in its
header because both cost real time to diagnose:

- Git for Windows ships /usr/bin/link.exe (GNU coreutils `link`), which
  shadows the MSVC linker. rustc resolves a bare `link.exe` off PATH and
  fails with "missing operand after '@...linker-arguments'". Calling
  vcvars64.bat first puts MSVC ahead of it. Setting VCINSTALLDIR by hand
  makes it worse: rustc then believes it is already in a developer
  prompt, skips vswhere detection, and picks the Git linker again.
- A path containing "(x86)" echoed inside a parenthesized if-block ends
  the block early, failing with "\Microsoft was unexpected at this
  time." Every conditional here branches with goto for that reason.

scripts/build-windows-installer.bat produces the NSIS/MSI bundle.

docker-compose.relay.yml runs the relay as a container against the
existing dev services, so it restarts with Docker rather than needing a
terminal. Deliberately not deploy/compose/compose.yml, which brings its
own Postgres/Redis/MinIO on the same ports and would shadow the dev
database.

Co-Authored-By: Claude Opus 5 <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