From 5c7fd392495ab3b44d7422f1787ef9ad562c83b6 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Mon, 23 Feb 2026 14:42:21 -0500 Subject: [PATCH] feat(perf): Integrate PerformanceMonitor with DPG main loop --- gui.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gui.py b/gui.py index c8ccb6a..3cf5621 100644 --- a/gui.py +++ b/gui.py @@ -26,6 +26,7 @@ import session_logger import project_manager import api_hooks import theme +from performance_monitor import PerformanceMonitor CONFIG_PATH = Path("config.toml") PROVIDERS = ["gemini", "anthropic"] @@ -493,6 +494,8 @@ class App: self._is_script_blinking = False self._script_blink_start_time = 0.0 + self.perf_monitor = PerformanceMonitor() + session_logger.open_session() ai_client.set_provider(self.current_provider, self.current_model) ai_client.confirm_and_run_callback = self._confirm_and_run @@ -2108,6 +2111,7 @@ class App: self.hook_server.start() while dpg.is_dearpygui_running(): + self.perf_monitor.start_frame() # Show any pending confirmation dialog on the main thread safely with self._pending_dialog_lock: dialog = self._pending_dialog @@ -2244,6 +2248,7 @@ class App: self._flush_pending_comms() self._update_telemetry_panel() + self.perf_monitor.end_frame() dpg.render_dearpygui_frame() # Save everything on exit @@ -2254,6 +2259,7 @@ class App: dpg.save_init_file("dpg_layout.ini") session_logger.close_session() + self.perf_monitor.stop() ai_client.cleanup() # Destroy active API caches to stop billing self.hook_server.stop() dpg.destroy_context()