mirror of
https://github.com/screentinker/screentinker.git
synced 2026-08-13 22:03:13 -06:00
A recurring schedule ran forever. The engine compared weekday and HH:MM and dropped the date component entirely, so recurrence_end was never read: a campaign set to finish on the 1st was still switching screens weeks later. The same omission made a recurring schedule live before its start date. The calendar does read recurrence_end, so it drew the campaign as finished while the screens kept obeying it — the two views disagreeing is what made this hard to see from the dashboard. The end date is offered on the form, so it has to mean something. The date window is inclusive at both ends: an end date of the 5th means the 5th runs to its normal end time, which is what someone choosing that date means. An open-ended recurring schedule is untouched and still runs indefinitely. NOTE, because this one really does change live screens: any recurring schedule that has been running past its end date will now stop. That is the intended behaviour and was confirmed before making the change, but it is the difference between this commit and the calendar fix alongside it, which changes only what is drawn. 6 tests: stops after the end date, the final day still runs in full, does not run before the start date, unchanged inside the window, open-ended schedules unaffected, one-offs unaffected. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Uaeo9MvzKoyXuN6ZsbhtkL |
||
|---|---|---|
| .. | ||
| activationNudge.js | ||
| activity.js | ||
| agency-digest.js | ||
| alerts.js | ||
| content-expiry.js | ||
| email.js | ||
| heartbeat.js | ||
| loop-lag.js | ||
| scheduler.js | ||
| signupEmails.js | ||