Conversation
dokterdok
force-pushed
the
fix/desktop-session-source-scope
branch
7 times, most recently
from
August 17, 2026 12:21
b3ea469 to
4279ad0
Compare
Contributor
Author
|
@coderabbitai review |
dokterdok
marked this pull request as ready for review
August 17, 2026 12:45
Contributor
Author
Additional Windows verificationVerified PR head
Not claimed: packaged-app E2E against multiple live remote gateways on Windows. That remains covered by the macOS packaged-app E2E and the automated registry/routing tests. |
34 tasks
dokterdok
force-pushed
the
fix/desktop-session-source-scope
branch
from
August 18, 2026 08:33
86f55b9 to
468f02c
Compare
dokterdok
force-pushed
the
fix/desktop-session-source-scope
branch
2 times, most recently
from
August 18, 2026 16:17
29f215c to
b99aecc
Compare
dokterdok
force-pushed
the
fix/desktop-session-source-scope
branch
2 times, most recently
from
August 18, 2026 18:33
61d6eb6 to
29e87c2
Compare
dokterdok
force-pushed
the
fix/desktop-session-source-scope
branch
from
August 18, 2026 18:40
29e87c2 to
5a33ddc
Compare
Collaborator
This was referenced Aug 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Lets one Hermes Desktop app switch between every registered Hermes gateway from the Sessions workspace.
The v2 connection registry can already store local, remote, Cloud, and SSH gateways together, but the main session workspace still followed whichever route happened to be active. This change makes gateway identity explicit across REST, WebSocket, session, messaging, cron, project, and settings state while keeping background connections and backend work alive.
The UX stays quiet for simple setups: no gateway control is shown with one registered gateway, and search appears only once a registry reaches eight gateways. With multiple gateways, a compact, type-aware selector sits in the Sessions statusbar next to gateway health, leaving the profile rail entirely available to profiles. Local is listed first and the rest sort naturally. Each gateway restores its own last profile and session context.
Bot Mode remains federated across gateways, so the foreground Sessions selector and its single-gateway health readout are intentionally hidden there. Existing cached-roster recovery remains unchanged; richer per-gateway offline state belongs to a separate Bot Mode health contract rather than a misleading global indicator.
Related Issue
Completes the remaining in-workspace switching part of #44413.
#37876 was closed by the merged registry and routing campaign in #86679, #86839, and #86875, plus the discovery entry points and docs in #87603. This PR builds on that architecture.
The earlier switcher concept in draft #76709 by @rewbs is credited here. This implementation uses the current v2 registry and concurrent socket pool; favorites and inline Cloud-agent listing from that draft remain separate.
Foreground profile and session-tab ownership is handled separately by #88095.
Linked remote-profile aliases that coexist in one profile rail without switching the Sessions gateway are a separate model tracked in #89304.
Non-primary Bot Chat hydration/navigation is tracked in #89206 and #89284. This PR keeps Bot Mode federated and does not replace that flow.
Type of Change
Changes Made
(connection, profile)identity, including a truthful compatibility bridge for migrated v1 routes.The fifteen commits are intentionally separated by concern so maintainers can review or cherry-pick transport, switching, state isolation, documentation, settings, launch restoration, terminology, Bot Mode layout, large-registry ergonomics, and Sessions chrome independently.
How to Test
npm --prefix apps/desktop run check.Verification on macOS Apple Silicon:
Checklist
Code
fix(scope):,feat(scope):, etc.)pytest tests/ -q- not run; no Python source changed and the Desktop CI lane is exercised belowDocumentation & Housekeeping
cli-config.yaml.example- N/A; no CLI config keys changedCONTRIBUTING.md/AGENTS.md- N/A; no contributor workflow changedScreenshots / Logs
A four-gateway setup stays compact: the selector lives beside gateway health in the Sessions statusbar, no search field is added, and the profile rail retains its full width.
Search appears only for larger registries. The selector keeps a stable size while filtering, sorts gateways naturally with the local runtime first, and keeps gateway management outside the scrolling result list.
Settings search stays anchored when the layout has room, then contracts to the true result height without a blank scroll tail. The startup preference follows the registry instead of separating its heading from the gateway list.
Filtering to two matches preserves the selector geometry, keeps the management action fixed, and avoids layout jumps. All names and endpoints in the screenshots are synthetic.