From 1bb7b59c5de4eee89a9f47f93a48471ba4fd6605 Mon Sep 17 00:00:00 2001 From: Sahil-SS9 <218421507+Sahil-SS9@users.noreply.github.com> Date: Mon, 29 Jun 2026 03:05:32 +0100 Subject: [PATCH] fix: offload blocking profiles endpoints from asyncio event loop (#54523) (cherry picked from commit 09f10e2b77e082667911e7c6a42d607085271ebb) --- hermes_cli/web_server.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hermes_cli/web_server.py b/hermes_cli/web_server.py index 5c0a536e137..d2580ab626c 100644 --- a/hermes_cli/web_server.py +++ b/hermes_cli/web_server.py @@ -3430,7 +3430,7 @@ async def get_sessions( @app.get("/api/profiles/sessions") -async def get_profiles_sessions( +def get_profiles_sessions( limit: int = 20, offset: int = 0, min_messages: int = 0, @@ -10719,7 +10719,9 @@ def _disable_unselected_skills(profile_dir: Path, keep: List[str]) -> int: async def list_profiles_endpoint(): from hermes_cli import profiles as profiles_mod try: - return {"profiles": [_profile_to_dict(p) for p in profiles_mod.list_profiles()]} + loop = asyncio.get_running_loop() + profiles = await loop.run_in_executor(None, profiles_mod.list_profiles) + return {"profiles": [_profile_to_dict(p) for p in profiles]} except Exception: _log.exception("GET /api/profiles failed; falling back to profile directory scan") return {"profiles": _fallback_profile_dicts(profiles_mod)}