hermes - 💡(How to fix) Fix [Bug]: Desktop chat switching/new session pins last sent message at top of viewport [1 pull requests]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Error Message

Additional Logs / Traceback (optional)

Root Cause

Root Cause Analysis (optional)

Fix Action

Fixed

Code Example

Context automatically compacted. Continuing in a new linked chat/session.

---

Not available yet. This is a Desktop UI/rendering/session state issue observed visually. Screenshot evidence exists locally and can be uploaded through the GitHub web UI if needed.

---

UI symptoms observed:
- `Prompt failed: session busy`
- repeated `session busy` messages in chat body
- top bar showed running state / agent running indicator
RAW_BUFFERClick to expand / collapse

Bug Description

In Hermes Desktop, after chat switching while a session is busy and/or after automatic context compaction creates/switches to a new chat/session, the last message I sent becomes pinned/stuck to the top of the viewport.

The pinned item is not stable: it changes when I scroll up, which makes this look like a message-list virtualization / scroll anchoring / reused-row rendering bug, not just a draft text issue.

This happened around a confusing transition where the context bar appeared to fill, the app seemed to create a new chat/session, and the previous chat looked like it was still running visually but no text appeared there.

Steps to Reproduce

  1. Open Hermes Desktop on Windows.
  2. Use a long chat until the context bar is full or automatic context compaction is triggered.
  3. Continue sending messages while the session is running/busy.
  4. Switch between chats/sessions, including the newly created/continued chat.
  5. Send or queue a prompt while the session is busy.
  6. Observe Prompt failed: session busy and/or repeated session busy messages.
  7. Scroll the chat viewport.
  8. Observe that the last sent message can become pinned/stuck at the top, and the pinned item changes when scrolling.
  9. Restart the app or switch chats again; stale/pinned UI state may persist or reappear in a different position.

Expected Behavior

  • The message list should render the active chat normally; no prior/last sent message should pin to the top unless it is actually at that scroll position.
  • Chat switching and busy-session handling should not corrupt message layout.
  • If a prompt is rejected as session busy, the text/attachments should remain recoverable and the UI state should stay consistent.
  • If automatic context compaction creates a new linked chat/session, Desktop should make that explicit.

Suggested UX copy:

Context automatically compacted. Continuing in a new linked chat/session.

The current behavior feels like the app silently creates a new chat, which is disorienting. The old chat can look visually stuck/running while work continues elsewhere.

Actual Behavior

  • A newly sent or recent message becomes visually pinned/stuck at the top of the chat viewport.
  • The pinned/stuck item changes when scrolling upward.
  • The app showed Prompt failed: session busy and repeated session busy messages.
  • The sidebar showed multiple chats/sessions, including new numbered sessions.
  • The top UI showed running/agent-running state.
  • The stale/pinned state survived or reappeared after restarting/switching.

Affected Component

Agent Core (conversation loop, context compression, memory)
Other (Hermes Desktop UI)

Messaging Platform (if gateway-related)

N/A

Debug Report

Not available yet. This is a Desktop UI/rendering/session state issue observed visually. Screenshot evidence exists locally and can be uploaded through the GitHub web UI if needed.

Operating System

Windows 10

Python Version

3.11.15

Hermes Version

Hermes Agent v0.15.1 (2026.5.29)
Hermes Desktop visible build: v0.15.1 (+8) af8b917
Model/session context: Codex GPT-5.5

Additional Logs / Traceback (optional)

UI symptoms observed:
- `Prompt failed: session busy`
- repeated `session busy` messages in chat body
- top bar showed running state / agent running indicator

Root Cause Analysis (optional)

Likely related to Desktop message-list virtualization / scroll anchoring / row reuse combined with chat switching, busy-session state, and context compaction/new-session routing. This is a hypothesis based on the fact that the pinned message changes when scrolling.

Proposed Fix (optional)

  • Keep message list row identity scoped to the active session/chat and message id.
  • Prevent stale queued/draft/message cards from being reused across sessions during chat switching or compaction.
  • If automatic context compaction creates a successor chat/session, show an explicit notice and link the old/new sessions in the UI.

Are you willing to submit a PR for this?

  • I'd like to fix this myself and submit a PR

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING