[FEATURE] Job/agent list shows only a relative age (9d, 45d) — surface an absolute date too
What I'm asking for
In the background-job / agent list (fullscreen job view, tui: "fullscreen"), the right-hand column shows only a relative age — now, 16m, 5h, 9d, 45d. Please show an absolute date alongside it (or offer it as a setting / toggle).
Why the relative age alone isn't enough
I run a lot of background jobs — right now 30 in Needs input, spanning 16m to 45d. The relative age answers "how stale" but not "when", and "when" is what I actually need to act:
- I can't tell whether a
9djob predates or postdates a release, a sprint boundary, or a specific incident.2026-08-10 (Mon)tells me instantly;9dmakes me do arithmetic against today's date. - Several jobs are blocked waiting on me, and I want to correlate them with what I was doing that day (a Jira ticket, a release, a Slack thread). The relative age destroys exactly the information needed for that correlation.
- Buckets collapse:
13d,14d,15d,15d,16dare five different days that read as one blob. Multiple jobs from the same day are indistinguishable from jobs a day apart. - Once the unit rolls over to days, precision is gone — a
2djob could be 48h or 71h old. - The list is read at a glance for triage. Anything requiring mental date math gets skipped.
The data is already there
~/.claude/jobs/<id>/state.json already stores exact ISO timestamps, so this is a rendering choice, not a data problem:
{
"createdAt": "2026-08-18T11:40:36.721Z",
"updatedAt": "2026-08-18T14:14:23.481Z",
"firstTerminalAt": "2026-08-18T14:14:23.481Z",
"state": "blocked",
"name": "mc-4510 bug verification"
}
I confirmed the age column is produced by a hardcoded formatter of the shape now → ${m}m → ${h}h → ${Math.floor(h/24)}d, and I could find no setting that changes it (nothing relevant in settings.json; the only timestampFormat strings in the binary belong to the bundled AWS SDK, and tui accepts only the fullscreen value).
Suggested behavior
Any of these would solve it — in order of preference:
- Both, inline:
2026-08-10 13:22 (Mon) 9d— the age stays scannable, the date is there when you need it. Same-day jobs render astoday/yesterday. - A setting, e.g.
"jobListTimestamp": "relative" | "absolute" | "both"(defaultrelative, so nothing changes for anyone who likes it as-is). - A keypress toggle in the job view that cycles relative → absolute → both.
- At minimum, the absolute timestamp on the focused/selected row (in a detail line or footer).
Also worth considering: make it explicit which timestamp the column reflects. Today it appears to track last activity, but createdAt and updatedAt are very different questions for a long-blocked job ("when did I start this?" vs "when did it last move?"), and the column doesn't say which one you're looking at.
Workaround (for anyone who hits this before it's fixed)
Reading ~/.claude/jobs/*/state.json directly and printing the same three sections with updatedAt formatted absolutely gets you there; the ages come out identical to the built-in view, which confirms it's the same underlying data.
Environment
- Claude Code 2.1.234 (issue also present in 2.1.202)
- macOS (Darwin 25.5.0), arm64,
tui: "fullscreen" - ~57 jobs on disk (30 blocked / 25 done / 2 working)
Related (not duplicates)
- #82395 — sort the completed background-job list by last activity, not creation time (same list, ordering rather than display; the "which timestamp is this?" ambiguity above overlaps)
- #72746 — Agent View "last changed" timestamp reflects file mtime instead of actual conversation activity (timestamp correctness; this issue is about timestamp legibility)
- #77182 — show repository/project name in the agent view (another "this list needs one more column of context" request)