Adds a privacy-safe Tomorrow OS-notification action. The service worker validates notification route, tag, and ID, computes 09:00 in the device timezone, obtains session-bound CSRF, and calls a deadline-bounded endpoint. The server resolves the still-unread update to its canonical Later identity and persists an idempotent account-scoped deferral without marking it read. Failure opens the existing reader.
Verification
RED observed for missing Tomorrow action and missing /later endpoint.
Focused: 65 passed
Full: 1165 passed in 63.21s
git diff --check clean.
Closes #563
Adds a privacy-safe **Tomorrow** OS-notification action. The service worker validates notification route, tag, and ID, computes 09:00 in the device timezone, obtains session-bound CSRF, and calls a deadline-bounded endpoint. The server resolves the still-unread update to its canonical Later identity and persists an idempotent account-scoped deferral without marking it read. Failure opens the existing reader.
## Verification
- RED observed for missing Tomorrow action and missing `/later` endpoint.
- Focused: `65 passed`
- Full: `1165 passed in 63.21s`
- `git diff --check` clean.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #563
Adds a privacy-safe Tomorrow OS-notification action. The service worker validates notification route, tag, and ID, computes 09:00 in the device timezone, obtains session-bound CSRF, and calls a deadline-bounded endpoint. The server resolves the still-unread update to its canonical Later identity and persists an idempotent account-scoped deferral without marking it read. Failure opens the existing reader.
Verification
/laterendpoint.65 passed1165 passed in 63.21sgit diff --checkclean.