Preserve issue deadline calendar days across mobile time zones #719

Closed
opened 2026-08-13 07:50:48 +00:00 by timmy · 0 comments
Owner

User impact

A deadline chosen as a calendar day is currently serialized as 23:59:59Z and then interpreted in browser-local time. Positive-offset mobile users can choose one date and see/group it as the next day. The mismatch affects create, offline delivery, issue editing, Agenda replanning, and deadline reminders.

Scope

Treat Gitea issue due dates as calendar-day values end to end: creation/outbox/background sync, My Work and Agenda grouping/labels, issue-sheet display, Agenda replanning, and per-device reminder eligibility.

Acceptance tests

  • In Asia/Tokyo, a selected 2026-08-13 remains August 13 after normal and offline creation.
  • My Work/Agenda classify canonical due-day values identically in positive and negative UTC offsets.
  • Tomorrow and chosen-date replanning preserve the selected local calendar day.
  • Deadline digests evaluate due days against each device's local calendar.
  • Focused tests and the full suite pass.

Evidence / non-duplication

Current origin/main (9ec8817) still appends T23:59:59Z in all create/replan paths and parses due dates through local Date objects. All 362 historical issue titles and recent due-date/Agenda commits were reviewed; prior issues delivered editing, Agenda, replanning, and reminders, but none addressed date-only preservation or timezone day drift.

## User impact A deadline chosen as a calendar day is currently serialized as `23:59:59Z` and then interpreted in browser-local time. Positive-offset mobile users can choose one date and see/group it as the next day. The mismatch affects create, offline delivery, issue editing, Agenda replanning, and deadline reminders. ## Scope Treat Gitea issue due dates as calendar-day values end to end: creation/outbox/background sync, My Work and Agenda grouping/labels, issue-sheet display, Agenda replanning, and per-device reminder eligibility. ## Acceptance tests - In `Asia/Tokyo`, a selected `2026-08-13` remains August 13 after normal and offline creation. - My Work/Agenda classify canonical due-day values identically in positive and negative UTC offsets. - Tomorrow and chosen-date replanning preserve the selected local calendar day. - Deadline digests evaluate due days against each device's local calendar. - Focused tests and the full suite pass. ## Evidence / non-duplication Current `origin/main` (`9ec8817`) still appends `T23:59:59Z` in all create/replan paths and parses due dates through local `Date` objects. All 362 historical issue titles and recent due-date/Agenda commits were reviewed; prior issues delivered editing, Agenda, replanning, and reminders, but none addressed date-only preservation or timezone day drift.
timmy self-assigned this 2026-08-13 07:50:48 +00:00
timmy closed this issue 2026-08-13 07:58:33 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 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: stackchain/stackchain-dashboard#719
No description provided.