From 194b99c3a732165fdaa3561f6ec2ec1bdd886b1b Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 24 Mar 2026 21:31:21 -0700 Subject: [PATCH 1/7] fix: AgentCoder uses main_model as fallback when agent_model not set Co-authored-by: cecli (openai/openai_gemini_cli/gemini-2.5-pro) --- cecli/coders/agent_coder.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cecli/coders/agent_coder.py b/cecli/coders/agent_coder.py index f523adbe4e1..1299ff43147 100644 --- a/cecli/coders/agent_coder.py +++ b/cecli/coders/agent_coder.py @@ -95,6 +95,14 @@ def __init__(self, *args, **kwargs): ToolRegistry.build_registry(agent_config=self.agent_config) super().__init__(*args, **kwargs) + async def send(self, messages, model=None, functions=None, tools=None): + if not model: + if self.main_model.agent_model and self.main_model.agent_model is not self.main_model: + model = self.main_model.agent_model + else: + model = self.main_model + return await super().send(messages, model, functions, tools) + def _setup_agent(self): os.makedirs(".cecli/workspace", exist_ok=True) From 2cc1b15fc9c827dbb91facd18c151eed59f88b72 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 24 Mar 2026 21:59:59 -0700 Subject: [PATCH 2/7] fix: Make AgentCoder.send an async generator Co-authored-by: cecli (openai/openai_gemini_cli/gemini-2.5-pro) --- cecli/coders/agent_coder.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cecli/coders/agent_coder.py b/cecli/coders/agent_coder.py index 1299ff43147..5c0a119b9cf 100644 --- a/cecli/coders/agent_coder.py +++ b/cecli/coders/agent_coder.py @@ -101,7 +101,8 @@ async def send(self, messages, model=None, functions=None, tools=None): model = self.main_model.agent_model else: model = self.main_model - return await super().send(messages, model, functions, tools) + async for chunk in super().send(messages, model, functions, tools): + yield chunk def _setup_agent(self): os.makedirs(".cecli/workspace", exist_ok=True) From f1f5d1e918aee407a02b415821eb1c389bcf5acb Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 24 Mar 2026 22:15:37 -0700 Subject: [PATCH 3/7] chore: Update agent model spinner text in TUI Co-authored-by: cecli (openai/openai_gemini_cli/gemini-2.5-pro) --- cecli/coders/agent_coder.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cecli/coders/agent_coder.py b/cecli/coders/agent_coder.py index 5c0a119b9cf..e9a24f4f97b 100644 --- a/cecli/coders/agent_coder.py +++ b/cecli/coders/agent_coder.py @@ -99,6 +99,10 @@ async def send(self, messages, model=None, functions=None, tools=None): if not model: if self.main_model.agent_model and self.main_model.agent_model is not self.main_model: model = self.main_model.agent_model + if self.io.spinner_task and not self.io.spinner_task.done(): + self.io.spinner_text = ( + f"Waiting for {model.name} • ${self.format_cost(self.total_cost)} session" + ) else: model = self.main_model async for chunk in super().send(messages, model, functions, tools): From d694568b0f1dcc4d802c5727a6e81a01cba2fe1b Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 24 Mar 2026 22:39:05 -0700 Subject: [PATCH 4/7] fix: Update spinner text to show active agent model Co-authored-by: cecli (openai/openai_gemini_cli/gemini-2.5-pro) --- cecli/coders/agent_coder.py | 9 +++++---- cecli/coders/base_coder.py | 6 +++++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/cecli/coders/agent_coder.py b/cecli/coders/agent_coder.py index e9a24f4f97b..9481d3993d5 100644 --- a/cecli/coders/agent_coder.py +++ b/cecli/coders/agent_coder.py @@ -95,14 +95,15 @@ def __init__(self, *args, **kwargs): ToolRegistry.build_registry(agent_config=self.agent_config) super().__init__(*args, **kwargs) + def get_active_model_name(self): + if self.main_model.agent_model and self.main_model.agent_model is not self.main_model: + return self.main_model.agent_model.name + return self.main_model.name + async def send(self, messages, model=None, functions=None, tools=None): if not model: if self.main_model.agent_model and self.main_model.agent_model is not self.main_model: model = self.main_model.agent_model - if self.io.spinner_task and not self.io.spinner_task.done(): - self.io.spinner_text = ( - f"Waiting for {model.name} • ${self.format_cost(self.total_cost)} session" - ) else: model = self.main_model async for chunk in super().send(messages, model, functions, tools): diff --git a/cecli/coders/base_coder.py b/cecli/coders/base_coder.py index c77c0e6c202..e1ba338588d 100755 --- a/cecli/coders/base_coder.py +++ b/cecli/coders/base_coder.py @@ -2146,6 +2146,9 @@ async def check_tokens(self, messages): return False return True + def get_active_model_name(self): + return self.main_model.name + async def send_message(self, inp): # Notify IO that LLM processing is starting self.io.llm_started() @@ -2175,7 +2178,8 @@ async def send_message(self, inp): self.multi_response_content = "" if self.show_pretty(): spinner_text = ( - f"Waiting for {self.main_model.name} • ${self.format_cost(self.total_cost)} session" + f"Waiting for {self.get_active_model_name()} •" + f" ${self.format_cost(self.total_cost)} session" ) self.io.start_spinner(spinner_text) From ddd78509207cc861feb15daa8cd52e5f94f116a2 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 24 Mar 2026 23:27:03 -0700 Subject: [PATCH 5/7] fix: Update model name in footer when in agent mode Co-authored-by: cecli (openai/openai_gemini_cli/gemini-2.5-pro) --- cecli/coders/agent_coder.py | 4 ---- cecli/coders/base_coder.py | 2 ++ 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/cecli/coders/agent_coder.py b/cecli/coders/agent_coder.py index 9481d3993d5..4bbb80abc03 100644 --- a/cecli/coders/agent_coder.py +++ b/cecli/coders/agent_coder.py @@ -95,10 +95,6 @@ def __init__(self, *args, **kwargs): ToolRegistry.build_registry(agent_config=self.agent_config) super().__init__(*args, **kwargs) - def get_active_model_name(self): - if self.main_model.agent_model and self.main_model.agent_model is not self.main_model: - return self.main_model.agent_model.name - return self.main_model.name async def send(self, messages, model=None, functions=None, tools=None): if not model: diff --git a/cecli/coders/base_coder.py b/cecli/coders/base_coder.py index e1ba338588d..b0290470b9d 100755 --- a/cecli/coders/base_coder.py +++ b/cecli/coders/base_coder.py @@ -2147,6 +2147,8 @@ async def check_tokens(self, messages): return True def get_active_model_name(self): + if self.edit_format == "agent" and self.main_model.agent_model: + return self.main_model.agent_model.name return self.main_model.name async def send_message(self, inp): From a7de98852bedf3163b28f9b7b10d96497a5780f8 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 24 Mar 2026 23:47:58 -0700 Subject: [PATCH 6/7] fix: Update footer to display active model name Co-authored-by: cecli (openai/openai_gemini_cli/gemini-2.5-pro) --- cecli/tui/widgets/footer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cecli/tui/widgets/footer.py b/cecli/tui/widgets/footer.py index 1a4934c4b42..75200c30c04 100644 --- a/cecli/tui/widgets/footer.py +++ b/cecli/tui/widgets/footer.py @@ -63,7 +63,7 @@ def _get_display_model(self) -> str: if not self.model_name: return "" # Strip common prefixes like "openrouter/x-ai/" - name = self.app.worker.coder.main_model.name + name = self.app.worker.coder.get_active_model_name() if len(name) > 40: if "/" in name: name = name.split("/")[-1] From 72f3b68c5295cb61888f2ef306a21b7a3cd5e1ad Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 25 Mar 2026 17:23:09 -0700 Subject: [PATCH 7/7] cli-2: fix formatting --- cecli/coders/agent_coder.py | 1 - 1 file changed, 1 deletion(-) diff --git a/cecli/coders/agent_coder.py b/cecli/coders/agent_coder.py index 4bbb80abc03..5c0a119b9cf 100644 --- a/cecli/coders/agent_coder.py +++ b/cecli/coders/agent_coder.py @@ -95,7 +95,6 @@ def __init__(self, *args, **kwargs): ToolRegistry.build_registry(agent_config=self.agent_config) super().__init__(*args, **kwargs) - async def send(self, messages, model=None, functions=None, tools=None): if not model: if self.main_model.agent_model and self.main_model.agent_model is not self.main_model: