Skip to content

dashboard /chat: wheel scrolling does not reliably scroll transcript history in embedded chat #19084

@nouseman666

Description

@nouseman666

When using hermes dashboard --tui, the browser Chat tab can render and accept input normally, but mouse-wheel scrolling does not reliably scroll earlier transcript history. In WSL2/ConPTY-backed setups this is especially reproducible: wheel input appears to be consumed by the embedded TUI/mouse-tracking path instead of moving the browser-side xterm scrollback.

Environment

  • Hermes Agent 0.12.0
  • Windows 10 Pro for Workstations, build 26200
  • WSL2 Ubuntu 22.04.5
  • Browser dashboard via http://127.0.0.1:9120/chat
  • Provider used during repro: zai/glm-5.1

Reproduction

  1. Start embedded chat:
    • hermes dashboard --tui --no-open --port 9120
  2. Open http://127.0.0.1:9120/chat
  3. Send a prompt that produces a long response/tool trail.
  4. Hover the terminal pane and use the mouse wheel to scroll upward.

Expected

The terminal transcript scrolls back through prior conversation output.

Actual

  • Wheel scrolling does not reliably move transcript history.
  • In some runs the terminal appears stuck at the live bottom.
  • Related input/mouse behavior can also become unstable under WSL2/ConPTY.

Why this appears to be a bug

The current embedded-chat path combines xterm.js + PTY + Hermes TUI defaults. TUI mouse tracking and alternate-screen semantics are sensible for the native CLI, but conflict with browser-native scrollback expectations in the dashboard embed.

Candidate fix direction

For /api/pty dashboard PTY children only:

  • set HERMES_TUI_INLINE=1
  • set HERMES_TUI_DISABLE_MOUSE=1

In ChatPage.tsx:

  • enable browser scrollback (scrollback > 0)
  • explicitly map wheel events to term.scrollLines(...)
  • drop SGR mouse-report bytes from onData

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium — degraded but workaround existscomp/tuiTerminal UI (ui-tui/ + tui_gateway/)type/bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions