fix(shell-env): hide Windows login shell probe (#78266) · openclaw/openclaw@2bd4529
BradGroux
·
2026-05-08
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -37,6 +37,7 @@ Docs: https://docs.openclaw.ai
|
37 | 37 | - 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. |
38 | 38 | - 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. |
39 | 39 | - 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. |
40 | 41 | - 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. |
41 | 42 | - 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. |
42 | 43 | - 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. |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -114,7 +114,11 @@ describe("shell env fallback", () => {
|
114 | 114 | |
115 | 115 | function expectBinShFallbackExec(exec: ReturnType<typeof vi.fn>) { |
116 | 116 | 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 | +); |
118 | 122 | } |
119 | 123 | |
120 | 124 | it("is disabled by default", () => { |
@@ -425,7 +429,11 @@ describe("shell env fallback", () => {
|
425 | 429 | |
426 | 430 | expect(res.ok).toBe(true); |
427 | 431 | 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 | +); |
429 | 437 | }); |
430 | 438 | }); |
431 | 439 | |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -92,6 +92,7 @@ function execLoginShellEnvZero(params: {
|
92 | 92 | timeout: params.timeoutMs, |
93 | 93 | maxBuffer: DEFAULT_MAX_BUFFER_BYTES, |
94 | 94 | env: params.env, |
| 95 | +windowsHide: true, |
95 | 96 | stdio: ["ignore", "pipe", "pipe"], |
96 | 97 | }); |
97 | 98 | } |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。