diff options
| author | adamdottv <[email protected]> | 2025-05-02 09:24:24 -0500 |
|---|---|---|
| committer | Adam <[email protected]> | 2025-05-02 15:24:47 -0500 |
| commit | 49423da081d6fdffb0bd7275e070a2edeb28e3b5 (patch) | |
| tree | 3119b731ecd46ff8ef3c26d779c0420c7dfe6c9e /internal/session | |
| parent | 364cf5b429c3dd6952d45c3361765aa3898e6326 (diff) | |
| download | opencode-49423da081d6fdffb0bd7275e070a2edeb28e3b5.tar.gz opencode-49423da081d6fdffb0bd7275e070a2edeb28e3b5.zip | |
feat: compact command with auto-compact
Diffstat (limited to 'internal/session')
| -rw-r--r-- | internal/session/session.go | 19 |
1 files changed, 19 insertions, 0 deletions
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, } |
