You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
P1: Evaluate schedule cron in local timezone (config override) #166
Scheduled cron expressions are evaluated in UTC (Job::new_async → Utc). Users typing 0 9 * * * (or 5-field 0 9 * * *) mean 09:00 in their local time, not 09:00 UTC. For Hong Kong (UTC+8) that fires at 17:00 HKT — a product bug.
TL notes for the upcoming timezone ADR (research facts, 2026-10-06):
croner 4 already supports timezones:find_next_occurrence takes DateTime<Tz>. Prefer passing chrono Local or a chrono_tz::Tz rather than hand-rolling offsets. Config override should parse IANA names via chrono-tz (e.g. Asia/Hong_Kong).
"System local" is unreliable in Docker: containers without /etc/localtime (or TZ) often default to UTC and reproduce the 09:00→17:00 HKT bug. ADR should require boot log of the effective timezone, and document that Docker users must set config override and/or TZ.
DST: Hong Kong has no DST; other users do. Ambiguous/skipped local times need an explicit fire-once vs skip rule (PO lock when ADR is written).
ADR-0022 (Accepted) is up for review in #168: #168
It records the PO locks from 2026-10-06: system local timezone by default, [general] timezone IANA override, a per-task timezone column with existing rows stamped UTC (option C), effective timezone shown in the boot log and on the portal Tasks page, and the DST fire-once rules. It also covers removing the temporary UTC hints in the portal and the schedule_task description. Docs only; implementation comes in a follow-up PR.
Activity
chinkan commentedon Oct 6, 2026
TL notes for the upcoming timezone ADR (research facts, 2026-10-06):
find_next_occurrencetakesDateTime<Tz>. Prefer passing chronoLocalor achrono_tz::Tzrather than hand-rolling offsets. Config override should parse IANA names viachrono-tz(e.g.Asia/Hong_Kong)./etc/localtime(orTZ) often default to UTC and reproduce the 09:00→17:00 HKT bug. ADR should require boot log of the effective timezone, and document that Docker users must set config override and/orTZ.Does not block #155 / ADR-0021.
chinkan commentedon Oct 6, 2026
PO locks for #166 (2026-10-06) — ready for ADR when scheduled:
DST
AC (UI)
Still does not block #155.
fix(portal): note that cron times are UTC until #166 (#155)
chinkan commentedon Oct 6, 2026
ADR-0022 (Accepted) is up for review in #168: #168
It records the PO locks from 2026-10-06: system local timezone by default,
[general] timezoneIANA override, a per-tasktimezonecolumn with existing rows stampedUTC(option C), effective timezone shown in the boot log and on the portal Tasks page, and the DST fire-once rules. It also covers removing the temporary UTC hints in the portal and theschedule_taskdescription. Docs only; implementation comes in a follow-up PR.docs(adr): ADR-0022 PO Product GO condition on legacy one-shot migrat…
docs(adr): ADR-0022 legacy naive one-shots stamp system local, not UTC (
Merge pull request #168 from chinkan/docs/adr-schedule-timezone