From c73c7a40aca7550e8022a976e90012d158c87702 Mon Sep 17 00:00:00 2001 From: Jessica Mulein Date: Thu, 28 May 2026 14:38:34 -0700 Subject: [PATCH] fix(coder): Ollama-friendly empty LLM tool warning Replace legacy "provider account" copy when the model returns no tokens or tool calls; keep cloud-oriented hint for non-Ollama models. Co-authored-by: Cursor --- cecli/coders/base_coder.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/cecli/coders/base_coder.py b/cecli/coders/base_coder.py index 2b2fbdb40be..ff7a92829b6 100755 --- a/cecli/coders/base_coder.py +++ b/cecli/coders/base_coder.py @@ -2306,6 +2306,16 @@ async def check_tokens(self, messages): def get_active_model(self): return self.main_model + def empty_llm_tool_warning(self) -> str: + """Ollama-friendly copy for local models; cloud hint otherwise.""" + name = str(getattr(getattr(self, "main_model", None), "name", "") or "") + if "ollama" in name.lower(): + return ( + "Empty response from the local model (Ollama). " + "The model may have timed out, unloaded, or hit context limits." + ) + return "Empty response received from LLM. Check API keys, quota, or provider status." + async def send_message(self, inp): # Notify IO that LLM processing is starting self.io.llm_started() @@ -3363,7 +3373,7 @@ async def show_send_output(self, completion): and not len(self.partial_response_tool_calls) and not len(self.partial_response_reasoning_content) ): - self.io.tool_warning("Empty response received from LLM. Check your provider account?") + self.io.tool_warning(self.empty_llm_tool_warning()) self.io.assistant_output(show_resp, pretty=self.show_pretty()) @@ -3520,7 +3530,7 @@ async def show_send_output_stream(self, completion): return if not received_content and len(self.partial_response_tool_calls) == 0: - self.io.tool_warning("Empty response received from LLM. Check your provider account?") + self.io.tool_warning(self.empty_llm_tool_warning()) def consolidate_chunks(self): if self.partial_response_consolidated: