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
- Start embedded chat:
hermes dashboard --tui --no-open --port 9120
- Open
http://127.0.0.1:9120/chat
- Send a prompt that produces a long response/tool trail.
- 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
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
0.12.026200http://127.0.0.1:9120/chatzai/glm-5.1Reproduction
hermes dashboard --tui --no-open --port 9120http://127.0.0.1:9120/chatExpected
The terminal transcript scrolls back through prior conversation output.
Actual
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/ptydashboard PTY children only:HERMES_TUI_INLINE=1HERMES_TUI_DISABLE_MOUSE=1In
ChatPage.tsx:scrollback > 0)term.scrollLines(...)onData