diff --git a/CHANGELOG.md b/CHANGELOG.md index b2f4be2309d..f7d924954f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ Docs: https://docs.openclaw.ai ### Fixes +- Gateway/Daemon: forward `TMPDIR` into installed service environments so macOS LaunchAgent gateway runs can open SQLite temp/journal files reliably instead of failing with `SQLITE_CANTOPEN`. (#20512) Thanks @Clawborn. - iOS/Screen: move `WKWebView` lifecycle ownership into `ScreenWebView` coordinator and explicit attach/detach flow to reduce gesture/lifecycle crash risk (`__NSArrayM insertObject:atIndex:` paths) during screen tab updates. (#20366) Thanks @ngutman. - Gateway/TUI: honor `agents.defaults.blockStreamingDefault` for `chat.send` by removing the hardcoded block-streaming disable override, so replies can use configured block-mode delivery. (#19693) Thanks @neipor. - Protocol/Apple: regenerate Swift gateway models for `push.test` so `pnpm protocol:check` stays green on main. Thanks @mbelinky. diff --git a/src/daemon/service-env.test.ts b/src/daemon/service-env.test.ts index 44d74009deb..ea67a0c31d6 100644 --- a/src/daemon/service-env.test.ts +++ b/src/daemon/service-env.test.ts @@ -290,21 +290,12 @@ describe("buildServiceEnvironment", () => { expect(env.TMPDIR).toBe("/var/folders/xw/abc123/T/"); }); - it("forwards LANG from the host environment", () => { - const env = buildServiceEnvironment({ - env: { HOME: "/home/user", LANG: "en_US.UTF-8" }, - port: 18789, - }); - expect(env.LANG).toBe("en_US.UTF-8"); - }); - - it("omits TMPDIR and LANG when not set in host environment", () => { + it("omits TMPDIR when not set in host environment", () => { const env = buildServiceEnvironment({ env: { HOME: "/home/user" }, port: 18789, }); expect(env.TMPDIR).toBeUndefined(); - expect(env.LANG).toBeUndefined(); }); it("uses profile-specific unit and label", () => { @@ -327,12 +318,11 @@ describe("buildNodeServiceEnvironment", () => { expect(env.HOME).toBe("/home/user"); }); - it("forwards TMPDIR and LANG for node services", () => { + it("forwards TMPDIR for node services", () => { const env = buildNodeServiceEnvironment({ - env: { HOME: "/home/user", TMPDIR: "/tmp/custom", LANG: "en_US.UTF-8" }, + env: { HOME: "/home/user", TMPDIR: "/tmp/custom" }, }); expect(env.TMPDIR).toBe("/tmp/custom"); - expect(env.LANG).toBe("en_US.UTF-8"); }); }); diff --git a/src/daemon/service-env.ts b/src/daemon/service-env.ts index d162de3428a..dab858dc05a 100644 --- a/src/daemon/service-env.ts +++ b/src/daemon/service-env.ts @@ -215,7 +215,6 @@ export function buildServiceEnvironment(params: { return { HOME: env.HOME, TMPDIR: env.TMPDIR, - LANG: env.LANG, PATH: buildMinimalServicePath({ env }), OPENCLAW_PROFILE: profile, OPENCLAW_STATE_DIR: stateDir, @@ -239,7 +238,6 @@ export function buildNodeServiceEnvironment(params: { return { HOME: env.HOME, TMPDIR: env.TMPDIR, - LANG: env.LANG, PATH: buildMinimalServicePath({ env }), OPENCLAW_STATE_DIR: stateDir, OPENCLAW_CONFIG_PATH: configPath,