This commit is contained in:
2026-05-10 11:33:07 -04:00
parent f89f8d4fd7
commit 05d0121e71
7 changed files with 72 additions and 7 deletions
+4 -1
View File
@@ -189,7 +189,7 @@ class HookHandler(BaseHTTPRequestHandler):
result["tracks"] = _get_app_attr(app, "tracks", [])
result["proposed_tracks"] = _get_app_attr(app, "proposed_tracks", [])
result["mma_streams"] = _get_app_attr(app, "mma_streams", {})
result["mma_tier_usage"] = _get_app_attr(app, "mma_tier_usage", {})
result["tier_usage"] = _get_app_attr(app, "mma_tier_usage", {})
finally: event.set()
lock = _get_app_attr(app, "_pending_gui_tasks_lock")
tasks = _get_app_attr(app, "_pending_gui_tasks")
@@ -212,6 +212,9 @@ class HookHandler(BaseHTTPRequestHandler):
result["thinking"] = status in ["sending...", "running powershell..."]
result["live"] = status in ["running powershell...", "fetching url...", "searching web...", "powershell done, awaiting AI..."]
result["prior"] = _get_app_attr(app, "is_viewing_prior_session", False)
perf = _get_app_attr(app, "perf_monitor")
if perf:
result.update(perf.get_metrics())
finally: event.set()
lock = _get_app_attr(app, "_pending_gui_tasks_lock")
tasks = _get_app_attr(app, "_pending_gui_tasks")
+7 -3
View File
@@ -216,7 +216,6 @@ class AppController:
"Tier 3": {"input": 0, "output": 0, "provider": "gemini", "model": "gemini-2.5-flash-lite", "tool_preset": None},
"Tier 4": {"input": 0, "output": 0, "provider": "gemini", "model": "gemini-2.5-flash-lite", "tool_preset": None},
}
self.perf_monitor: performance_monitor.PerformanceMonitor = performance_monitor.PerformanceMonitor()
self._last_telemetry_time: float = 0.0
self._pending_gui_tasks: List[Dict[str, Any]] = []
self._api_event_queue: List[Dict[str, Any]] = []
@@ -858,8 +857,13 @@ class AppController:
for tier, data in new_usage.items():
if tier in self.mma_tier_usage:
# Update usage counts but keep selected model/provider if not in update
self.mma_tier_usage[tier]["input"] = data.get("input", self.mma_tier_usage[tier]["input"])
self.mma_tier_usage[tier]["output"] = data.get("output", self.mma_tier_usage[tier]["output"])
input_val = data.get("input")
if input_val is not None:
self.mma_tier_usage[tier]["input"] = input_val
output_val = data.get("output")
if output_val is not None:
self.mma_tier_usage[tier]["output"] = output_val
if "model" in data: self.mma_tier_usage[tier]["model"] = data["model"]
if "provider" in data: self.mma_tier_usage[tier]["provider"] = data["provider"]
else:
+4 -1
View File
@@ -53,6 +53,7 @@ Integration:
- Exposed via Hook API at /api/performance
"""
from __future__ import annotations
import sys
import time
import psutil
import threading
@@ -241,6 +242,7 @@ class PerformanceMonitor:
cpu = self._cpu_percent
ilag = self._input_lag_ms
last_calc_fps = self._last_calculated_fps
total_frames = float(self._frame_count)
timings_snapshot = dict(self._component_timings)
counts_snapshot = dict(self._component_counts)
max_snapshot = dict(self._component_max)
@@ -254,7 +256,8 @@ class PerformanceMonitor:
'cpu_percent': cpu,
'cpu_percent_avg': self._get_avg('cpu_percent'),
'input_lag_ms': ilag,
'input_lag_ms_avg': self._get_avg('input_lag_ms')
'input_lag_ms_avg': self._get_avg('input_lag_ms'),
'total_frames': total_frames
}
for name, elapsed in timings_snapshot.items():
metrics[f'time_{name}_ms'] = elapsed