Skip to content

ci: cut the hub's scheduled cadence - #92

Merged
luisleo526 merged 1 commit into
mainfrom
ci/hub-schedule-cadence
Oct 20, 2026
Merged

luisleo526 merged 1 commit into
mainfrom
ci/hub-schedule-cadence

Conversation

@luisleo526

Copy link
Copy Markdown
Contributor

Cuts the cadence of the hub's five scheduled workflows (CI-NOISE: they fail every scheduled run today at the release runner's pre-job hook and are disabled; this lowers the run count once they come back).

  • release-reconcile: every 15 min -> hourly (11 * * * *)
  • release-finalize: every 15 min -> hourly (3 * * * *); exits fast when no candidate waits
  • release-receipts: every 15 min -> every 30 min (1,31 * * * *)
  • facts-descriptions: every 30 min -> daily (17 3 * * *); the push on facts/** stays the primary path
  • facts-fanout: every 15 min -> daily (7 3 * * *); the push on facts/facts.json stays the primary path

workflow_dispatch, push and callback triggers are unchanged. tests/test_facts_fanout.py follows the new fan-out cron; docs/release-chain.md updated (three sentences).

The five workflows stay disabled until the runner hook admits scheduled runs on main and the cross-run fix is live (#950/#974). Merging this changes nothing while they are disabled.

🤖 Generated with Claude Code

The five hub schedules fired four times an hour each (two for descriptions),
about 18 runs an hour on the release class, mostly with nothing to do. Their
event paths already carry the work: producers dispatch on release, the
receipts callback repairs dropped notifications, the finalizer runs as a
workflow_call after publication and on facts changes, and the facts workflows
run on push. The cron is only the safety net, so it moves to the cadence that
net needs. workflow_dispatch stays on all five.

- release-reconcile: every 15 minutes -> hourly (11 * * * *)
- release-finalize: every 15 minutes -> hourly (3 * * * *); it already exits in
  seconds when no candidate waits
- release-receipts: every 15 minutes -> every 30 minutes (1,31 * * * *), the
  existing overdue threshold of 30 minutes
- facts-descriptions: twice an hour -> daily (17 3 * * *); a push on facts/**
  stays the primary path
- facts-fanout: every 15 minutes -> daily (7 3 * * *); same reason

tests/test_facts_fanout.py pins the new fan-out cron. docs/release-chain.md
states the new cadence.

These schedules stay disabled (bulletin #950) until laneboss's cross-run fix
is live and the runner hook accepts them; this change can merge before that.

Removed text:

> `release-reconcile.yml` wakes every 15 minutes or manually.

> as a reusable job after publication, on facts-file changes, every 15 minutes,

> `release-receipts.yml` polls selected consumers every 15 minutes and accepts the

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@luisleo526
luisleo526 merged commit 97c65a9 into main Oct 20, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant