From 81531e408b3568b66a853f5945d27c61af7f8462 Mon Sep 17 00:00:00 2001 From: 1mb-dev <1mb@1mb.dev> Date: Mon, 12 Oct 2026 01:21:51 +0530 Subject: [PATCH] ci(snapshots): run every 2h Every 4h left a 9h53m gap on 2026-10-10 (hn and boards stale ~1h). --- .github/workflows/snapshots.yml | 8 +++++--- src/sources/boards.ts | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/snapshots.yml b/.github/workflows/snapshots.yml index a8cbd51..be59c2e 100644 --- a/.github/workflows/snapshots.yml +++ b/.github/workflows/snapshots.yml @@ -2,9 +2,11 @@ name: Snapshots on: schedule: - # Off the busy slots (top of the hour, */4 hours): GitHub skips scheduled runs under load. - - cron: '23 2,6,10,14,18,22 * * *' - # Hourly through the 5th: a thread lands on the first weekday, as late as the 3rd. + # Off the busy minutes. GitHub skips and delays scheduled runs under load: every 4h left gaps of + # 10h (2026-10-10), past STALE_AFTER_MS. More slots shrink the gap a skip leaves. + - cron: '23 */2 * * *' + # Hourly through the 5th: a thread lands on the first weekday, as late as the 3rd. Until a run + # after a new thread, the Worker parses that thread whole per request (over the CPU limit when large). - cron: '49 * 1-5 * *' # Keep inputs empty: nothing is interpolated into the run. workflow_dispatch: diff --git a/src/sources/boards.ts b/src/sources/boards.ts index 6cafcc8..6f34821 100644 --- a/src/sources/boards.ts +++ b/src/sources/boards.ts @@ -2,7 +2,7 @@ import { parseSnapshot, SNAPSHOT_KEY } from '../boards/snapshot.ts'; import { SourceError, type Adapter } from '../types.ts'; const HOUR = 60 * 60 * 1000; -/** One missed 4-hourly run plus scheduler delay. */ +/** Scheduled snapshots (snapshots.yml) must land more often than this, GitHub's skips and delays included. */ export const STALE_AFTER_MS = 9 * HOUR; export const DROP_AFTER_MS = 24 * HOUR;