























@@ -1110,6 +1110,48 @@ describe("resolveSessionModelRef", () => {
11101110});
1111111111121112describe("listSessionsFromStore selected model display", () => {
1113+test("caps transcript title and last-message hydration for bulk list responses", () => {
1114+const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "openclaw-sessions-list-cap-"));
1115+try {
1116+const storePath = path.join(tmpDir, "sessions.json");
1117+const store: Record<string, SessionEntry> = {};
1118+const now = Date.now();
1119+for (let i = 0; i < 105; i += 1) {
1120+const sessionId = `sess-${i}`;
1121+store[`agent:main:${sessionId}`] = {
1122+ sessionId,
1123+updatedAt: now - i,
1124+} as SessionEntry;
1125+fs.writeFileSync(
1126+path.join(tmpDir, `${sessionId}.jsonl`),
1127+[
1128+JSON.stringify({ type: "session", version: 1, id: sessionId }),
1129+JSON.stringify({ message: { role: "user", content: `title ${i}` } }),
1130+JSON.stringify({ message: { role: "assistant", content: `last ${i}` } }),
1131+].join("\n"),
1132+"utf-8",
1133+);
1134+}
1135+1136+const result = listSessionsFromStore({
1137+cfg: createModelDefaultsConfig({ primary: "openai/gpt-5.4" }),
1138+ storePath,
1139+ store,
1140+opts: { includeDerivedTitles: true, includeLastMessage: true, limit: 105 },
1141+});
1142+1143+expect(result.sessions).toHaveLength(105);
1144+expect(result.sessions[0]?.derivedTitle).toBe("title 0");
1145+expect(result.sessions[0]?.lastMessagePreview).toBe("last 0");
1146+expect(result.sessions[99]?.derivedTitle).toBe("title 99");
1147+expect(result.sessions[99]?.lastMessagePreview).toBe("last 99");
1148+expect(result.sessions[100]?.derivedTitle).toBeUndefined();
1149+expect(result.sessions[100]?.lastMessagePreview).toBeUndefined();
1150+} finally {
1151+fs.rmSync(tmpDir, { recursive: true, force: true });
1152+}
1153+});
1154+11131155test("shows the selected override model even when a fallback runtime model exists", () => {
11141156const cfg = createModelDefaultsConfig({
11151157primary: "anthropic/claude-opus-4-6",
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。