Skip to content

fix(web): keep hover timestamps available while commands run - #25685

Closed
BilalIrfanContact wants to merge 2 commits into
pingdotgg:mainfrom
BilalIrfanContact:t3/preserve-hover-timestamps
Closed

BilalIrfanContact wants to merge 2 commits into
pingdotgg:mainfrom
BilalIrfanContact:t3/preserve-hover-timestamps

Conversation

@BilalIrfanContact

@BilalIrfanContact BilalIrfanContact commented Oct 26, 2026 •

Copy link
Copy Markdown

Problem

A finished assistant message loses its hover timestamp while a command in the same response is still running. The timestamp only becomes available once the whole response ends.

Fixes #25466.

Change

Show the latest finished reply's timestamp while the response continues. Copy and fork controls stay hidden until the response finishes, and messages that are still streaming keep their existing behavior. This fixes web and desktop; mobile has no hover interaction and is unchanged.

Scope and approval

This is a small, focused fix for the obvious timestamp visibility bug reported in #25466. It changes only the timeline's metadata visibility and adds a focused regression test, with no unrelated cleanup or product changes.

Verification

  • Added a regression covering a finished reply followed by a running command, including the still-streaming case. All 87 tests in MessagesTimeline.logic.test.ts pass.
  • Manually tested in the dev web app: hover over a finished assistant reply while its command is still running and confirm the timestamp remains available.
  • Screen recording attached.
  • vp run check:changed upstream/main passed: format, lint, both knip checks, affected-package typechecks, and all 87 focused tests. Full suites and builds remain for CI.
t3code.25466.mp4

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Oct 26, 2026
@coderabbitai

coderabbitai Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between 500c29b and b082893.

Files selected for processing: 2
  • apps/web/src/components/chat/MessagesTimeline.logic.test.ts
  • apps/web/src/components/chat/MessagesTimeline.logic.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 7 remain after this review.

Walkthrough

The timeline now shows the timestamp for a finished terminal assistant reply while its command remains in progress. Assistant metadata and copy controls stay hidden in that state. Streaming replies continue to hide the timestamp.

Changes: Assistant timestamp visibility

Layer / File(s) Summary
Calculate and render timestamp visibility
apps/web/src/components/chat/MessagesTimeline.logic.ts, apps/web/src/components/chat/TimelineAssistantRows.tsx, apps/web/src/components/chat/MessagesTimeline.logic.test.ts
The row model sets showAssistantTimestamp for a finished terminal assistant message whose response is still in progress. The assistant row renders timestamp-only metadata with copying disabled. Row equality compares the new flag. A regression test covers streaming and non-streaming replies.

Priority: Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix · Severity of issue fixed: Low

Possibly related PRs

Suggested reviewers: juliusmarminge, t3dotgg

Merge Risk: Minimal · up to b0828

The change is mergeable with no identified functional or availability risk.

Pre-merge checks: Passed 4
Check name Status Explanation
Title check Passed The title "fix(web): keep hover timestamps available while commands run" matches the main change in the changeset: finished assistant replies keep their hover timestamp while a command in the same res…
Description check Passed The description covers the problem, the change, scope and approval, and verification. It links issue #25466 and states that the change is limited to timeline metadata visibility. The verification sect…
Linked Issues check Passed Issue #25466 requires every terminal assistant text message to show its hover timestamp, including the last message in a turn while a command runs. The whole-PR diff adds showAssistantTimestamp in `…
Out of Scope Changes check Passed The whole-PR diff changes three areas. MessagesTimeline.logic.ts derives the new visibility flag and adds it to the stable-row comparison. TimelineAssistantRows.tsx adds a fallback branch that ren…
Full details: Title check

Explanation

The title "fix(web): keep hover timestamps available while commands run" matches the main change in the changeset: finished assistant replies keep their hover timestamp while a command in the same response is still running. It follows the conventional commit format and is specific, so it passes.

Full details: Description check

Explanation

The description covers the problem, the change, scope and approval, and verification. It links issue #25466 and states that the change is limited to timeline metadata visibility. The verification section lists a focused regression test, the 87 passing tests, a manual check in the dev web app, and a screen recording. The description does not follow the template's approval requirement fully. It gives a justification for a small, focused fix of an obvious bug but does not include the maintainer approval comment or a triaged issue link beyond the bug report. The description is mostly complete, so it passes.

Full details: Linked Issues check

Explanation

Issue #25466 requires every terminal assistant text message to show its hover timestamp, including the last message in a turn while a command runs. The whole-PR diff adds showAssistantTimestamp in MessagesTimeline.logic.ts. The flag is true when the message is terminal, its response is still active (assistantResponseStillInProgress), and the message is not streaming. AssistantTimelineRow in TimelineAssistantRows.tsx renders AssistantMessageMeta for this flag when showAssistantMeta is false. AssistantMessageMeta renders the timestamp only when !message.streaming. The fallback passes showCopyButton={false} and omits projectedItem, so the copy button, fork button, and status badge stay hidden. The row-stability check includes the new flag, so row updates are not missed. Settled replies keep the existing relocated assistant-meta path. Streaming replies keep their existing behavior. The PR summary reports a regression test for this case. I did not read the test file, so test coverage is taken from the summary.

Full details: Out of Scope Changes check

Explanation

The whole-PR diff changes three areas. MessagesTimeline.logic.ts derives the new visibility flag and adds it to the stable-row comparison. TimelineAssistantRows.tsx adds a fallback branch that renders the existing metadata component with copy disabled. The focused test file adds a regression test. All changes support the timestamp visibility requirement from #25466. The change to isTerminalAssistantMessage only refactors the existing expression for showAssistantMeta and keeps its value. No unrelated product behavior or cleanup appears in the inspected hunks.

Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

# Conflicts:
#	apps/web/src/components/chat/MessagesTimeline.logic.ts
@t3-code-bot

t3-code-bot Bot commented Oct 30, 2026

Copy link
Copy Markdown
Contributor

closing at @StiensWout's request under Provide evidence for the changed behavior.

Makes the hover timestamp visible on a finished assistant reply while a command continues. The only supplied visual artifact is a 23-second recording of the implemented behavior; sampled frames show the timestamp while sleep is running and after completion, with no baseline showing the disappearing timestamp. No clear before/after screenshots or baseline comparison is attached in the complete PR conversation.

submission evidence: "Screen recording attached."

Add a matching baseline showing the missing hover timestamp during a running command alongside the implemented result, with clear before/after screenshots. Keep the existing recording as supplementary interaction evidence.

thanks for trying to help improve t3 code. if you think this closure was a mistake, please open a fresh pr addressing the requirement above, and link back to this one.

@t3-code-bot t3-code-bot Bot closed this Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S 10-29 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Assistant message hover timestamp missing while a command is still running

1 participant