mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-03 03:03:24 -04:00
feat: add last message preview to session picker
Read the final user/assistant message from session transcripts and display it in the picker alongside the session update time. Allows quick previews of what's in each session without opening it.
This commit is contained in:
committed by
Peter Steinberger
parent
14f56a4e18
commit
1d9d5b30ce
@@ -65,6 +65,7 @@ export type GatewaySessionList = {
|
||||
lastTo?: string;
|
||||
lastAccountId?: string;
|
||||
derivedTitle?: string;
|
||||
lastMessagePreview?: string;
|
||||
}>;
|
||||
};
|
||||
|
||||
@@ -185,6 +186,7 @@ export class GatewayChatClient {
|
||||
includeGlobal: opts?.includeGlobal,
|
||||
includeUnknown: opts?.includeUnknown,
|
||||
includeDerivedTitles: opts?.includeDerivedTitles,
|
||||
includeLastMessage: opts?.includeLastMessage,
|
||||
agentId: opts?.agentId,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -155,21 +155,30 @@ export function createCommandHandlers(context: CommandHandlerContext) {
|
||||
includeGlobal: false,
|
||||
includeUnknown: false,
|
||||
includeDerivedTitles: true,
|
||||
includeLastMessage: true,
|
||||
agentId: state.currentAgentId,
|
||||
});
|
||||
const items = result.sessions.map((session) => {
|
||||
const title = session.derivedTitle ?? session.displayName;
|
||||
const formattedKey = formatSessionKey(session.key);
|
||||
// Avoid redundant "title (key)" when title matches key
|
||||
const label =
|
||||
title && title !== formattedKey ? `${title} (${formattedKey})` : formattedKey;
|
||||
// Build description: time + message preview
|
||||
const timePart = session.updatedAt ? formatRelativeTime(session.updatedAt) : "";
|
||||
const preview = session.lastMessagePreview?.replace(/\s+/g, " ").trim();
|
||||
const description = preview ? `${timePart} · ${preview}` : timePart;
|
||||
return {
|
||||
value: session.key,
|
||||
label: title ? `${title} (${formattedKey})` : formattedKey,
|
||||
description: session.updatedAt ? formatRelativeTime(session.updatedAt) : "",
|
||||
label,
|
||||
description,
|
||||
searchText: [
|
||||
session.displayName,
|
||||
session.label,
|
||||
session.subject,
|
||||
session.sessionId,
|
||||
session.key,
|
||||
session.lastMessagePreview,
|
||||
]
|
||||
.filter(Boolean)
|
||||
.join(" "),
|
||||
|
||||
Reference in New Issue
Block a user