Skip to content

Commit 41c5990

Browse files
authored
fix(auto-reply): resolve scp from path for media staging (#79202)
1 parent 8af475d commit 41c5990

3 files changed

Lines changed: 3 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@ Docs: https://docs.openclaw.ai
181181
- Gateway/macOS: `openclaw gateway stop --disable` now persists the LaunchAgent disable bit even after a previous bootout left the service not loaded, keeping the explicit stay-down path reliable. (#78412) Thanks @wdeveloper16.
182182
- Control UI/chat: hide retired and non-public Google Gemini model IDs from chat model catalogs and route the bare `gemini-3-pro` alias to Gemini 3.1 Pro Preview instead of the shut-down Gemini 3 Pro Preview. Thanks @BunsDev.
183183
- CLI/install: refuse state-mutating OpenClaw CLI runs as root by default, keep an explicit `OPENCLAW_ALLOW_ROOT=1` escape hatch for intentional root/container use, and update DigitalOcean setup guidance to run OpenClaw as a non-root user. Fixes #67478. Thanks @Jerry-Xin and @natechicago.
184+
- Auto-reply/media: resolve `scp` from `PATH` when staging sandbox media so nonstandard OpenSSH installs can copy remote attachments.
184185
- Gateway/watch: leave `OPENCLAW_TRACE_SYNC_IO` disabled by default in `pnpm gateway:watch:raw` so watch mode avoids noisy Node sync-I/O stack traces unless explicitly requested.
185186
- Codex app-server: close stdio stdin before force-killing the managed app-server, matching Codex single-client shutdown behavior and avoiding unsettled CLI exits after successful runs.
186187
- CLI/Codex: dispose registered agent harnesses during short-lived CLI shutdown so successful Codex-backed `agent --local` runs do not leave app-server child processes alive.

src/auto-reply/reply.stage-sandbox-media.scp-remote-path.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ describe("stageSandboxMedia scp remote paths", () => {
107107
workspaceDir,
108108
});
109109

110+
expect(childProcessMocks.spawn.mock.calls[0]?.[0]).toBe("scp");
110111
const remoteCacheRoot = join(CONFIG_DIR, "media", "remote-cache");
111112
const expectedSafeDir = join(remoteCacheRoot, slugifySessionKey(sessionKey));
112113
try {

src/auto-reply/reply/stage-sandbox-media.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@ async function scpFile(remoteHost: string, remotePath: string, localPath: string
319319
}
320320
return new Promise((resolve, reject) => {
321321
const child = spawn(
322-
"/usr/bin/scp",
322+
"scp",
323323
[
324324
"-o",
325325
"BatchMode=yes",

0 commit comments

Comments
 (0)