feat(perf): Integrate PerformanceMonitor with DPG main loop

This commit is contained in:
2026-02-23 14:42:21 -05:00
parent f9df7d4479
commit 5c7fd39249

6
gui.py
View File

@@ -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()