Skip to content

fix(desktop): route tiled session resumes to the owning profile - #69887

Merged
OutThisLife merged 1 commit into
mainfrom
bb/tile-resume-profile
Jul 23, 2026
Merged

fix(desktop): route tiled session resumes to the owning profile#69887
OutThisLife merged 1 commit into
mainfrom
bb/tile-resume-profile

Conversation

@OutThisLife

Copy link
Copy Markdown
Collaborator

Follow-up to #69861, which fixed the #67603 cross-profile session bleed on the recovery resumes and the right-click branch. Auditing every session.resume call site turned up one path that PR missed: the tiled / split-pane cold resume.

resumeTile bound a runtime with { session_id, cols } and read the transcript with getSessionMessages(storedSessionId) — both without a profile. A tile can open a session owned by any profile, not just the active one, so the gateway fell back to the launch-profile DB and forked the conversation into the wrong profile — the same bleed #69861 closed, just a sibling call path.

Fix: resolve the owning profile through the shared resolveSessionProfile (cache → active backend → cross-profile probe, added in #69861) and carry it on both the prefetch and the resume RPC. Same one-line pattern the recovery paths already use.

Tests

  • Cold tile resume of a session owned by another profile carries that profile onto both getSessionMessages and the session.resume RPC.
  • A default-profile session resolves and is carried explicitly.

Checks

Co-authored-by: oliviaaaa7788 oliviaaaa7788@users.noreply.github.com

`resumeTile` — the cold-resume path for a session opened in a tile / split
pane — resumed with `{ session_id, cols }` and read messages with no profile,
so a tile opening a session from another profile let the gateway fall back to
the launch-profile DB and fork the conversation into the wrong profile: the
same cross-profile bleed the recovery resumes had (#67603), just a sibling
call path. Resolve the owning profile via the shared `resolveSessionProfile`
and carry it on both the transcript prefetch and the resume RPC.

Co-authored-by: oliviaaaa7788 <oliviaaaa7788@users.noreply.github.com>
@OutThisLife
OutThisLife enabled auto-merge July 23, 2026 05:20
@github-actions

github-actions Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

૮ >ﻌ< ა ci review

ran on c3602f7

all good!

@OutThisLife
OutThisLife merged commit 61e7db2 into main Jul 23, 2026
27 checks passed
@OutThisLife
OutThisLife deleted the bb/tile-resume-profile branch July 23, 2026 05:28
@alt-glitch alt-glitch added type/bug Something isn't working P2 Medium — degraded but workaround exists comp/desktop Electron desktop app (apps/desktop/*) 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 Jul 23, 2026
randlee pushed a commit to randlee/hermes-agent that referenced this pull request Aug 11, 2026
…e-profile

fix(desktop): route tiled session resumes to the owning profile
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/desktop Electron desktop app (apps/desktop/*) P2 Medium — degraded but workaround exists 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.

2 participants