You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug]: Indent guide hover state is written on every mouse move but nothing reads it #4328
Hovering an indent guide in the trace timeline dispatches Redux actions that update hoverIndentGuideIds, but nothing reads that state anymore, so nothing renders from it.
It used to drive an ancestor highlight: hovering one guide lit up the same ancestor's guide in the other rows. #3302 rewrote the guides and removed the is-active class and its CSS, but left the state, the actions, the reducers, mapStateToProps and a useSelector in place.
So every mouse move across a guide costs a dispatch, a new Set, and a re-render of VirtualizedTraceViewWrapper, for no visual effect. Deeper traces have more guides per row, so it dispatches more.
Steps to reproduce
Open any trace with nested spans.
Move the mouse across the vertical indent guides in the left column.
Nothing highlights in the other rows. Redux actions still fire on every guide.
Expected behavior
Either the hover should highlight the ancestor's guides across rows as it used to, or the state should not exist.
SpanTreeOffset.tsx:209 — mapStateToProps returns it, TProps declares it, the component never destructures it
VirtualizedTraceView.tsx:580 — read via useSelector, spread into combinedProps at 702, unused by the class component. Only type-checks because VirtualizedTraceViewProps includes TTraceTimeline.
SpanTreeOffset.css has no class keyed on the set.
RFC-0004 Phase 1c step 3 lists this as "hover state still lives only in the duck", pending a move to Zustand. If it's dead there's nothing to migrate — deleting it also removes the last useSelector in VirtualizedTraceView and the connect() in SpanTreeOffset.
Was dropping the highlight in #3302 intentional? Two options, and I'd rather ask before opening a PR:
Delete the state, the actions, the reducers, the connect(), the useSelector and the handlers.
Restore the feature and migrate the state to useTraceTimelineStore as Phase 1c.3 planned.
Happy to do either.
UI-only; reproducible against any backend since it's a client-side state question.
I noticed the two possible approaches mentioned in the issue: removing the unused hoverIndentGuideIds state and its dispatch/reducer/connect logic, or restoring the ancestor-highlight behavior and migrating it to the timeline store.
I'd like to work on this, but before making changes, could you confirm which direction is preferred? If the highlight behavior is intentionally removed, I can investigate removing the now-dead state and the associated Redux plumbing, along with the relevant tests.
Activity
lakshaydevoo-arch commentedon Sep 20, 2026
Hi, I'd like to investigate this issue.
I noticed the two possible approaches mentioned in the issue: removing the unused
hoverIndentGuideIdsstate and its dispatch/reducer/connect logic, or restoring the ancestor-highlight behavior and migrating it to the timeline store.I'd like to work on this, but before making changes, could you confirm which direction is preferred? If the highlight behavior is intentionally removed, I can investigate removing the now-dead state and the associated Redux plumbing, along with the relevant tests.