Skip to content

Commit dbdf7b5

Browse files
abhizipstackclaude
andcommitted
fix(run-history): human-readable Triggered column + insights header
The Triggered column was rendering the raw ISO timestamp straight from the API, which is hard to read at a glance. Now the cell shows a locale-formatted date ("Oct 14, 2026, 3:25 PM") with a muted relative time below ("2h ago" / "in 3h"); the full ISO sits in a native tooltip for machine-precise inspection. The expanded insights panel's header reuses the same formatting. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 512a9f3 commit dbdf7b5

1 file changed

Lines changed: 34 additions & 9 deletions

File tree

frontend/src/ide/run-history/Runhistory.jsx

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,11 @@ import { orgStore } from "../../store/org-store";
2727
import { useNotificationService } from "../../service/notification-service";
2828
import { runHistoryTagColor } from "../../common/constants";
2929
import { usePagination } from "../../widgets/hooks/usePagination";
30-
import { getTooltipText } from "../../common/helpers";
30+
import {
31+
getTooltipText,
32+
getRelativeTime,
33+
formatDateTime,
34+
} from "../../common/helpers";
3135
import "./RunHistory.css";
3236

3337
/* ─── Parse duration string to milliseconds for sorting ─── */
@@ -253,9 +257,25 @@ const Runhistory = () => {
253257
return new Date(a.start_time) - new Date(b.start_time);
254258
},
255259
defaultSortOrder: "descend",
256-
render: (text) => (
257-
<Typography.Text>{text || "Not started yet"}</Typography.Text>
258-
),
260+
render: (text) => {
261+
if (!text) {
262+
return (
263+
<Typography.Text type="secondary">
264+
Not started yet
265+
</Typography.Text>
266+
);
267+
}
268+
return (
269+
<Tooltip title={new Date(text).toISOString()}>
270+
<Space direction="vertical" size={0}>
271+
<Typography.Text>{formatDateTime(text)}</Typography.Text>
272+
<Typography.Text type="secondary" style={{ fontSize: 11 }}>
273+
{getRelativeTime(text)}
274+
</Typography.Text>
275+
</Space>
276+
</Tooltip>
277+
);
278+
},
259279
},
260280
{
261281
title: "Duration",
@@ -432,12 +452,17 @@ const Runhistory = () => {
432452
{meta.label}
433453
</Typography.Text>
434454
{record.start_time && (
435-
<Typography.Text
436-
type="secondary"
437-
style={{ fontSize: 12 }}
455+
<Tooltip
456+
title={new Date(record.start_time).toISOString()}
438457
>
439-
· {record.start_time}
440-
</Typography.Text>
458+
<Typography.Text
459+
type="secondary"
460+
style={{ fontSize: 12 }}
461+
>
462+
· {formatDateTime(record.start_time)} (
463+
{getRelativeTime(record.start_time)})
464+
</Typography.Text>
465+
</Tooltip>
441466
)}
442467
{record.duration && (
443468
<Typography.Text

0 commit comments

Comments
 (0)