Skip to content

fix(desktop): scope sidebar data to active profile - #82575

Open
magicJie wants to merge 1 commit into
NousResearch:mainfrom
magicJie:fix/desktop-profile-sidebar
Open

magicJie wants to merge 1 commit into
NousResearch:mainfrom
magicJie:fix/desktop-profile-sidebar

Conversation

@magicJie

@magicJie magicJie commented Aug 9, 2026

Copy link
Copy Markdown

Summary

  • scope recents, cron sessions/jobs, and messaging sections to the selected Desktop profile
  • preserve the explicit all-profiles view
  • apply the same scope through batched, legacy fallback, and remote-profile request paths
  • prevent stale/out-of-order async responses from republishing another profile after a live profile switch
  • clear profile-scoped secondary sidebar stores before paint during re-home

Tests run

  • pytest tests/hermes_cli/test_web_server.py -q -p no:cacheprovider (145 passed; one existing Starlette deprecation warning)
  • npm --prefix apps/desktop run test:ui (3642 passed)
  • npm --prefix apps/desktop run test:desktop:platforms (1002 passed, 2 skipped)
  • npm --prefix apps/desktop run typecheck
  • focused ESLint on all changed Desktop files (zero warnings)
  • git diff --check

Motivation

The profile rail visually communicates a scoped workspace, but messaging and cron sidebar slices were aggregated across every profile. Besides confusing users, globally cached async results could reappear after a profile switch. This makes the sidebar follow the selected profile consistently while keeping the explicit all-profiles mode available.

@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have comp/desktop Electron desktop app (apps/desktop/*) comp/cli CLI entry point, hermes_cli/, setup wizard area/profiles Multi-profile isolation, HERMES_HOME scoping area/sessions Session lifecycle, resume, persistence, history sweeper:risk-session-state Sweeper risk: may lose/corrupt/mis-associate session or context state labels Aug 9, 2026
@teknium1

Copy link
Copy Markdown
Collaborator

The renderer scoping + stale-async halves landed on main via #87566. What survives here: the Electron profile-session-routing.ts and backend web_routers/profiles.py scoping halves. Leaving open for those.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/profiles Multi-profile isolation, HERMES_HOME scoping area/sessions Session lifecycle, resume, persistence, history comp/cli CLI entry point, hermes_cli/, setup wizard comp/desktop Electron desktop app (apps/desktop/*) P3 Low — cosmetic, nice to have sweeper:risk-session-state Sweeper risk: may lose/corrupt/mis-associate session or context state type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants