fix: display relative time in intel status output (#2132)

* fix: display relative time instead of UTC in intel status output

The `updated_at` timestamps in `gsd-tools intel status` were displayed
as raw ISO/UTC strings, making them appear to show the wrong time in
non-UTC timezones. Replace with fuzzy relative times ("5 minutes ago",
"1 day ago") which are timezone-agnostic and more useful for freshness.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* test: add regression tests for timeAgo utility

Covers boundary values (seconds/minutes/hours/days/months/years),
singular vs plural formatting, and future-date edge case.

Addresses review feedback on #2132.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Andreas Brauchli
2026-04-12 13:54:17 -06:00
committed by GitHub
parent b896db6f91
commit 72af8cd0f7
3 changed files with 137 additions and 1 deletions

View File

@@ -1045,7 +1045,15 @@ async function runCommand(command, args, cwd, raw, defaultValue) {
core.output(intel.intelQuery(term, planningDir), raw);
} else if (subcommand === 'status') {
const planningDir = path.join(cwd, '.planning');
core.output(intel.intelStatus(planningDir), raw);
const status = intel.intelStatus(planningDir);
if (!raw && status.files) {
for (const file of Object.values(status.files)) {
if (file.updated_at) {
file.updated_at = core.timeAgo(new Date(file.updated_at));
}
}
}
core.output(status, raw);
} else if (subcommand === 'diff') {
const planningDir = path.join(cwd, '.planning');
core.output(intel.intelDiff(planningDir), raw);