fix(update): keep TUI lock resolver private

This commit is contained in:
Dallin Romney
2026-08-20 23:15:16 -07:00
parent 9448fd083b
commit 4eeef6f71a
2 changed files with 1 additions and 8 deletions
-7
View File
@@ -2,18 +2,11 @@ import { describe, expect, it, vi } from "vitest";
import {
listLocalTuiProcesses,
quiesceLocalTuiProcessesBeforeUpdate,
resolveLocalTuiUpdateLockPath,
terminateLocalTuiProcesses,
waitForLocalTuiUpdate,
} from "./local-tui-processes.js";
describe("local TUI processes", () => {
it("scopes the update gate to the invoking user's home", () => {
expect(resolveLocalTuiUpdateLockPath("/home/alice")).not.toBe(
resolveLocalTuiUpdateLockPath("/home/bob"),
);
});
it("lists only verified local TUI processes from ps output", () => {
const spawnSync = vi.fn().mockReturnValue({
status: 0,
+1 -1
View File
@@ -30,7 +30,7 @@ type PsResult = {
const LOCAL_TUI_SUBCOMMANDS = new Set(["chat", "terminal", "tui"]);
const LOCAL_TUI_PROCESS_PROBE_TIMEOUT_MS = 1_000;
export function resolveLocalTuiUpdateLockPath(userHome = os.homedir()): string {
function resolveLocalTuiUpdateLockPath(userHome = os.homedir()): string {
const ownerScope = createHash("sha256").update(userHome).digest("hex").slice(0, 16);
return path.join(os.tmpdir(), `openclaw-local-tui-update-${ownerScope}`);
}