hermes-agent/apps/desktop/src/app
kshitijk4poor 28f1590b7a fix(desktop): stop background session messages bleeding into the active transcript
A still-busy background session (one the user toggled away from) keeps
emitting updateSessionState() heartbeats — stream deltas, and especially
the 'session busy' prompt-rejection errors from auto-drained queued turns.
Each call invoked syncSessionStateToView() unconditionally, staging that
session's messages into the shared $messages view.

flushPendingViewState() guarded against the wrong session reaching the
view, but only one requestAnimationFrame is scheduled per frame and
pendingViewStateRef holds just the latest writer. So within a single
frame a background write could overwrite an already-pending foreground
write, and the stale background transcript (e.g. the red 'session busy'
rows) would render on top of whatever session the user switched to —
appearing to 'bleed' into every session.

Guard at the staging site: a session may only stage into the view when
it is the currently-active session. Background sessions still update
their own cache entry; they just never touch $messages. Pure render
fix, no behavior change to queuing, interrupt, or drain.
2026-06-03 12:09:18 +05:30
..
agents Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
artifacts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
chat fix(desktop): make Stop button actually interrupt when a turn is queued 2026-06-03 11:46:02 +05:30
command-center refactor(desktop): move model management from Command Center into Settings 2026-06-02 05:53:15 -04:00
cron fix(desktop): triage batch of GUI quality-of-life fixes (#37536) 2026-06-02 16:33:22 -04:00
gateway/hooks Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
hooks Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
messaging fix(desktop): triage batch of GUI quality-of-life fixes (#37536) 2026-06-02 16:33:22 -04:00
overlays Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
profiles Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
right-sidebar fix(desktop): stabilize project folder sessions (#37586) 2026-06-02 20:23:09 +00:00
session/hooks fix(desktop): stop background session messages bleeding into the active transcript 2026-06-03 12:09:18 +05:30
settings fix(desktop): triage batch of GUI quality-of-life fixes (#37536) 2026-06-02 16:33:22 -04:00
shell fix(desktop): switch model on keyboard activation of picker rows 2026-06-02 19:50:55 -05:00
skills refactor(desktop): consolidate skills + tools management into one pane 2026-06-02 05:11:52 -04:00
desktop-controller.tsx fix(desktop): keep in-flight new chats from vanishing on refresh 2026-06-03 00:21:05 -05:00
index.tsx Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
model-picker-overlay.tsx Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
model-visibility-overlay.tsx feat(desktop): inline model picker in the status bar 2026-06-02 19:09:41 -05:00
page-search-shell.tsx fix(desktop): triage batch of GUI quality-of-life fixes (#37536) 2026-06-02 16:33:22 -04:00
routes.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
types.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
updates-overlay.tsx Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00