Fix LaunchAgent missing TMPDIR causing SQLITE_CANTOPEN on macOS (#20512)

Merged via /review-pr -> /prepare-pr -> /merge-pr.

Prepared head SHA: 25ba59765d04d4113cf46ba930de26d4369b89c2
Co-authored-by: Clawborn <261310391+Clawborn@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
This commit is contained in:
Clawborn
2026-02-19 10:42:35 +08:00
committed by GitHub
parent c2b6f099c6
commit 2bb8ead187
4 changed files with 58 additions and 0 deletions

View File

@@ -151,6 +151,26 @@ describe("launchd install", () => {
expect(bootstrapIndex).toBeGreaterThanOrEqual(0);
expect(enableIndex).toBeLessThan(bootstrapIndex);
});
it("writes TMPDIR to LaunchAgent environment when provided", async () => {
const env: Record<string, string | undefined> = {
HOME: "/Users/test",
OPENCLAW_PROFILE: "default",
};
const tmpDir = "/var/folders/xy/abc123/T/";
await installLaunchAgent({
env,
stdout: new PassThrough(),
programArguments: ["node", "-e", "process.exit(0)"],
environment: { TMPDIR: tmpDir },
});
const plistPath = resolveLaunchAgentPlistPath(env);
const plist = state.files.get(plistPath) ?? "";
expect(plist).toContain("<key>EnvironmentVariables</key>");
expect(plist).toContain("<key>TMPDIR</key>");
expect(plist).toContain(`<string>${tmpDir}</string>`);
});
});
describe("resolveLaunchAgentPlistPath", () => {