From 15beffc98c1d288b5fd1a0b6b6d231ae1b030be9 Mon Sep 17 00:00:00 2001 From: Shingwha Date: Wed, 18 Feb 2026 11:51:28 +0800 Subject: [PATCH] feat: add Timestamp field to Message struct - Add Timestamp field to Message struct in pkg/providers/types.go - Automatically set timestamp in AddMessage and AddFullMessage methods in pkg/session/manager.go - Timestamp is stored as Unix timestamp (int64) --- pkg/providers/types.go | 1 + pkg/session/manager.go | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/pkg/providers/types.go b/pkg/providers/types.go index 88b62e975..55048ae90 100644 --- a/pkg/providers/types.go +++ b/pkg/providers/types.go @@ -33,6 +33,7 @@ type Message struct { Content string `json:"content"` ToolCalls []ToolCall `json:"tool_calls,omitempty"` ToolCallID string `json:"tool_call_id,omitempty"` + Timestamp int64 `json:"timestamp,omitempty"` } type LLMProvider interface { diff --git a/pkg/session/manager.go b/pkg/session/manager.go index 12bf33df0..fdf69253c 100644 --- a/pkg/session/manager.go +++ b/pkg/session/manager.go @@ -63,6 +63,7 @@ func (sm *SessionManager) AddMessage(sessionKey, role, content string) { sm.AddFullMessage(sessionKey, providers.Message{ Role: role, Content: content, + Timestamp: time.Now().Unix(), }) } @@ -82,6 +83,11 @@ func (sm *SessionManager) AddFullMessage(sessionKey string, msg providers.Messag sm.sessions[sessionKey] = session } + // Set timestamp if not already set + if msg.Timestamp == 0 { + msg.Timestamp = time.Now().Unix() + } + session.Messages = append(session.Messages, msg) session.Updated = time.Now() }