Skip to content

Commit a837b49

Browse files
committed
fix: suppress Windows console window on provider auto-start (windowsHide)
The autostart plugin's detached 'node serve' and serve's shell:true provider spawn opened a cmd console window on Windows. Added windowsHide:true to both. Re-run setup --force to refresh an installed ralph-autostart.ts. 116 tests.
1 parent b51c549 commit a837b49

9 files changed

Lines changed: 17 additions & 6 deletions

File tree

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ All notable changes to this project are documented here.
44

55
Format based on [Keep a Changelog](https://keepachangelog.com/).
66

7+
## [0.4.2] - 2026-06-25
8+
9+
### Fixed
10+
11+
- **No more console window popping up on Windows when the provider auto-starts.** Added `windowsHide: true` to the auto-start plugin's spawn and to the `serve` command's provider spawn (the `shell: true` cmd launch was what opened the window). Re-run `setup --force` to refresh an already-installed `ralph-autostart.ts`.
12+
713
## [0.4.1] - 2026-06-24
814

915
### Added

bin/opencode-ralph-rlm.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,12 +157,14 @@ async function runServe(args: string[]): Promise<void> {
157157
env,
158158
stdio: "inherit",
159159
shell: process.platform === "win32",
160+
windowsHide: true,
160161
})
161162
: spawn("npx", ["nitro", "dev", "--port", String(port), "--host", "127.0.0.1"], {
162163
cwd: providerDir,
163164
env,
164165
stdio: "inherit",
165166
shell: process.platform === "win32",
167+
windowsHide: true,
166168
});
167169

168170
await new Promise<void>((resolve) => {

bin/ralph-serve.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ const child = spawn("bunx", ["nitro", "dev", "--port", String(portValue), "--hos
7676
env,
7777
stdio: "inherit",
7878
shell: process.platform === "win32",
79+
windowsHide: true,
7980
});
8081

8182
child.on("exit", (code) => {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@doeixd/opencode-ralph-rlm",
3-
"version": "0.4.1",
3+
"version": "0.4.2",
44
"description": "Ralph RLM v0.2: OpenCode supervisor provider + loop engine + worker plugin",
55
"type": "module",
66
"workspaces": [

packages/engine/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@doeixd/opencode-ralph-rlm-engine",
33
"private": true,
4-
"version": "0.4.1",
4+
"version": "0.4.2",
55
"description": "Ralph RLM loop engine — verify, rollover, OpenCode SDK worker lifecycle",
66
"license": "MIT",
77
"repository": {

packages/engine/src/setup.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,12 @@ export const RalphAutostartPlugin = async (ctx) => {
6262
// Launch with Node (NOT process.execPath — that is the opencode binary here)
6363
// and pipe stdio to a file (NOT "ignore" — a detached child with ignored
6464
// stdio is killed on Windows). detached + unref lets the provider outlive
65-
// OpenCode and be reused on the next launch.
65+
// OpenCode and be reused on the next launch. windowsHide stops a console
66+
// window from popping up on Windows.
6667
const child = spawn("node", [cli, "serve", "--port", port, "--worktree", wt], {
6768
detached: true,
6869
stdio: ["ignore", out, out],
70+
windowsHide: true,
6971
});
7072
child.unref();
7173
} catch {

packages/provider/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@doeixd/opencode-ralph-rlm-provider",
33
"private": true,
4-
"version": "0.4.1",
4+
"version": "0.4.2",
55
"description": "Ralph RLM OpenAI-compatible supervisor provider (Nitro)",
66
"license": "MIT",
77
"repository": {

packages/provider/server/routes/api/health.get.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export default defineHandler(async () => {
1616
return {
1717
healthy: true,
1818
provider: "@doeixd/opencode-ralph-rlm",
19-
version: "0.4.1",
19+
version: "0.4.2",
2020
opencode: {
2121
baseUrl: runtime.baseUrl,
2222
...opencode,

packages/worker-plugin/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@doeixd/opencode-ralph-rlm-worker-plugin",
33
"private": true,
4-
"version": "0.4.1",
4+
"version": "0.4.2",
55
"description": "Thin Ralph RLM worker plugin — file-first tools and context gating",
66
"license": "MIT",
77
"repository": {

0 commit comments

Comments
 (0)