Skip to content

2026-09-22 — XP-304 admin date formatting

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.

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.

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.

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.