b6989c3eea
List GET no longer ships transcripts; consult appends questions after reserve and ignores client history so dual-tab last-write-wins cannot erase messages. Co-authored-by: Cursor <cursoragent@cursor.com>
32 lines
1.2 KiB
TypeScript
32 lines
1.2 KiB
TypeScript
import assert from "node:assert/strict";
|
|
import test from "node:test";
|
|
|
|
import { consultationHistoryFromStoredMessages } from "../src/lib/consultation-session-history.ts";
|
|
|
|
test("stored consultation history keeps the last 12 role/text pairs and clips text", () => {
|
|
const history = consultationHistoryFromStoredMessages([
|
|
{ role: "system", text: "ignore" },
|
|
{ role: "user", text: "first" },
|
|
...Array.from({ length: 12 }, (_, index) => ({
|
|
role: index % 2 === 0 ? "assistant" : "user",
|
|
text: `keep-${index}`,
|
|
requestId: `req-${index}`,
|
|
})),
|
|
{ role: "assistant", text: "x".repeat(4001), thinkingText: "secret" },
|
|
]);
|
|
|
|
assert.equal(history.length, 12);
|
|
assert.equal(history[0]?.text, "keep-1");
|
|
assert.equal(history.at(-1)?.text.length, 4000);
|
|
assert.deepEqual(history.at(-2), { role: "user", text: "keep-11" });
|
|
});
|
|
|
|
test("stored consultation history can skip the in-flight request id", () => {
|
|
const history = consultationHistoryFromStoredMessages([
|
|
{ role: "user", text: "old", requestId: "keep" },
|
|
{ role: "user", text: "current", requestId: "skip" },
|
|
], { excludeRequestId: "skip" });
|
|
|
|
assert.deepEqual(history, [{ role: "user", text: "old" }]);
|
|
});
|