on main help sign in
fix(noninteractive): actually use models to generate titles (#2372)
2dacfbdChristian Rocha
internal/agent/agent.go+4−4
@@ -44,7 +44,7 @@ import (
44)
44)
45
45
46const (
46const (
47− defaultSessionName = "Untitled Session"
47+ DefaultSessionName = "Untitled Session"
48
48
49 // Constants for auto-summarization thresholds
49 // Constants for auto-summarization thresholds
50 largeContextWindowThreshold = 200_000
50 largeContextWindowThreshold = 200_000
@@ -822,7 +822,7 @@ func (a *sessionAgent) generateTitle(ctx context.Context, sessionID string, user
822 // Welp, the large model didn't work either. Use the default
822 // Welp, the large model didn't work either. Use the default
823 // session name and return.
823 // session name and return.
824 slog.Error("Error generating title with large model", "err", err)
824 slog.Error("Error generating title with large model", "err", err)
825− saveErr := a.sessions.UpdateTitleAndUsage(ctx, sessionID, defaultSessionName, 0, 0, 0)
825+ saveErr := a.sessions.UpdateTitleAndUsage(ctx, sessionID, DefaultSessionName, 0, 0, 0)
826 if saveErr != nil {
826 if saveErr != nil {
827 slog.Error("Failed to save session title and usage", "error", saveErr)
827 slog.Error("Failed to save session title and usage", "error", saveErr)
828 }
828 }
@@ -834,7 +834,7 @@ func (a *sessionAgent) generateTitle(ctx context.Context, sessionID string, user
834 // Actually, we didn't get a response so we can't. Use the default
834 // Actually, we didn't get a response so we can't. Use the default
835 // session name and return.
835 // session name and return.
836 slog.Error("Response is nil; can't generate title")
836 slog.Error("Response is nil; can't generate title")
837− saveErr := a.sessions.UpdateTitleAndUsage(ctx, sessionID, defaultSessionName, 0, 0, 0)
837+ saveErr := a.sessions.UpdateTitleAndUsage(ctx, sessionID, DefaultSessionName, 0, 0, 0)
838 if saveErr != nil {
838 if saveErr != nil {
839 slog.Error("Failed to save session title and usage", "error", saveErr)
839 slog.Error("Failed to save session title and usage", "error", saveErr)
840 }
840 }
@@ -849,7 +849,7 @@ func (a *sessionAgent) generateTitle(ctx context.Context, sessionID string, user
849 title = thinkTagRegex.ReplaceAllString(title, "")
849 title = thinkTagRegex.ReplaceAllString(title, "")
850
850
851 title = strings.TrimSpace(title)
851 title = strings.TrimSpace(title)
852− title = cmp.Or(title, defaultSessionName)
852+ title = cmp.Or(title, DefaultSessionName)
853
853
854 // Calculate usage and cost.
854 // Calculate usage and cost.
855 var openrouterCost *float64
855 var openrouterCost *float64
internal/app/app.go+1−12
@@ -213,18 +213,7 @@ func (app *App) RunNonInteractive(ctx context.Context, output io.Writer, prompt,
213
213
214 defer stopSpinner()
214 defer stopSpinner()
215
215
216− const maxPromptLengthForTitle = 100
217− const titlePrefix = "Non-interactive: "
218− var titleSuffix string
219−
220− if len(prompt) > maxPromptLengthForTitle {
221− titleSuffix = prompt[:maxPromptLengthForTitle] + "..."
222− } else {
223− titleSuffix = prompt
224− }
225− title := titlePrefix + titleSuffix
226−
227− sess, err := app.Sessions.Create(ctx, title)
216+ sess, err := app.Sessions.Create(ctx, agent.DefaultSessionName)
228 if err != nil {
217 if err != nil {
229 return fmt.Errorf("failed to create session for non-interactive mode: %w", err)
218 return fmt.Errorf("failed to create session for non-interactive mode: %w", err)
230 }
219 }