fix(tui-go): render event/activity times in local time, not UTC

formatTime forced .UTC(), so every event-log timestamp and the welcome "recent"
times read hours off the operator's wall clock — and inconsistent with the local
date just added to the session list. time.UnixMilli is already local, so the
explicit .UTC() was the bug; drop it. No test asserts a clock string (the render
matrix only checks event type/detail), so this is display-only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-22 10:14:51 +00:00
parent 4e4d7c186a
commit 6bee3a7d31
2 changed files with 7 additions and 4 deletions
@@ -45,9 +45,9 @@ const (
surfaceStatusBar // top status bar (renderStatus)
)
// fixedNow is a deterministic timestamp used for every event carrying OccurredAt, so
// formatTime output is stable across runs/machines. (Events that fall back to
// nowMillis() are asserted only on their type/detail text, never the clock.)
// fixedNow is a deterministic timestamp used for every event carrying OccurredAt. The
// matrix asserts only event type/detail text, never the rendered clock — formatTime is
// local (machine-TZ dependent), so the time string is intentionally not part of any golden.
const fixedNow int64 = 1_700_000_000_000
// matrixCase is one event/entry kind in the matrix.
+4 -1
View File
@@ -22,8 +22,11 @@ func containsFold(haystack, needle string) bool {
return strings.Contains(strings.ToLower(haystack), strings.ToLower(needle))
}
// formatTime renders an event/activity instant as a local wall-clock time, matching the
// operator's clock (and the local date shown in the session list). It was previously forced
// to UTC, so every event timestamp read hours off the user's actual time.
func formatTime(epochMillis int64) string {
return time.UnixMilli(epochMillis).UTC().Format("15:04:05")
return time.UnixMilli(epochMillis).Format("15:04:05")
}
// inferCategory maps an event type string to a display category, matching the