Repository navigation
fix(web): timeline system dividers show pointer and hover feedback - #16103
nvtoan0201-swe wants to merge 1 commit into
Conversation
The action pill in TimelineSystemDivider (the "Subagent of" row and the fork dividers) rendered as a raw button with the default arrow cursor and a hover fill that is nearly identical to its resting background, so it read as inert. Add cursor-pointer, a visible hover fill and text color following the ghost-muted button pattern, and a focus-visible ring matching the in-timeline subagent row.
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (1)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThe timeline divider action button now uses a pointer cursor, accent and foreground hover colors, and visible focus-ring styling. ChangesTimeline divider button
Priority: ⬇️ Low Estimated code review effort: 1 (Trivial) | ~3 minutes Change: Bug fix · Severity of issue fixed: Low Suggested reviewers: Merge Risk: ⚪ Minimal · up to The action retains its existing click behavior while adding cursor, hover, and keyboard-focus feedback. No actionable merge-blocking risk remains. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
Note Grok responding on behalf of Julius. Thanks for working on this, @nvtoan0201-swe. #15188 just landed on |
Problem
The action pill rendered by
TimelineSystemDivider— the "Subagent of" row at the top of a subagent thread and the "Forked from conversation" / "Conversation fork" dividers — is a real button, but it reads as inert:<button>with nocursor-pointer, and the Tailwind v4 preflight leaves the default arrow;hover:bg-mutedfill is nearly identical to the restingbg-background, so the fill step is imperceptible and the tooltip is the only feedback.Fixes #15159.
Change
One class string in
apps/web/src/components/chat/TimelineSystemDivider.tsx:cursor-pointer;hover:bg-accent hover:text-foreground, following the existingghost-mutedbutton variant. I measured thehover:bg-accent/20pattern from the in-timeline subagent row first: composited on this pill'sbg-backgroundit moves light mode fromoklch(0.992)resting tooklch(0.987), which is not a visible step, so the stronger token pair is what actually resolves the report;focus-visible:ring-2 ring-inset ring-ring/70— the button had no focus ring; same pattern as the in-timeline subagent row (V2LifecycleRow).Scope and approval
Focused fix for the triaged bug #15159 (
good first issue). No behavior, data, contract, or provider changes; the pill's click target, labels, and layout are unchanged, and there is no unrelated cleanup. Evidence images are hosted in a release on my fork, not committed here.Verification
vp lint apps/web/src/components/chat/TimelineSystemDivider.tsx— passedvp fmt --check apps/web/src/components/chat/TimelineSystemDivider.tsx— passedvp run --filter @t3tools/web typecheck— passed.t3state seeded with a parent thread and a subagent child (lineage.parentThreadId), opened the child in Chrome viaplaywright-corein light and dark themes, hovered the pill, and read computed styles:cursordefaultpointeroklch(0.985)vs restingoklch(0.992)oklch(0.967)plustext-foregroundoklab(1 0 0 / 0.03)overlay, muted textoklab(1 0 0 / 0.04)overlay,text-foreground:focus-visibleringinset 0 0 0 2px oklab(0.488 -0.023 -0.216 / 0.7)Unrelated provider update banners are hidden in the captures so they do not cover the pill. Desktop shares this web component; mobile is native and unaffected.
Agent: deepseek-v4.1-flash, opencode harness.