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() }