feat(remote): support per-conversation working directories in listener mode (#1323)

This commit is contained in:
Charles Packer
2026-03-10 13:42:42 -07:00
committed by GitHub
parent e82a2d33f8
commit 4c9f63c4e2
13 changed files with 482 additions and 45 deletions

View File

@@ -1,4 +1,7 @@
import { describe, expect, it } from "bun:test";
import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
import os from "node:os";
import path from "node:path";
import type {
AdvancedDiffFallback,
AdvancedDiffSuccess,
@@ -213,4 +216,32 @@ describe("computeDiffPreviews", () => {
expect(previews).toHaveLength(2);
expect(previews.map((p) => p.fileName).sort()).toEqual(["a.txt", "b.txt"]);
});
it("resolves relative file paths against the provided working directory", async () => {
const tempRoot = await mkdtemp(
path.join(os.tmpdir(), "letta-diff-preview-"),
);
const workspaceDir = path.join(tempRoot, "workspace");
const nestedDir = path.join(workspaceDir, "nested");
const targetFile = path.join(nestedDir, "sample.txt");
await mkdir(nestedDir, { recursive: true });
await writeFile(targetFile, "old content", "utf8");
try {
const previews = await computeDiffPreviews(
"edit",
{
file_path: "nested/sample.txt",
old_string: "old content",
new_string: "new content",
},
workspaceDir,
);
expect(previews).toHaveLength(1);
expect(previews[0]?.mode).toBe("advanced");
expect(previews[0]?.fileName).toBe("sample.txt");
} finally {
await rm(tempRoot, { recursive: true, force: true });
}
});
});