diff --git a/server/src/services/native-runtime/native-session-executor.test.ts b/server/src/services/native-runtime/native-session-executor.test.ts index 350cbbb3b1b..c552f8352bd 100644 --- a/server/src/services/native-runtime/native-session-executor.test.ts +++ b/server/src/services/native-runtime/native-session-executor.test.ts @@ -488,12 +488,16 @@ describe("remote controller restart adoption", () => { const { sandboxLeaseAcquisition, ...common } = sandbox; const inspectProcess = vi.fn(async () => ({ running: true, claim: { nonce: "process-claim" } })); const target = { ...common, transport: "computer", listenerPort: 45101, + fileAuthority: { kind: "remote-persistent", root: "/workspace", placementId: "workspace", agentHome: "/home/user/agent" }, resourceAuthority: { kind: "computer-owner", computerId: "computer", ownerId: "owner", generation: 7 }, inspectProcess }; const computerClaim = { ...claim, remote: { ...claim.remote, providerLeaseId: "owner", computerOwner: { computerId: "computer", ownerId: "owner", generation: 7, listenerPort: 45101 } } }; const adopted = await verifyRemoteRunnerReattachment({ claim: computerClaim, target: target as never, identity, runId: "run", normalizedSessionId: "session" }); expect(adopted.pid).toBe(123); + const storage = remoteRunnerStorageRoots(target as never, "session"); + expect(execute.mock.calls[0]![0].args.join(" ")).toContain(`${storage.sessionRoot}/runner/runner-state.json`); + expect(execute.mock.calls.some(([request]) => request.args.includes(`${storage.sessionRoot}/runner/runner-process.identity`))).toBe(true); expect(inspectProcess).toHaveBeenCalledOnce(); const readCount = execute.mock.calls.length; await expect(verifyRemoteRunnerReattachment({ claim: { ...computerClaim, remote: { diff --git a/server/src/services/native-runtime/native-session-executor.ts b/server/src/services/native-runtime/native-session-executor.ts index ecd9244fe84..c5bf41a377e 100644 --- a/server/src/services/native-runtime/native-session-executor.ts +++ b/server/src/services/native-runtime/native-session-executor.ts @@ -10877,11 +10877,7 @@ export async function verifyRemoteRunnerReattachment(input: { } const runner = target.runner; const stateDirectory = posix.join( - target.remoteCwd, - ".paperclip-runtime", - "paperclip-runner", - "sessions", - createHash("sha256").update(input.normalizedSessionId).digest("hex"), + remoteRunnerStorageRoots(target, input.normalizedSessionId).sessionRoot, "runner", ); const runnerState = await readRemoteRunnerState({ runner, stateDirectory });