hermes-agent/apps/desktop/src/app/session/hooks
Brooklyn Nicholson b94b3622b5 feat(desktop): per-session profile switching + cross-profile sessions
Add first-class profile support to the desktop app without app reloads.

- Swap the single live gateway onto a session's profile lazily (spawned on
  demand by the Electron backend pool), so one backend serves the active
  profile and others stay cold — no OOM with many profiles.
- Aggregate sessions across profiles by reading each profile's state.db
  read-only; unified "All profiles" view groups sessions per profile with
  per-profile pagination, while the default view stays scoped to one profile.
- Add an Arc-style profile rail at the sidebar foot: a default<->all toggle
  pinned left, colored named-profile squares scrolling between, Manage pinned
  right. Profile identity is a deterministic per-name color.
- Route profile-scoped REST (config/env/skills/tools/model) to the active
  gateway profile and invalidate React Query caches on swap. Single-profile
  users never trigger a swap, so their path is unchanged.

Backend:
- web_server: profile-aware active/list endpoints + per-profile session
  totals; hermes_state: session_count(exclude_children); main.py: honor
  --profile over HERMES_HOME env for pooled backends.

UI primitives:
- Add a position-aware Tip tooltip (instant, themed) as a drop-in for native
  title=, and strip redundant tooltips from self-descriptive chrome.
2026-06-04 16:35:34 -05:00
..
use-context-suggestions.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
use-cwd-actions.ts fix(desktop): stabilize project folder sessions (#37586) 2026-06-02 20:23:09 +00:00
use-hermes-config.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
use-message-stream.ts chore(desktop): zero eslint/typecheck debt + prettier pass (#39100) 2026-06-04 14:10:38 +00:00
use-model-controls.ts fix(desktop): roll back optimistic model switch on failure 2026-06-02 19:40:42 -05:00
use-preview-routing.test.tsx Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
use-preview-routing.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
use-prompt-actions.ts feat(desktop): per-session profile switching + cross-profile sessions 2026-06-04 16:35:34 -05:00
use-route-resume.test.tsx Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
use-route-resume.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
use-session-actions.ts feat(desktop): per-session profile switching + cross-profile sessions 2026-06-04 16:35:34 -05:00
use-session-state-cache.ts chore(desktop): zero eslint/typecheck debt + prettier pass (#39100) 2026-06-04 14:10:38 +00:00