@@ -395,7 +395,7 @@ func (a *agent) processGeneration(ctx context.Context, sessionID, content string
395 defer log.RecoverPanic("agent.Run", func() {
395 defer log.RecoverPanic("agent.Run", func() {
396 slog.Error("panic while generating title")
396 slog.Error("panic while generating title")
398− titleErr := a.generateTitle(context.Background(), sessionID, content)
398+ titleErr := a.generateTitle(ctx, sessionID, content)
399 if titleErr != nil && !errors.Is(titleErr, context.Canceled) && !errors.Is(titleErr, context.DeadlineExceeded) {
399 if titleErr != nil && !errors.Is(titleErr, context.Canceled) && !errors.Is(titleErr, context.DeadlineExceeded) {
400 slog.Error("failed to generate title", "error", titleErr)
400 slog.Error("failed to generate title", "error", titleErr)
@@ -996,11 +996,17 @@ func (a *agent) UpdateModel() error {
996 return fmt.Errorf("provider %s not found in config", largeModelCfg.Provider)
996 return fmt.Errorf("provider %s not found in config", largeModelCfg.Provider)
999+ var maxTitleTokens int64 = 40
1001+ // if the max output is too low for the gemini provider it won't return anything
1002+ if smallModelCfg.Provider == "gemini" {
1003+ maxTitleTokens = 1000
999 // Recreate title provider
1005 // Recreate title provider
1000 titleOpts := []provider.ProviderClientOption{
1006 titleOpts := []provider.ProviderClientOption{
1001 provider.WithModel(config.SelectedModelTypeSmall),
1007 provider.WithModel(config.SelectedModelTypeSmall),
1002 provider.WithSystemMessage(prompt.GetPrompt(prompt.PromptTitle, smallModelProviderCfg.ID)),
1008 provider.WithSystemMessage(prompt.GetPrompt(prompt.PromptTitle, smallModelProviderCfg.ID)),
1003− provider.WithMaxTokens(40),
1009+ provider.WithMaxTokens(maxTitleTokens),
1005 newTitleProvider, err := provider.NewProvider(smallModelProviderCfg, titleOpts...)
1011 newTitleProvider, err := provider.NewProvider(smallModelProviderCfg, titleOpts...)
1006 if err != nil {
1012 if err != nil {