diff --git a/src/api_hooks.py b/src/api_hooks.py index c2b0108b..0ac58a39 100644 --- a/src/api_hooks.py +++ b/src/api_hooks.py @@ -231,6 +231,15 @@ class HookHandler(BaseHTTPRequestHandler): perf = _get_app_attr(app, "perf_monitor") if perf: result.update(perf.get_metrics()) + # Warmup status (startup_speedup_20260606 Phase 7). Exposes the + # AppController's warmup_status() result so external clients and + # tests can poll until all heavy modules are loaded. + controller = _get_app_attr(app, "controller", None) + if controller and hasattr(controller, "warmup_status"): + try: + result["warmup"] = controller.warmup_status() + except Exception: + result["warmup"] = {"pending": [], "completed": [], "failed": []} finally: event.set() lock = _get_app_attr(app, "_pending_gui_tasks_lock") tasks = _get_app_attr(app, "_pending_gui_tasks")