mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-09 13:01:00 +00:00
The ledger stamped last_failure_at, last_ok_at, next_retry_at and updated_at with the database's NOW(), while every reader compares them with the app's clock: the runner's skip hints and the background bench, the admin provider-health card, the server-health tri-state and the support report. A backoff or pause therefore sat wherever the skew between the two clocks put it. With the app clock pinned, a five-minute backoff lasted until the database's clock plus five minutes, months away, or was over before it began. Both writes now bind the instant they took as a parameter (`$N::timestamp`, the naive UTC columns), the same one-clock rule the summary reads follow. The escalating pause arithmetic is unchanged. The pause integration test pins the app clock years behind and ahead of the database's and checks the stored instants, a backoff that lifts after five minutes, a pause that benches background work for its full length, and a success the server health reads as recent. Refs #1279