feat(web): reveal timestamps on tool rows and turn folds - #8641
Conversation
Collapsed tool-group rows, plain work-log rows, and the "Worked for" turn fold now carry the same hover-revealed wall-clock timestamp (with a full-date tooltip) that message rows already use, so the desktop app shows when each tool call or agent turn happened. The transient "Running X" live row is intentionally left without one. Rows with no other focusable element make the timestamp itself the tab stop so keyboard users can reveal it too. Co-Authored-By: Claude <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a localized web UI metadata enhancement that reuses existing timestamp formatting and tooltip behavior across tool rows and turn folds. It changes no data flow, product defaults, integrations, or sensitive code, and includes focused rendering coverage. You can add or adjust custom eligibility rules. Learn more. |
What Changed
Collapsed tool-group rows ("Ran 2 commands"), plain work-log rows ("Context compacted"), and the "Worked for" turn-fold row now carry the same hover-revealed wall-clock timestamp that message rows already use: a small muted time that appears on row hover or keyboard focus, with the full date+time tooltip. The transient "Running X" live row intentionally stays without one — it becomes a collapsed group the moment the turn settles.
Rows with no other focusable element (work-log entries that don't expand) make the timestamp itself the tab stop, so keyboard users can reveal it too.
Two files, ~170 lines, no changes to timeline data derivation or row layout while idle.
Why
In the desktop app there was no way to tell when any tool call or agent turn happened — collapsed rows show only "Ran 2 commands" with no time visible anywhere. Message rows already have exactly this metadata presentation (reveal-on-hover + full-date tooltip via
formatDayAwareTimestamp/formatChatTimestampTooltip), so this reuses that pattern rather than inventing a new one, and keeps the timeline pixel-identical until you hover or focus a row.UI Changes
Before ↔ After — collapsed tool-group row, dark theme (animation shows the hover/focus reveal):
More captures — turn fold, light theme, full window, keyboard focus
"Worked for" turn fold, dark — the fold now carries the turn's start time (before / after):
Collapsed tool group, light theme (before / after):
Keyboard focus reveal — timestamp shown via
:focus-visibleon the row:Full window @2x — idle before / idle after / fold after, dark:
Light theme full window: before · after idle · after focus
Checklist
Note
Low Risk
Presentation-only timeline UI with no derivation or API changes; regression risk is limited to row markup and focus order on work rows.
Overview
Adds hover- and focus-revealed wall-clock timestamps to work-log and turn-fold rows in
MessagesTimeline, matching message-row behavior (formatDayAwareTimestampplus full-date tooltip).A new
TimelineRowTimestampcomponent stays hidden until the parent row’sgroup/timeline-rowis hovered or focused. It is wired into “Worked for” turn folds, collapsed tool-group toggles (e.g. “Ran 1 command”), and plain work entries.timestampFormatis passed from context into expanded work-group rows.Non-expandable work rows set
keyboardReachableso the timestamp is the tab stop for keyboard users. Live “Running …” rows still omit timestamps (covered by an updated test).Tests assert opacity/reveal classes, formatted time text, and
tabindexon inert rows.Reviewed by Cursor Bugbot for commit 0970b00. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Add hover-revealed timestamps to tool rows and turn folds in
MessagesTimelineIntroduces
TimelineRowTimestampin MessagesTimeline.tsx, a component that renders an opacity-0 timestamp that becomes visible on group hover/focus, with an accessible tooltip showing the full date.TurnFoldTimelineRow,WorkGroupToggleTimelineRow(collapsed tool groups), andPlainWorkEntryRow(work log entries), threadingtimestampFormatthroughTimelineRowCtx.keyboardReachableso the timestamp trigger getstabindex="0"and remains keyboard-focusable.PlainWorkEntryRowandWorkGroupToggleTimelineRowrendering paths if new row types are added.Macroscope summarized 0970b00.