on main help sign in
feat: set user-agent to Charm Crush/<version> (#2357)
a897f65Christian Rocha
go.mod+1−1
@@ -6,7 +6,7 @@ require (
6 charm.land/bubbles/v2 v2.0.0
6 charm.land/bubbles/v2 v2.0.0
7 charm.land/bubbletea/v2 v2.0.1
7 charm.land/bubbletea/v2 v2.0.1
8 charm.land/catwalk v0.28.1
8 charm.land/catwalk v0.28.1
9− charm.land/fantasy v0.11.1
9+ charm.land/fantasy v0.11.2-0.20260310172626-1b0027b03f8b
10 charm.land/glamour/v2 v2.0.0-20260123212943-6014aa153a9b
10 charm.land/glamour/v2 v2.0.0-20260123212943-6014aa153a9b
11 charm.land/lipgloss/v2 v2.0.0
11 charm.land/lipgloss/v2 v2.0.0
12 charm.land/log/v2 v2.0.0-20251110204020-529bb77f35da
12 charm.land/log/v2 v2.0.0-20251110204020-529bb77f35da
go.sum+2−2
@@ -4,8 +4,8 @@ charm.land/bubbletea/v2 v2.0.1 h1:B8e9zzK7x9JJ+XvHGF4xnYu9Xa0E0y0MyggY6dbaCfQ=
4charm.land/bubbletea/v2 v2.0.1/go.mod h1:3LRff2U4WIYXy7MTxfbAQ+AdfM3D8Xuvz2wbsOD9OHQ=
4charm.land/bubbletea/v2 v2.0.1/go.mod h1:3LRff2U4WIYXy7MTxfbAQ+AdfM3D8Xuvz2wbsOD9OHQ=
5charm.land/catwalk v0.28.1 h1:4YJiRRNUb7i8qDEZjFLJPMKvquihGrGsTNTcf5Dfqq0=
5charm.land/catwalk v0.28.1 h1:4YJiRRNUb7i8qDEZjFLJPMKvquihGrGsTNTcf5Dfqq0=
6charm.land/catwalk v0.28.1/go.mod h1:rFC/V96rIHX7VES215c/qzI1EW/Moo1ggs1Q6seTy5s=
6charm.land/catwalk v0.28.1/go.mod h1:rFC/V96rIHX7VES215c/qzI1EW/Moo1ggs1Q6seTy5s=
7−charm.land/fantasy v0.11.1 h1:G1dRqkzEQ0RJN1Ls5mte8HOi0wFKxYd5bfnRAmeYvDk=
7+charm.land/fantasy v0.11.2-0.20260310172626-1b0027b03f8b h1:a/Y0xG4Ux2T3s7Kf8ih8VrzVF8P92a1KEj0hYbRA6vE=
8−charm.land/fantasy v0.11.1/go.mod h1:C8wNxWlw+b2z54zsTor9r1tG2GE2C4QotvAlgXh9KF8=
8+charm.land/fantasy v0.11.2-0.20260310172626-1b0027b03f8b/go.mod h1:C8wNxWlw+b2z54zsTor9r1tG2GE2C4QotvAlgXh9KF8=
9charm.land/glamour/v2 v2.0.0-20260123212943-6014aa153a9b h1:A6IUUyChZDWP16RUdRJCfmYISAKWQGyIcfhZJUCViQ0=
9charm.land/glamour/v2 v2.0.0-20260123212943-6014aa153a9b h1:A6IUUyChZDWP16RUdRJCfmYISAKWQGyIcfhZJUCViQ0=
10charm.land/glamour/v2 v2.0.0-20260123212943-6014aa153a9b/go.mod h1:J3kVhY6oHXZq5f+8vC3hmDO95fEvbqj3z7xDwxrfzU8=
10charm.land/glamour/v2 v2.0.0-20260123212943-6014aa153a9b/go.mod h1:J3kVhY6oHXZq5f+8vC3hmDO95fEvbqj3z7xDwxrfzU8=
11charm.land/lipgloss/v2 v2.0.0 h1:sd8N/B3x892oiOjFfBQdXBQp3cAkvjGaU5TvVZC3ivo=
11charm.land/lipgloss/v2 v2.0.0 h1:sd8N/B3x892oiOjFfBQdXBQp3cAkvjGaU5TvVZC3ivo=
internal/agent/agent.go+4
@@ -40,6 +40,7 @@ import (
40 "github.com/charmbracelet/crush/internal/permission"
40 "github.com/charmbracelet/crush/internal/permission"
41 "github.com/charmbracelet/crush/internal/session"
41 "github.com/charmbracelet/crush/internal/session"
42 "github.com/charmbracelet/crush/internal/stringext"
42 "github.com/charmbracelet/crush/internal/stringext"
43+ "github.com/charmbracelet/crush/internal/version"
43 "github.com/charmbracelet/x/exp/charmtone"
44 "github.com/charmbracelet/x/exp/charmtone"
44)
45)
45
46
@@ -194,6 +195,7 @@ func (a *sessionAgent) Run(ctx context.Context, call SessionAgentCall) (*fantasy
194 largeModel.Model,
195 largeModel.Model,
195 fantasy.WithSystemPrompt(systemPrompt),
196 fantasy.WithSystemPrompt(systemPrompt),
196 fantasy.WithTools(agentTools...),
197 fantasy.WithTools(agentTools...),
198+ fantasy.WithUserAgent("Charm Crush/"+version.Version),
197 )
199 )
198
200
199 sessionLock := sync.Mutex{}
201 sessionLock := sync.Mutex{}
@@ -592,6 +594,7 @@ func (a *sessionAgent) Summarize(ctx context.Context, sessionID string, opts fan
592
594
593 agent := fantasy.NewAgent(largeModel.Model,
595 agent := fantasy.NewAgent(largeModel.Model,
594 fantasy.WithSystemPrompt(string(summaryPrompt)),
596 fantasy.WithSystemPrompt(string(summaryPrompt)),
597+ fantasy.WithUserAgent("Charm Crush/"+version.Version),
595 )
598 )
596 summaryMessage, err := a.messages.Create(ctx, sessionID, message.CreateMessageParams{
599 summaryMessage, err := a.messages.Create(ctx, sessionID, message.CreateMessageParams{
597 Role: message.Assistant,
600 Role: message.Assistant,
@@ -787,6 +790,7 @@ func (a *sessionAgent) generateTitle(ctx context.Context, sessionID string, user
787 return fantasy.NewAgent(m,
790 return fantasy.NewAgent(m,
788 fantasy.WithSystemPrompt(string(p)+"\n /no_think"),
791 fantasy.WithSystemPrompt(string(p)+"\n /no_think"),
789 fantasy.WithMaxOutputTokens(tok),
792 fantasy.WithMaxOutputTokens(tok),
793+ fantasy.WithUserAgent("Charm Crush/"+version.Version),
790 )
794 )
791 }
795 }
792
796