mirror of
https://github.com/jamiepine/voicebox.git
synced 2026-09-15 04:40:40 -07:00
* fix(ui): parse naive-UTC timestamps consistently in formatAbsoluteDate Backend timestamps are naive UTC (Python `datetime.utcnow()`) and are serialized without a timezone suffix. `formatDate` already normalizes these by appending `Z` before parsing, but `formatAbsoluteDate` called `new Date(date)` directly. Per the ES spec, a timezone-less date-time string is parsed as local time, so absolute timestamps were shown off by the viewer's UTC offset (e.g. +9h in JST) — and disagreed with the relative time rendered by `formatDate` for the same value (visible in the Captures detail panel, which uses both on `capture.created_at`). Extract the normalization into a shared `parseServerDate` helper and use it in both formatters. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]> * docs(format): clarify parseServerDate comment on date-only vs date-time parsing ECMAScript parses date-only strings ("2026-07-23") as UTC but timezone-less date-time strings ("2026-07-23T10:00:00") as local time. The backend emits the latter, which is the case this helper normalizes. Corrects the comment per PR review feedback. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]> * docs(format): trim parseServerDate comment to match surrounding style Reduce the multi-line explanation to a single why-comment consistent with other utils comments. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]> --------- Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>