diff --git a/src/tui/tui-command-handlers.ts b/src/tui/tui-command-handlers.ts index 2451e5d61..88eea609f 100644 --- a/src/tui/tui-command-handlers.ts +++ b/src/tui/tui-command-handlers.ts @@ -39,6 +39,22 @@ type CommandHandlerContext = { formatSessionKey: (key: string) => string; }; +function formatRelativeTime(timestamp: number): string { + const now = Date.now(); + const diff = now - timestamp; + const seconds = Math.floor(diff / 1000); + const minutes = Math.floor(seconds / 60); + const hours = Math.floor(minutes / 60); + const days = Math.floor(hours / 24); + + if (seconds < 60) return "just now"; + if (minutes < 60) return `${minutes}m ago`; + if (hours < 24) return `${hours}h ago`; + if (days === 1) return "Yesterday"; + if (days < 7) return `${days}d ago`; + return new Date(timestamp).toLocaleDateString(undefined, { month: "short", day: "numeric" }); +} + export function createCommandHandlers(context: CommandHandlerContext) { const { client, @@ -147,7 +163,7 @@ export function createCommandHandlers(context: CommandHandlerContext) { return { value: session.key, label: title ? `${title} (${formattedKey})` : formattedKey, - description: session.updatedAt ? new Date(session.updatedAt).toLocaleString() : "", + description: session.updatedAt ? formatRelativeTime(session.updatedAt) : "", searchText: [ session.displayName, session.label,