mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-25 17:18:11 +00:00
A background queue drain (fromQueue: true) whose runtime binding was reaped by the gateway fires with sessionId=null. The expression options?.sessionId ?? activeSessionIdRef.current falls back to whichever runtime id the foreground happens to hold, landing the queued prompt in the session the user is currently viewing instead of the session that owns the queue entry — a cross-session message leak. Guard the fallback: only inherit the foreground runtime when the drain targets the current view (no storedSessionId, or it matches the foreground). A background drain (storedSessionId differs) is left with sessionId=null so the existing session.resume path rebinds the correct runtime before prompt.submit fires. Includes a regression test: "a fromQueue drain with null runtime id does NOT land in the foreground session (cross-session leak guard)". All 53 existing tests pass. |
||
|---|---|---|
| .. | ||
| bootstrap-installer | ||
| desktop | ||
| shared | ||