mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-21 16:18:55 +00:00
The sidebar refresh fired three /api/profiles/sessions calls (recents, cron, messaging), and each one reopened every selected profile's state.db and re-ran list_sessions_rich + session_count — ~3N DB opens/counts per refresh, on every turn/broadcast/reconnect. Add GET /api/profiles/sessions/sidebar: one pass that opens each profile DB once and runs the three source-scoped queries together (recents scoped to the active profile; cron + messaging cross-profile), returning the three windows in one payload. Same read-only projection, 300s active heuristic, and caller- supplied source taxonomy (recents_exclude / messaging_exclude / source=cron) as the per-slice endpoint. Renderer refreshSessions now makes one listSidebarSessions call and distributes recents/cron/messaging to their stores (cron *jobs* stay a separate getCronJobs API). Electron splices remote profiles per slice via fetchProfilesSessionSlice (reusing the proven per-slice merge) so remote correctness is preserved; the no-remote common case gets the single-open fast path. From the Desktop performance audit (P1: "Batch sidebar session slices"). |
||
|---|---|---|
| .. | ||
| bootstrap-installer | ||
| desktop | ||
| shared | ||