From df04d8c21c4d256ade69f53bfe171f066db943cc Mon Sep 17 00:00:00 2001 From: Grail Finder Date: Mon, 16 Mar 2026 08:38:48 +0300 Subject: Fix: wait for the tool resp --- bot.go | 17 +++++++++-------- cli-tests/sort-text/setup.sh | 0 2 files changed, 9 insertions(+), 8 deletions(-) mode change 100644 => 100755 cli-tests/sort-text/setup.sh diff --git a/bot.go b/bot.go index d5ce7c6..4f5e6cf 100644 --- a/bot.go +++ b/bot.go @@ -1064,14 +1064,7 @@ out: cleanChatBody() refreshChatDisplay() updateStatusLine() - if cfg.CLIMode && cliRespDone != nil { - select { - case cliRespDone <- true: - default: - } - } - // bot msg is done; - // now check it for func call + // bot msg is done; now check it for func call // logChat(activeChatName, chatBody.Messages) if err := updateStorageChat(activeChatName, chatBody.Messages); err != nil { logger.Warn("failed to update storage", "error", err, "name", activeChatName) @@ -1082,8 +1075,16 @@ out: return nil } if findCall(respTextNoThink, toolResp.String()) { + // Tool was found and executed, subsequent chatRound will signal cliRespDone when complete return nil } + // No tool call - signal completion now + if cfg.CLIMode && cliRespDone != nil { + select { + case cliRespDone <- true: + default: + } + } // Check if this message was sent privately to specific characters // If so, trigger those characters to respond if that char is not controlled by user // perhaps we should have narrator role to determine which char is next to act diff --git a/cli-tests/sort-text/setup.sh b/cli-tests/sort-text/setup.sh old mode 100644 new mode 100755 -- cgit v1.2.3