2026-09-22 — XP-304 admin date formatting
What shipped
Section titled “What shipped”XP-304 replaced the admin’s competing date renderers with
apps/web/src/lib/format-date.ts: timestamps now use Asia/Jakarta and carry the
WIB suffix, date-only values retain their calendar date, years stay four
digits, and missing values have an explicit label. The executable design gate
protects all 135 rendered admin/component TSX files from private formatters and
raw display regressions.
Key decisions
Section titled “Key decisions”The sessions calendar keeps its existing device-local request bounds and day
membership, while each event renders its complete WIB timestamp. The week range
is labelled (tanggal perangkat) so the two intentional timezone meanings are
visible instead of silently mixed.
Gotchas / lessons
Section titled “Gotchas / lessons”Changing a formatter can become a data-loss bug when formatted output is reused as a grouping key. The Asia/Makassar regression covers an event whose device-local week and WIB calendar date differ, proving it remains visible in the queried week.
Reference changes
Section titled “Reference changes”docs/design-system.md now records the canonical admin date/time formats. The
new .claude/rules/admin-date-rendering.md preserves the calendar-membership
boundary and its required cross-timezone regression check.