fix: offload blocking profiles endpoints from asyncio event loop (#54523)

This commit is contained in:
Sahil-SS9 2026-06-29 03:05:32 +01:00
parent 11183e8332
commit 09f10e2b77

View file

@ -3429,7 +3429,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,
@ -10565,7 +10565,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)}