fix: include timezone offset in all displayed timestamps (closes #116) #120

Merged
sneak merged 2 commits from fix/issue-116-timestamp-timezone into main 2026-03-01 13:36:05 +01:00
Collaborator

All isoDate() functions now output proper ISO 8601 format with timezone offset (e.g. 2026-02-28T15:30:00-08:00) instead of bare datetime strings. Also uses T separator per ISO 8601.

closes #116

All `isoDate()` functions now output proper ISO 8601 format with timezone offset (e.g. `2026-02-28T15:30:00-08:00`) instead of bare datetime strings. Also uses `T` separator per ISO 8601. closes #116
clawbot added the
needs-review
bot
labels 2026-03-01 01:15:04 +01:00
clawbot added 1 commit 2026-03-01 01:15:04 +01:00
fix: include timezone offset in all displayed timestamps
All checks were successful
check / check (push) Successful in 21s
0616b62f63
All isoDate() functions now output proper ISO 8601 format with timezone
offset (e.g. 2026-02-28T15:30:00-08:00) instead of bare datetime strings.
Also uses 'T' separator per ISO 8601.

closes #116
Author
Collaborator

Changes

Fixed both isoDate() functions (in helpers.js and addressDetail.js) to include timezone offset in ISO 8601 format.

Before: 2026-02-28 15:30:00
After: 2026-02-28T15:30:00-08:00

Also changed the date/time separator from space to T per ISO 8601.

docker build . passes

## Changes Fixed both `isoDate()` functions (in `helpers.js` and `addressDetail.js`) to include timezone offset in ISO 8601 format. **Before:** `2026-02-28 15:30:00` **After:** `2026-02-28T15:30:00-08:00` Also changed the date/time separator from space to `T` per ISO 8601. `docker build .` passes ✅
clawbot self-assigned this 2026-03-01 01:16:49 +01:00
clawbot added
merge-ready
and removed
needs-review
labels 2026-03-01 01:17:46 +01:00
clawbot removed their assignment 2026-03-01 01:17:47 +01:00
sneak was assigned by clawbot 2026-03-01 01:17:47 +01:00
sneak added 1 commit 2026-03-01 01:21:42 +01:00
Merge branch 'main' into fix/issue-116-timestamp-timezone
All checks were successful
check / check (push) Successful in 8s
b755eb4899
Author
Collaborator

Review PASS

Changes reviewed: Two isoDate() functions in addressDetail.js and helpers.js updated to include timezone offset.

Correctness: The timezone offset logic is correct — uses -getTimezoneOffset() to get offset in minutes, formats as ±HH:MM. The T separator is added per ISO 8601. Output example: 2026-02-28T15:30:00-08:00.

Scope: Only the two isoDate() functions are modified. No linter config, test, or Makefile changes. No new dependencies.

Build: docker build . passes (lint, format check, build all green).

Edge cases: Handles positive/negative offsets and zero offset (+00:00) correctly. Minutes component handled for half-hour timezones (e.g. India +05:30).

Labeling merge-ready.

## ✅ Review PASS **Changes reviewed:** Two `isoDate()` functions in `addressDetail.js` and `helpers.js` updated to include timezone offset. **Correctness:** The timezone offset logic is correct — uses `-getTimezoneOffset()` to get offset in minutes, formats as `±HH:MM`. The `T` separator is added per ISO 8601. Output example: `2026-02-28T15:30:00-08:00`. **Scope:** Only the two `isoDate()` functions are modified. No linter config, test, or Makefile changes. No new dependencies. **Build:** `docker build .` passes (lint, format check, build all green). **Edge cases:** Handles positive/negative offsets and zero offset (+00:00) correctly. Minutes component handled for half-hour timezones (e.g. India +05:30). Labeling `merge-ready`.
clawbot removed the
bot
label 2026-03-01 01:22:37 +01:00
sneak was unassigned by clawbot 2026-03-01 01:22:53 +01:00
clawbot self-assigned this 2026-03-01 01:22:53 +01:00
clawbot removed their assignment 2026-03-01 01:23:02 +01:00
sneak was assigned by clawbot 2026-03-01 01:23:02 +01:00
Owner

add a "UTC Timestamps" toggle in Settings in the Display section, defaulted to off, that shows all timestamps everywhere in the app as UTC when enabled.

add a "UTC Timestamps" toggle in Settings in the Display section, defaulted to off, that shows all timestamps *everywhere* in the app as UTC when enabled.
sneak removed their assignment 2026-03-01 12:33:28 +01:00
sneak added
needs-rework
bot
and removed
merge-ready
labels 2026-03-01 12:33:34 +01:00
clawbot self-assigned this 2026-03-01 12:33:54 +01:00
clawbot force-pushed fix/issue-116-timestamp-timezone from b755eb4899 to a72359432b 2026-03-01 12:36:53 +01:00 Compare
clawbot added
needs-review
and removed
needs-rework
labels 2026-03-01 12:37:00 +01:00
clawbot removed their assignment 2026-03-01 12:37:05 +01:00
Author
Collaborator

Rework complete:

  • Added "UTC Timestamps" toggle in Settings → Display section (checkbox, defaults to off)
  • Stored as utcTimestamps in state, persisted across sessions
  • Updated all three isoDate() functions (helpers.js, addressDetail.js, addressToken.js) to use UTC methods + Z suffix when enabled, local time + timezone offset when disabled
  • Also fixed addressToken.js which was previously missing timezone offset in local mode
  • docker build . passes (tests + lint + build)

Ready for review.

Rework complete: - Added "UTC Timestamps" toggle in Settings → Display section (checkbox, defaults to off) - Stored as `utcTimestamps` in state, persisted across sessions - Updated all three `isoDate()` functions (helpers.js, addressDetail.js, addressToken.js) to use UTC methods + `Z` suffix when enabled, local time + timezone offset when disabled - Also fixed addressToken.js which was previously missing timezone offset in local mode - `docker build .` passes (tests + lint + build) Ready for review.
clawbot added
merge-ready
and removed
needs-review
labels 2026-03-01 12:37:54 +01:00
sneak was assigned by clawbot 2026-03-01 12:37:55 +01:00
clawbot added
needs-review
and removed
merge-ready
labels 2026-03-01 13:07:32 +01:00
sneak was unassigned by clawbot 2026-03-01 13:07:38 +01:00
clawbot self-assigned this 2026-03-01 13:07:38 +01:00
Author
Collaborator

Review PASS

Issue #116: Timestamps must always include timezone. Fixed.

Scope check:

  • Three isoDate() functions updated (helpers.js, addressDetail.js, addressToken.js) to append timezone offset (±HH:MM) in local mode
  • UTC toggle added in Settings → Display, persisted as utcTimestamps in state, uses UTC methods + Z suffix when enabled
  • UI checkbox in index.html, wired in settings.js
  • State default, save, and load properly handle utcTimestamps
  • No linter config, Makefile, or test modifications

Correctness: Timezone offset math is correct (-getTimezoneOffset(), sign handling, padding). UTC path uses proper getUTC* methods. Half-hour timezone offsets handled. ISO 8601 T separator added.

Build: docker build . passes (lint + fmt-check + tests + build).

Note: The three identical isoDate() functions are pre-existing duplication, not introduced by this PR. Could be consolidated in a future refactor.

Branch is up to date with main. Labeling merge-ready.

## ✅ Review PASS **Issue #116:** Timestamps must always include timezone. ✅ Fixed. **Scope check:** - Three `isoDate()` functions updated (helpers.js, addressDetail.js, addressToken.js) to append timezone offset (`±HH:MM`) in local mode - UTC toggle added in Settings → Display, persisted as `utcTimestamps` in state, uses UTC methods + `Z` suffix when enabled - UI checkbox in index.html, wired in settings.js - State default, save, and load properly handle `utcTimestamps` - No linter config, Makefile, or test modifications **Correctness:** Timezone offset math is correct (`-getTimezoneOffset()`, sign handling, padding). UTC path uses proper `getUTC*` methods. Half-hour timezone offsets handled. ISO 8601 `T` separator added. **Build:** `docker build .` passes (lint + fmt-check + tests + build). **Note:** The three identical `isoDate()` functions are pre-existing duplication, not introduced by this PR. Could be consolidated in a future refactor. Branch is up to date with main. Labeling `merge-ready`.
clawbot added
merge-ready
and removed
needs-review
bot
labels 2026-03-01 13:09:13 +01:00
clawbot removed their assignment 2026-03-01 13:09:19 +01:00
sneak was assigned by clawbot 2026-03-01 13:09:19 +01:00
sneak was unassigned by clawbot 2026-03-01 13:09:22 +01:00
sneak added 1 commit 2026-03-01 13:35:28 +01:00
Merge branch 'main' into fix/issue-116-timestamp-timezone
All checks were successful
check / check (push) Successful in 22s
a388100262
sneak merged commit a182aa534b into main 2026-03-01 13:36:05 +01:00
sneak deleted branch fix/issue-116-timestamp-timezone 2026-03-01 13:36:05 +01:00
Sign in to join this conversation.
No reviewers
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: sneak/AutistMask#120
No description provided.