diff --git a/bot.go b/bot.go index b469fb3..227751d 100644 --- a/bot.go +++ b/bot.go @@ -1197,6 +1197,16 @@ func chatToText(messages []models.RoleMsg, showSys bool) string { } return "[yellow::i][thinking... (press Alt+T to expand)][-:-:-]" }) + // Handle incomplete thinking blocks (during streaming when hasn't arrived yet) + if strings.Contains(text, "") && !strings.Contains(text, "") { + // Find the incomplete thinking block and replace it + startIdx := strings.Index(text, "") + if startIdx != -1 { + content := text[startIdx+len(""):] + placeholder := fmt.Sprintf("[yellow::i][thinking... (%d chars) (press Alt+T to expand)][-:-:-]", len(content)) + text = text[:startIdx] + placeholder + } + } } return text