Skip to content

feat(web): reveal timestamps on tool rows and turn folds - #8641

Open
saphid wants to merge 2 commits into
pingdotgg:mainfrom
saphid:feat/web-work-row-timestamps-20260829
Open

feat(web): reveal timestamps on tool rows and turn folds#8641
saphid wants to merge 2 commits into
pingdotgg:mainfrom
saphid:feat/web-work-row-timestamps-20260829

Conversation

@saphid

@saphid saphid commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

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):

Before and after comparison of a collapsed tool group row

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):

Turn fold row before and after, dark theme

Collapsed tool group, light theme (before / after):

Tool group row before and after, light theme

Keyboard focus reveal — timestamp shown via :focus-visible on the row:

Timestamp revealed by keyboard focus, dark theme

Full window @2x — idle before / idle after / fold after, dark:

Before (idle) After (idle) After (turn fold)
Before full window After full window After fold full window

Light theme full window: before · after idle · after focus

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

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 (formatDayAwareTimestamp plus full-date tooltip).

A new TimelineRowTimestamp component stays hidden until the parent row’s group/timeline-row is hovered or focused. It is wired into “Worked for” turn folds, collapsed tool-group toggles (e.g. “Ran 1 command”), and plain work entries. timestampFormat is passed from context into expanded work-group rows.

Non-expandable work rows set keyboardReachable so 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 tabindex on 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 MessagesTimeline

Introduces TimelineRowTimestamp in 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.

  • Applies the timestamp to TurnFoldTimelineRow, WorkGroupToggleTimelineRow (collapsed tool groups), and PlainWorkEntryRow (work log entries), threading timestampFormat through TimelineRowCtx.
  • Non-expandable work entry rows set keyboardReachable so the timestamp trigger gets tabindex="0" and remains keyboard-focusable.
  • Risk: transient live rows must not render a timestamp; tests assert this, but check PlainWorkEntryRow and WorkGroupToggleTimelineRow rendering paths if new row types are added.

Macroscope summarized 0970b00.

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>
@coderabbitai

coderabbitai Bot commented Aug 29, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 3ed7ca62-a315-418d-8822-de0a1e17b82b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Aug 29, 2026
@macroscopeapp

macroscopeapp Bot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at ab17caf

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant