From 69a69547ffed37d73d0416103025e6b16f5cb19b Mon Sep 17 00:00:00 2001 From: Grail Finder Date: Tue, 17 Mar 2026 10:51:53 +0300 Subject: Fix: streaming to tui --- bot.go | 28 ++++++---------------------- tui.go | 2 +- 2 files changed, 7 insertions(+), 23 deletions(-) diff --git a/bot.go b/bot.go index 4f5e6cf..384563e 100644 --- a/bot.go +++ b/bot.go @@ -48,10 +48,9 @@ var ( chunkParser ChunkParser lastToolCall *models.FuncCall lastRespStats *models.ResponseStats - - outputHandler OutputHandler - cliPrevOutput string - cliRespDone chan bool + outputHandler OutputHandler + cliPrevOutput string + cliRespDone chan bool ) type OutputHandler interface { @@ -65,30 +64,15 @@ type TUIOutputHandler struct { } func (h *TUIOutputHandler) Write(p string) { - if h.tv != nil { - fmt.Fprint(h.tv, p) - } - if cfg != nil && cfg.CLIMode { - fmt.Print(p) - cliPrevOutput = p - } + fmt.Fprint(h.tv, p) } func (h *TUIOutputHandler) Writef(format string, args ...interface{}) { - s := fmt.Sprintf(format, args...) - if h.tv != nil { - fmt.Fprint(h.tv, s) - } - if cfg != nil && cfg.CLIMode { - fmt.Print(s) - cliPrevOutput = s - } + fmt.Fprintf(h.tv, format, args...) } func (h *TUIOutputHandler) ScrollToEnd() { - if h.tv != nil { - h.tv.ScrollToEnd() - } + h.tv.ScrollToEnd() } type CLIOutputHandler struct{} diff --git a/tui.go b/tui.go index 9f85a15..7f897e4 100644 --- a/tui.go +++ b/tui.go @@ -230,7 +230,6 @@ func initTUI() { tview.Styles = colorschemes["default"] app = tview.NewApplication() pages = tview.NewPages() - outputHandler = &TUIOutputHandler{tv: textView} shellInput = tview.NewInputField(). SetLabel(fmt.Sprintf("[%s]$ ", cfg.FilePickerDir)). // dynamic prompt SetFieldWidth(0). @@ -349,6 +348,7 @@ func initTUI() { // calling it explicitly makes text streaming to look more smooth app.Draw() }) + outputHandler = &TUIOutputHandler{tv: textView} notificationWidget = tview.NewTextView(). SetTextAlign(tview.AlignCenter). SetDynamicColors(true). -- cgit v1.2.3