feat: prefill forked session prompt draft

This commit is contained in:
Federico Jaramillo Martinez
2026-05-21 22:56:03 +02:00
parent 2f5293a8c9
commit 9e3d272731
9 changed files with 51 additions and 8 deletions
@@ -112,13 +112,14 @@ describe("SessionCommandService", () => {
{ entryId: "newest", text: "newest message" },
]),
});
vi.mocked(active.runtime.fork).mockResolvedValueOnce({ cancelled: false, selectedText: "newest message" });
const service = new SessionCommandService(() => getActive(active), vi.fn(), eventPublisher());
const result = await service.run("s1", "/fork");
expect(result).toMatchObject({ type: "select", title: "Fork from message", options: [{ value: "newest" }, { value: "middle" }, { value: "oldest" }] });
if (result.type !== "select") throw new Error("Expected select result");
await expect(service.respond("s1", result.requestId, "newest")).resolves.toMatchObject({ type: "done", message: "Session forked", session: { id: "s1" } });
await expect(service.respond("s1", result.requestId, "newest")).resolves.toMatchObject({ type: "done", message: "Session forked", session: { id: "s1" }, promptDraft: "newest message" });
expect(active.runtime.fork).toHaveBeenCalledWith("newest");
await expect(service.respond("s1", result.requestId, "newest")).resolves.toEqual({ type: "unsupported", message: "Command request expired" });
});