docs(proto): occurrence_date is a local date, not a UTC key #203

Merged
nalum merged 1 commit from docs/occurrence-date-zone into main 2026-08-26 18:32:54 +00:00
Owner

Closes #198.

The comment on Event.occurrence_date called the slot key UTC. It never
was. domain.ExpandEventOccurrences formats it from a time already
converted into the zone the request carried, and validSlot parses it back
with ParseInLocation against that same zone.

A client that believed the comment would compute the key in UTC and,
anywhere east or west of it, address a different day — splitting or
cancelling the wrong occurrence. The new wording also keeps the key apart
from Event.time_zone, which is a real but unrelated field the reminder
ticker reads.

Comment only, plus the regenerated artifacts that carry it.

🤖 Generated with Claude Code

Closes #198. The comment on `Event.occurrence_date` called the slot key UTC. It never was. `domain.ExpandEventOccurrences` formats it from a time already converted into the zone the request carried, and `validSlot` parses it back with `ParseInLocation` against that same zone. A client that believed the comment would compute the key in UTC and, anywhere east or west of it, address a different day — splitting or cancelling the wrong occurrence. The new wording also keeps the key apart from `Event.time_zone`, which is a real but unrelated field the reminder ticker reads. Comment only, plus the regenerated artifacts that carry it. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
docs(proto): occurrence_date is a local date, not a UTC key
All checks were successful
check / commits (pull_request) Successful in 7s
check / go (pull_request) Successful in 2m44s
android / build (pull_request) Successful in 6m33s
check / web (pull_request) Successful in 4m33s
check / report (pull_request) Successful in 6s
android / report (pull_request) Successful in 5s
09451c05cc
The comment claimed the occurrence slot was UTC. It never was: the key is
formatted from a time already converted into the zone the request carried,
and validSlot parses it back with ParseInLocation against that same zone.
A client that believed the comment would compute the key in UTC and,
anywhere east or west of it, address a different day — splitting or
cancelling the wrong occurrence.

Naming the request's zone also keeps it apart from Event.time_zone, which
is a real but unrelated field the reminder ticker reads.

Test report

Suite Tests Result Skipped
Unit 1373 ✅ pass 1
Integration 90 ✅ pass —

Coverage: 26.7%

Updated by the check workflow · commit b074c386a8

<!-- ci-test-report --> ## Test report | Suite | Tests | Result | Skipped | | --- | --: | --- | --: | | Unit | 1373 | ✅ pass | 1 | | Integration | 90 | ✅ pass | — | **Coverage:** 26.7% <sub>Updated by the check workflow · commit b074c386a8cbcf649e3426697f023006e6ae62fe</sub>

Android test report

Suite Tests Result Skipped
Unit (debug) 43 ✅ pass 0

Coverage: 3.0% of lines

Updated by the android workflow · commit b074c386a8

<!-- android-test-report --> ## Android test report | Suite | Tests | Result | Skipped | | --- | --: | --- | --: | | Unit (debug) | 43 | ✅ pass | 0 | **Coverage:** 3.0% of lines <sub>Updated by the android workflow · commit b074c386a8cbcf649e3426697f023006e6ae62fe</sub>
nalum force-pushed docs/occurrence-date-zone from 09451c05cc
All checks were successful
check / commits (pull_request) Successful in 7s
check / go (pull_request) Successful in 2m44s
android / build (pull_request) Successful in 6m33s
check / web (pull_request) Successful in 4m33s
check / report (pull_request) Successful in 6s
android / report (pull_request) Successful in 5s
to b074c386a8
Some checks failed
check / commits (pull_request) Successful in 14s
check / go (pull_request) Successful in 2m39s
android / build (pull_request) Successful in 6m27s
check / web (pull_request) Successful in 5m56s
check / report (pull_request) Successful in 5s
android / report (pull_request) Successful in 5s
check / commits (push) Has been cancelled
check / go (push) Has been cancelled
check / report (push) Has been cancelled
check / web (push) Has been cancelled
tag / tag (push) Has been cancelled
android / report (push) Has been cancelled
android / build (push) Has been cancelled
2026-08-26 07:03:02 +00:00
Compare
nalum changed target branch from docs/design-handoffs to main 2026-08-26 18:32:43 +00:00
nalum merged commit b074c386a8 into main 2026-08-26 18:32:54 +00:00
nalum deleted branch docs/occurrence-date-zone 2026-08-26 18:32:58 +00: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
eagraiclainne/app!203
No description provided.