local time for traces, end date when agent is done running in traces#1903
local time for traces, end date when agent is done running in traces#1903shagun-singh-inkeep merged 4 commits intomainfrom
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
🦋 Changeset detectedLatest commit: 28a9537 The changes in this PR will be included in the next version bump. This PR includes changesets to release 10 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
No docs changes detected. This PR improves the Traces UI by displaying timestamps in the user's local timezone instead of UTC. The existing documentation describes what information is shown in traces without specifying timezone formatting, so no updates are needed. |
|
No docs changes detected. The Traces documentation ( |
There was a problem hiding this comment.
PR Review Summary
3 Key Findings | Risk: Low
🟠⚠️ Major (1) 🟠⚠️
- 🟠 Major:
page.tsx:263-267Tooltip displays raw UTC while card body shows formatted local time
🟡 Minor (2) 🟡
🟡 1) page.tsx:291-298 "Running…" state could be more informative
Issue: The "Running…" indicator shown for active conversations without an assistant response uses yellow text but lacks context about what it means or how long to expect.
Why: Users seeing "Running…" in yellow may wonder: Is this stuck? Is there an error? How long will it take? For an observability tool, ambiguous status indicators reduce confidence in the data.
Fix: Consider one of these improvements:
- Add a tooltip explaining the state:
title="Agent is processing. Refresh to check status." - Add a small spinner icon for visual consistency with other in-progress indicators (e.g.,
timeline-wrapper.tsx:163-165uses<Loader2 className="w-4 h-4 animate-spin" />) - Show elapsed time since conversation start to give context
Refs:
-
🟡 Minor:
conversation-list-item.tsx:52formatDateAgomissing{ local: true }for consistency with tooltip
💭 Consider (1) 💭
💭 1) system Cross-surface timezone consistency
Issue: The PR applies local time to traces but other observability surfaces (dataset runs, evaluation jobs, trigger invocations) continue displaying UTC. This is noted as an intentional scoping decision per the PR title "local time for traces".
Why: Users debugging across multiple surfaces may see inconsistent timestamps. However, this appears to be a deliberate phased approach.
Fix: If expanding local time to other surfaces is planned, consider documenting that intent. If traces should remain the only local-time surface, this is fine as-is.
💡 APPROVE WITH SUGGESTIONS
Summary: This is a nice UX improvement for the traces UI. The main issue to address is the tooltip/display timezone mismatch (see inline comment) — that's a clear inconsistency that could confuse users. The "Running…" state feedback and formatDateAgo consistency are minor polish items. Good use of the opt-in { local: true } pattern to avoid disrupting other surfaces. 🎉
Discarded (5)
| Location | Issue | Reason Discarded |
|---|---|---|
format-date.ts:86-128 |
formatDateAgo options parameter added but not used with { local: true } |
The option was added for API completeness; relative times are timezone-agnostic anyway. Low value finding. |
format-date.ts:23-25 |
Option pattern is consistent with codebase conventions | Positive finding — no action needed |
page.tsx:254-316 |
IIFE pattern creates function on every render | Acceptable pattern, keeps related logic co-located. Not a performance issue. |
page.tsx:291-298 |
Conditional rendering is correct | Positive finding — no issue identified |
format-date.ts:55-68 |
Intl.DateTimeFormat created on every call could be cached | Micro-optimization not needed for current usage patterns |
Reviewers (4)
| Reviewer | Returned | Main Findings | Consider | While You're Here | Inline Comments | Pending Recs | Discarded |
|---|---|---|---|---|---|---|---|
pr-review-product |
4 | 1 | 1 | 0 | 1 | 0 | 1 |
pr-review-consistency |
4 | 0 | 0 | 0 | 1 | 0 | 1 |
pr-review-frontend |
3 | 0 | 0 | 0 | 0 | 0 | 3 |
pr-review-standards |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Total | 11 | 1 | 1 | 0 | 2 | 0 | 5 |
| title={ | ||
| conversation.conversationStartTime | ||
| ? `Start: ${conversation.conversationStartTime}${showEndTime ? `\nEnd: ${conversation.conversationEndTime}` : ''}` | ||
| : 'Timing data not available' | ||
| } |
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
There was a problem hiding this comment.
PR Review Summary
Delta Re-review | Risk: Low
✅ Addressed Since Last Review
The MAJOR issue from the previous review has been resolved:
| Issue | Status |
|---|---|
| 🟠 Tooltip shows UTC while display shows local time | ✅ Fixed — tooltip now uses formatDateTime(..., { local: true }) |
The fix correctly formats both the start and end timestamps in the tooltip using the same { local: true } option as the card body, ensuring timezone consistency.
🕐 Pending Recommendations (2)
These items from the prior review remain unaddressed but are lower priority:
- 🟡
page.tsx:291-298"Running…" state could be more informative (consider adding tooltip or spinner) - 🟡
conversation-list-item.tsx:52formatDateAgomissing{ local: true }for consistency
✅ APPROVE
Summary: The critical tooltip/display timezone mismatch has been fixed. The remaining minor suggestions are polish items that can be addressed in a follow-up if desired. Nice UX improvement for traces! 🎉
Reviewers (0)
| Reviewer | Returned | Main Findings | Consider | While You're Here | Inline Comments | Pending Recs | Discarded |
|---|---|---|---|---|---|---|---|
| Total | 0 | 0 | 0 | 0 | 0 | 2 | 0 |
Note: Delta re-review — no subagents dispatched as the change was a targeted 3-line fix addressing the prior MAJOR issue.
There was a problem hiding this comment.
PR Review Summary
Delta Re-review | Risk: Low
✅ Changes Since Last Review
The latest commit (28a95372) addresses one of the previous MINOR recommendations by removing the "Running…" indicator entirely:
| Prior Issue | Resolution |
|---|---|
| 🟡 "Running…" state could be more informative | ✅ Removed — the component now simply omits the "End:" line when there's no assistant response yet |
This is a cleaner approach than adding a tooltip/spinner to the "Running…" state. Instead of showing potentially confusing in-progress text, the UI now shows only what's definitively known (start time) and adds the end time once the conversation actually completes. This reduces visual noise and eliminates ambiguity.
🕐 Pending Recommendations (1)
One minor item from the prior review remains:
- 🟡
conversation-list-item.tsx:52formatDateAgomissing{ local: true }— though relative times ("5 min ago") are timezone-agnostic, and the tooltip correctly uses local time, so this is low priority
✅ APPROVE
Summary: The PR is in good shape. The major tooltip/display timezone mismatch was fixed in a prior commit, and this latest commit cleanly addresses the "Running…" state feedback by removing it in favor of a simpler approach. The remaining formatDateAgo item is a minor polish suggestion that can be addressed in a follow-up if desired. Nice UX improvement for traces! 🎉
Reviewers (0)
| Reviewer | Returned | Main Findings | Consider | While You're Here | Inline Comments | Pending Recs | Discarded |
|---|---|---|---|---|---|---|---|
| Total | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
Note: Delta re-review — no subagents dispatched as the change was a targeted 7-line removal addressing a prior MINOR issue.
…aces (#1903) * local time for traces, end date when agent is done running * changeset * lint and claude comment * remove unneeded state
…1974) * updated test * added changeset * added tests * updated * tupecheck * few fixes for GenericPromptEditor/GenericJsonEditor (#1904) * few fixes for GenericPromptEditor/GenericJsonEditor * Add changeset for GenericPromptEditor/GenericJsonEditor layout fixes Co-authored-by: Dimitri POSTOLOV <undefined@users.noreply.github.com> * Update generic-prompt-editor.tsx --------- Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Dimitri POSTOLOV <undefined@users.noreply.github.com> * local time for traces, end date only when agent is done running in traces (#1903) * local time for traces, end date when agent is done running * changeset * lint and claude comment * remove unneeded state * updated tests * updated * updated tests * made a single transaction * renamed function * updated * updated tool results to have the tool call id * added changeset * address spicedb comments * reverted bad changes * removed --------- Co-authored-by: Dimitri POSTOLOV <dmytropostolov@gmail.com> Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Dimitri POSTOLOV <undefined@users.noreply.github.com> Co-authored-by: shagun-singh-inkeep <shagun.singh@inkeep.com> Co-authored-by: omar-inkeep <omar@inkeep.com>
…1974) * updated test * added changeset * added tests * updated * tupecheck * few fixes for GenericPromptEditor/GenericJsonEditor (#1904) * few fixes for GenericPromptEditor/GenericJsonEditor * Add changeset for GenericPromptEditor/GenericJsonEditor layout fixes Co-authored-by: Dimitri POSTOLOV <undefined@users.noreply.github.com> * Update generic-prompt-editor.tsx --------- Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Dimitri POSTOLOV <undefined@users.noreply.github.com> * local time for traces, end date only when agent is done running in traces (#1903) * local time for traces, end date when agent is done running * changeset * lint and claude comment * remove unneeded state * updated tests * updated * updated tests * made a single transaction * renamed function * updated * updated tool results to have the tool call id * added changeset * address spicedb comments * reverted bad changes * removed --------- Co-authored-by: Dimitri POSTOLOV <dmytropostolov@gmail.com> Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Dimitri POSTOLOV <undefined@users.noreply.github.com> Co-authored-by: shagun-singh-inkeep <shagun.singh@inkeep.com> Co-authored-by: omar-inkeep <omar@inkeep.com>
No description provided.