Skip to content

v0.0.26

Fixes

  • lythonic.compose.trigger: scheduled fires missed while the process was down now run once on start. TriggerStore.activate was an INSERT OR REPLACE that reset last_run_at and created_at on every call, so hosts that activate triggers at startup silently skipped every fire that fell due during downtime. It is now an upsert:
  • re-activating an active trigger keeps last_run_at, last_run_id and created_at, even if its config changed, so the poll loop fires once (not once per missed fire) and then resumes the schedule
  • activating a disabled trigger resets last_run_at to now, so a deliberate pause is not caught up

This is a behaviour change: re-activation no longer resets run history, and a trigger whose schedule passed during downtime fires immediately on start. Remove any external catch-up workaround to avoid a double run. - lythonic.compose.trigger: a scheduled run that outlasts later scheduled fire times still skips them, but now logs a warning naming the trigger, the number of skipped fires and the first skipped time (UTC).

Documentation

  • The scheduled-triggers tutorial gains a "Restarts and Missed Fires" section.

Decisions and tickets

Closed tickets:

  • 12 Triggers: re-activation resets last_run_at, so runs missed while down are never caught up