#3600·sure

Improvement: make the debug log's timezone explicit

Author: joshiarnavCreated Sep 16, 2026Updated Sep 16, 2026

Summary

The Settings → Debug log table renders created_at with l(entry.created_at, format: :long) inside Time.use_zone(Current.family.timezone). When the family has no timezone configured (Settings → Preferences → Timezone is blank, which is the default after onboarding) that resolves to the app default, UTC, with nothing on the page saying so. Metadata JSON in the expandable cell contains raw ISO-8601 UTC timestamps (enqueued_at, provider timestamps, timezone: "UTC" from ActiveJob) regardless of the family zone.

When correlating with host logs (journald / Sidekiq output in local time) this reads as "the debug log is off by N hours" — e.g. a job visible at 21:00 local in journalctl appearing after 01:00 the next day in the debug log.

Proposal

  • Show the effective timezone in the debug log table header or column header: "Time (America/New_York)" / "Time (UTC)".
  • When the family timezone is blank, add a one-line hint linking to Settings → Preferences.
  • Optional: note in the metadata disclosure that timestamps inside metadata are raw provider/job values in UTC.

Acceptance criteria

  • Debug log page states the timezone used for the Time column.
  • Blank family timezone shows a hint to set one.
  • No change to how timestamps are stored or captured.

Investigation notes (for reviewers)

  • Localize#switch_timezoneTime.use_zone(family.timezone || Time.zone); config.time_zone is unset (UTC).
  • _log_table.html.erb:19 unchanged since 2026-05.
  • Callback ordering is correct (Authentication before Localize), so Current.family is available when the zone is resolved.