nesquena/hermes-webui

WebUI: hover-triggered flicker/text-shading on follow-up text after an async agent return (exp-v0.52.71)

Open

#6,072 opened on Jul 14, 2026

View on GitHub
 (1 comment) (0 reactions) (0 assignees)Python (1,700 forks)github user discovery
bughelp wantedsprint-candidatestreaming

Repository metrics

Stars
 (13,820 stars)
PR merge metrics
 (PR metrics pending)

Description

Reported by b3nw in Discord #report-bugs (Jul 14 2026) on exp-v0.52.71 · Experimental.

"on the flicker problem: after async agent returns text to a session, follow up text flickers or has changing text shading when mouse moves over it."

Symptom

A hover-triggered variant of the streaming flicker. After an async agent turn returns text to a session (e.g. a background/delegated/async run posting its result), the follow-up text flickers / changes shading when the mouse moves over it. So this isn't the during-generation flicker of #5367/#5943 — it's a post-settle, hover-induced re-shade/repaint on the async-returned content.

Likely area

  • A global CSS transition applies to div/… for background-color, border-color, color at .15s (static/style.css ~L1477). Combined with a :hover background/color rule on the message row/body, an async-returned message that wasn't painted with the same settled state as a normal turn can visibly re-shade on hover (the transition animates a color/background delta that a fully-settled turn wouldn't have).
  • Async/background-return content may be rendered via a different path than the normal live→settled turn (so it carries a slightly different DOM/class state), which is why hover re-triggers a shading change specifically on follow-up async text rather than on normal turns.

Suspect the async/background turn-render + the settled hover styling interaction in static/messages.js / static/ui.js + the :hover + global color-transition rules in static/style.css.

Relationship to the flicker family

b3nw frames it as "on the flicker problem" — same family as #5367 (CLOSED, Transparent Stream flicker) and #5943 (flicker returned). But the trigger here is mouse hover after an async return, not live streaming, so it's a distinct vector worth its own trace (and a regression test that hovers a settled async-returned turn and asserts no repaint/shading change).

Repro (reporter's description)

  1. Have an async/background agent turn return text into a session.
  2. Move the mouse over the follow-up text.
  3. Observe flicker / changing text shading on hover.

Acceptance criteria

  • An async-returned (settled) turn does not flicker or change shading on hover; its settled paint matches a normal turn's.

Environment

  • WebUI: exp-v0.52.71 (experimental)

Related

  • #5943 — response flickering during streaming returned (regression of #5367)
  • #5367 — original Transparent Stream flicker (CLOSED)

Contributor guide