Changed
- Breaking: Replace Chrono with Jiff 0.2 throughout the Rust API. Job timestamps, insertion options, retry hooks, periodic schedules, and test helpers now use
jiff::Timestamp; River re-exports Jiff asriverqueue::jiff. Database formats and canonical timestamp JSON remain unchanged. PR #1567. - Breaking: Timestamps outside years -9999 to 9999 are rejected. The exact bounds are Jiff's
Timestamp::MINandTimestamp::MAX, narrower than Chrono's approximately ±262,000-year range. PR #1567. - Breaking:
CronSchedule::next_aftertakes&jiff::Zonedand returnsOption<jiff::Zoned>.CronTimeZone::Fixedusesjiff::tz::Offset,CronTimeZone::Namedusesjiff::tz::TimeZone, andCronTimeZoneis nowClonerather thanCopy. Go-compatible cron scheduling behavior is unchanged. PR #1567. - Breaking: Rename the optional
chrono-tzfeature totzdb.PostgresReindexSchedule::DailyUtctakesjiff::civil::Time. PR #1567.
Fixed
- Fixed a running job not being cancelled when its cancellation notification was lost, as happens if it's sent while the client's listener is reconnecting. Clients with notifications now also check their running jobs for cancellation requests once a minute, like River for Go. Retrying a job now clears its earlier attempt's cancellation request so that the retried job isn't cancelled again. PR #1564.