+ {formattedTimestamp && (
+ {formattedTimestamp}
)}
- />
+
+
)}
{(!isCollapsedBlock || isExpanded) && isToolCalls && hasToolCalls && (
diff --git a/web/frontend/src/components/chat/chat-page.tsx b/web/frontend/src/components/chat/chat-page.tsx
index 3ad811dae7..c84a9719e6 100644
--- a/web/frontend/src/components/chat/chat-page.tsx
+++ b/web/frontend/src/components/chat/chat-page.tsx
@@ -346,6 +346,7 @@ export function ChatPage() {
)}
diff --git a/web/frontend/src/components/chat/user-message.tsx b/web/frontend/src/components/chat/user-message.tsx
index 8bfdf24c9f..419a3457e6 100644
--- a/web/frontend/src/components/chat/user-message.tsx
+++ b/web/frontend/src/components/chat/user-message.tsx
@@ -1,17 +1,25 @@
+import { formatMessageTime } from "@/hooks/use-pico-chat"
import { cn } from "@/lib/utils"
import type { ChatAttachment } from "@/store/chat"
interface UserMessageProps {
content: string
attachments?: ChatAttachment[]
+ timestamp?: string | number
}
-export function UserMessage({ content, attachments = [] }: UserMessageProps) {
+export function UserMessage({
+ content,
+ attachments = [],
+ timestamp = "",
+}: UserMessageProps) {
const hasText = content.trim().length > 0
const isCommand = content.trim().startsWith("/")
const imageAttachments = attachments.filter(
(attachment) => attachment.type === "image",
)
+ const formattedTimestamp =
+ timestamp !== "" ? formatMessageTime(timestamp) : ""
return (
@@ -49,6 +57,10 @@ export function UserMessage({ content, attachments = [] }: UserMessageProps) {
)}
)}
+
+ {formattedTimestamp && (
+ {formattedTimestamp}
+ )}
)
}
diff --git a/web/frontend/src/features/chat/history.ts b/web/frontend/src/features/chat/history.ts
index 9fc35bc1e3..b56227c6a0 100644
--- a/web/frontend/src/features/chat/history.ts
+++ b/web/frontend/src/features/chat/history.ts
@@ -43,8 +43,6 @@ export async function loadSessionMessages(
sessionId: string,
): Promise {
const detail = await getSessionHistory(sessionId)
- const fallbackTime = detail.updated
-
return detail.messages.map((message, index) => ({
id: `hist-${index}-${Date.now()}`,
role: message.role,
@@ -58,7 +56,7 @@ export async function loadSessionMessages(
media: message.media,
attachments: message.attachments,
}),
- timestamp: fallbackTime,
+ timestamp: message.created_at ?? detail.updated,
}))
}