Skip to content

Commit deb6ffb

Browse files
committed
Shell env: hide Windows login probe
1 parent b81033d commit deb6ffb

3 files changed

Lines changed: 12 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ Docs: https://docs.openclaw.ai
3737
- Channels/plugins: show configured official external channels as missing-plugin status rows and send errors with exact install/doctor repair commands after raw package-manager upgrades leave Feishu or WhatsApp uninstalled. Fixes #78702 and #78593. Thanks @MarkMa84 and @mkupiainen.
3838
- Codex app-server: disarm the short post-tool completion watchdog after current-turn activity, expose `appServer.turnCompletionIdleTimeoutMs`, and include raw assistant item context in idle-timeout diagnostics so status-only post-tool stalls stop failing as idle. Fixes #77984. Thanks @roseware-dev and @rubencu.
3939
- Plugin skills/Windows: publish plugin-provided skill directories as junctions on Windows so standard users without Developer Mode can register plugin skills without symlink EPERM failures. Fixes #77958. (#77971) Thanks @hclsys and @jarro.
40+
- Shell env/Windows: hide the login-shell environment probe child window so gateway startup and shell-env refreshes do not flash a console on Windows. Fixes #78159. (#78266) Thanks @BradGroux.
4041
- MS Teams: surface blocked Bot Framework egress by logging JWKS fetch network failures and adding a Bot Connector send hint for transport-level reply failures. Fixes #77674. (#78081) Thanks @Beandon13.
4142
- Gateway/sessions: fast-path already-qualified model refs while building session-list rows so `openclaw sessions` and Control UI session lists avoid heavyweight model resolution on large stores. (#77902) Thanks @ragesaq.
4243
- Contributor PRs: remind external contributors to redact private information like IP addresses, API keys, phone numbers, and non-public endpoints from real behavior proof. Thanks @pashpashpash.

src/infra/shell-env.test.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,11 @@ describe("shell env fallback", () => {
114114

115115
function expectBinShFallbackExec(exec: ReturnType<typeof vi.fn>) {
116116
expect(exec).toHaveBeenCalledTimes(1);
117-
expect(exec).toHaveBeenCalledWith("/bin/sh", ["-l", "-c", "env -0"], expect.any(Object));
117+
expect(exec).toHaveBeenCalledWith(
118+
"/bin/sh",
119+
["-l", "-c", "env -0"],
120+
expect.objectContaining({ windowsHide: true }),
121+
);
118122
}
119123

120124
it("is disabled by default", () => {
@@ -425,7 +429,11 @@ describe("shell env fallback", () => {
425429

426430
expect(res.ok).toBe(true);
427431
expect(exec).toHaveBeenCalledTimes(1);
428-
expect(exec).toHaveBeenCalledWith(trustedShell, ["-l", "-c", "env -0"], expect.any(Object));
432+
expect(exec).toHaveBeenCalledWith(
433+
trustedShell,
434+
["-l", "-c", "env -0"],
435+
expect.objectContaining({ windowsHide: true }),
436+
);
429437
});
430438
});
431439

src/infra/shell-env.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ function execLoginShellEnvZero(params: {
9292
timeout: params.timeoutMs,
9393
maxBuffer: DEFAULT_MAX_BUFFER_BYTES,
9494
env: params.env,
95+
windowsHide: true,
9596
stdio: ["ignore", "pipe", "pipe"],
9697
});
9798
}

0 commit comments

Comments
 (0)