Files
cobble/src/bots-queue/session-name-transcript.test.ts
T
tbenandClaude Opus 5.5 cc109bc361 Carry conversations into new sessions with a visible summary
- Bots get continue_in_new_session: the bot writes a title and summary,
  the session closes for good (read-only) and the new one opens with the
  summary as a "Carried over from the last session" message that links
  back to the old session.
- Continue in new session (conversation menu, sessions modal) and the
  automatic rollover at the session length do the same; New session now
  starts a fresh, unlinked session.
- Session length is an app setting in Settings > General.
- ?session_id= opens a session; a carried-over one shows a bar linking to
  where the conversation went on instead of the composer.
- The thread can open the previous session above the current one (shown
  only, never in the prompt), and replies get search_past_sessions and
  read_past_session.
- Sessions are named from their opening messages, not their latest, and
  a carried summary is labelled as the earlier session's.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 05:35:52 +01:00

28 lines
1.0 KiB
TypeScript

import { describe, expect, test } from "bun:test";
import sessionNameTranscript from "./session-name-transcript";
describe("sessionNameTranscript", () => {
test("reads the exchange as the user's and the bot's", () => {
expect(
sessionNameTranscript({
messages: [
{ id: 1, author: "user", text: "Create a bot" },
{ id: 2, author: "bot", text: "Done." },
],
}),
).toBe("User: Create a bot\n\nYou: Done.");
});
test("marks a carried summary as the earlier session's, not the bot's words", () => {
const transcript = sessionNameTranscript({
messages: [
{ id: 1, author: "bot", text: "- Crew set up", carried_from_session_id: 9 },
{ id: 2, author: "user", text: "Continue here" },
],
});
expect(transcript).toStartWith("(Summary of the earlier session this one carries on from)\n- Crew set up");
expect(transcript).not.toContain("You: - Crew set up");
});
});