From 49423da081d6fdffb0bd7275e070a2edeb28e3b5 Mon Sep 17 00:00:00 2001 From: adamdottv <2363879+adamdottv@users.noreply.github.com> Date: Fri, 2 May 2025 09:24:24 -0500 Subject: feat: compact command with auto-compact --- internal/session/session.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'internal/session') diff --git a/internal/session/session.go b/internal/session/session.go index 682ea7768..be395bb87 100644 --- a/internal/session/session.go +++ b/internal/session/session.go @@ -17,6 +17,8 @@ type Session struct { PromptTokens int64 CompletionTokens int64 Cost float64 + Summary string + SummarizedAt int64 CreatedAt int64 UpdatedAt int64 } @@ -100,16 +102,31 @@ func (s *service) Get(ctx context.Context, id string) (Session, error) { } func (s *service) Save(ctx context.Context, session Session) (Session, error) { + summary := sql.NullString{} + if session.Summary != "" { + summary.String = session.Summary + summary.Valid = true + } + + summarizedAt := sql.NullInt64{} + if session.SummarizedAt != 0 { + summarizedAt.Int64 = session.SummarizedAt + summarizedAt.Valid = true + } + dbSession, err := s.q.UpdateSession(ctx, db.UpdateSessionParams{ ID: session.ID, Title: session.Title, PromptTokens: session.PromptTokens, CompletionTokens: session.CompletionTokens, Cost: session.Cost, + Summary: summary, + SummarizedAt: summarizedAt, }) if err != nil { return Session{}, err } + session = s.fromDBItem(dbSession) s.Publish(pubsub.UpdatedEvent, session) return session, nil @@ -136,6 +153,8 @@ func (s service) fromDBItem(item db.Session) Session { PromptTokens: item.PromptTokens, CompletionTokens: item.CompletionTokens, Cost: item.Cost, + Summary: item.Summary.String, + SummarizedAt: item.SummarizedAt.Int64, CreatedAt: item.CreatedAt, UpdatedAt: item.UpdatedAt, } -- cgit v1.2.3