From a856d73f9551717d39e7df021aa2b8173b8d3040 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 7 Mar 2026 14:25:03 -0500 Subject: [PATCH] ok --- src/ai_client.py | 11 ++--------- src/app_controller.py | 4 ++-- src/gui_2.py | 3 ++- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/src/ai_client.py b/src/ai_client.py index b64d0a5..3068267 100644 --- a/src/ai_client.py +++ b/src/ai_client.py @@ -894,7 +894,6 @@ def _send_gemini(md_content: str, user_message: str, base_dir: str, if discussion_history and not old_history: _gemini_chat.send_message(f"[DISCUSSION HISTORY]\n\n{discussion_history}") _append_comms("OUT", "request", {"message": f"[HISTORY INJECTED] {len(discussion_history)} chars"}) - _append_comms("OUT", "request", {"message": f"[ctx {len(md_content)} + msg {len(user_message)}]"}) payload: str | list[types.Part] = user_message all_text: list[str] = [] _cumulative_tool_bytes = 0 @@ -1059,7 +1058,8 @@ def _send_gemini_cli(md_content: str, user_message: str, base_dir: str, if adapter is None: break events.emit("request_start", payload={"provider": "gemini_cli", "model": _model, "round": r_idx}) - _append_comms("OUT", "request", {"message": f"[CLI] [round {r_idx}] [msg {len(payload)}]"}) + if r_idx > 0: + _append_comms("OUT", "request", {"message": f"[CLI] [round {r_idx}] [msg {len(payload)}]"}) send_payload = payload if isinstance(payload, list): send_payload = json.dumps(payload) @@ -1335,13 +1335,6 @@ def _send_anthropic(md_content: str, user_message: str, base_dir: str, file_item _repair_anthropic_history(_anthropic_history) _anthropic_history.append({"role": "user", "content": user_content}) _add_history_cache_breakpoint(_anthropic_history) - n_chunks = len(system_blocks) - _append_comms("OUT", "request", { - "message": ( - f"[system {n_chunks} chunk(s), {len(md_content)} chars context] " - f"{user_message[:200]}{'...' if len(user_message) > 200 else ''}" - ), - }) all_text_parts: list[str] = [] _cumulative_tool_bytes = 0 diff --git a/src/app_controller.py b/src/app_controller.py index 109d076..a06d81d 100644 --- a/src/app_controller.py +++ b/src/app_controller.py @@ -1100,8 +1100,8 @@ class AppController: def _on_api_event(self, event_name: str = "generic_event", **kwargs: Any) -> None: payload = kwargs.get("payload", {}) - with self._pending_gui_tasks_lock: - self._pending_gui_tasks.append({"action": "refresh_api_metrics", "payload": payload}) + # Push to background event queue, NOT GUI queue + self.event_queue.put("refresh_api_metrics", payload) if self.test_hooks_enabled: with self._api_event_queue_lock: self._api_event_queue.append({"type": event_name, "payload": payload}) diff --git a/src/gui_2.py b/src/gui_2.py index 8ff7b95..1d05491 100644 --- a/src/gui_2.py +++ b/src/gui_2.py @@ -1486,7 +1486,8 @@ class App: if self._token_stats_dirty: self._token_stats_dirty = False - self._refresh_api_metrics({}, md_content=self._last_stable_md or None) + # Offload to background thread via event queue + self.controller.event_queue.put("refresh_api_metrics", {"md_content": self._last_stable_md or ""}) stats = self._token_stats if not stats: imgui.text_disabled("Token stats unavailable")