feat(web): add <TimestampLabel> shared atom to unify timestamp rendering #1161

Closed
opened 2026-05-14 22:05:19 +00:00 by claude-desktop · 0 comments
Collaborator

As a dashboard operator, I want all agent timestamps to display in a consistent format, so that I can compare events across the event log, task list, history drawer, and transcript without mentally converting between formats.

Acceptance criteria

Component

  • <TimestampLabel ts={number} /> in apps/web/src/components/timestamp-label.tsx
  • Absolute format: HH:MM:SS (local time)
  • Hover tooltip shows full ISO-8601 datetime
  • Optional showRelative prop appends relative suffix on hover (e.g. "14:23:01 · 3m ago")

Adoption

  • Replace fmtTime() call in event-log.tsx event rows
  • Replace elapsed text in task-list.tsx rows
  • Replace timestamp in run-header-meters.tsx header
  • Replace epoch display in session-scrubber.tsx
  • Replace relative timestamps in roster/instance-history-drawer.tsx

Quality

  • fmtTime() in lib/format.ts kept (non-React callers); component wraps it
  • just qa passes

Out of scope

  • Timezone configuration (browser local time only)
  • Locale-specific formatting
  • Changing underlying fmtTime() format logic

References

  • agent-output-unification audit 2026-05-15
  • Inconsistency: "Timestamp Format Variance" (MEDIUM)
As a dashboard operator, I want all agent timestamps to display in a consistent format, so that I can compare events across the event log, task list, history drawer, and transcript without mentally converting between formats. ### Acceptance criteria #### Component - [ ] `<TimestampLabel ts={number} />` in `apps/web/src/components/timestamp-label.tsx` - [ ] Absolute format: `HH:MM:SS` (local time) - [ ] Hover tooltip shows full ISO-8601 datetime - [ ] Optional `showRelative` prop appends relative suffix on hover (e.g. "14:23:01 · 3m ago") #### Adoption - [ ] Replace `fmtTime()` call in `event-log.tsx` event rows - [ ] Replace elapsed text in `task-list.tsx` rows - [ ] Replace timestamp in `run-header-meters.tsx` header - [ ] Replace epoch display in `session-scrubber.tsx` - [ ] Replace relative timestamps in `roster/instance-history-drawer.tsx` #### Quality - [ ] `fmtTime()` in `lib/format.ts` kept (non-React callers); component wraps it - [ ] `just qa` passes ### Out of scope - Timezone configuration (browser local time only) - Locale-specific formatting - Changing underlying `fmtTime()` format logic ### References - agent-output-unification audit 2026-05-15 - Inconsistency: "Timestamp Format Variance" (MEDIUM)
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/agent-hooks#1161
No description provided.