• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Unleash / unleash / 32151132818
87%
master: 91%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 18 Aug 2026 02:58PM UTC
Jobs 1
Files 1210
Run time 4min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

18 Aug 2026 02:52PM UTC coverage: 87.424% (+0.03%) from 87.394%
32151132818

push

github

web-flow
feat: add resumable scheduled job buckets

## Purpose

Add a generic scheduled-job mode that processes missing time buckets
oldest-first while using the existing jobs table as both the distributed
lock and durable watermark.

This PR introduces and tests the reusable `singleInstanceWithBackfill`
capability, but does not wire it into a production job yet. The next PR
in the stack,
[#1554](https://github.com/bricks-software/unleash-enterprise/pull/1554),
uses it for the existing audit-log S3 uploader before the final PR adds
login-history uploads.

The running state remains `stage = started`. The `lease_expires_at`
column gives that state a recovery deadline, allowing another instance
to reclaim a bucket after an abandoned worker's lease expires.

A permanently failing bucket is retried up to a configurable limit of
five attempts by default. After that it becomes `exhausted`, an error
identifies the skipped job bucket, and catch-up continues so later
buckets are not blocked forever.

## Scope

- Add `singleInstanceWithBackfill` with bounded catch-up per scheduler
run.
- Resume after the latest completed or exhausted bucket.
- Retry failed buckets and expired started buckets.
- Persist attempt counts and stop retrying after `maxAttempts`.
- Log an error before skipping an exhausted bucket.
- Keep first-run behavior configurable through `getInitialDate`.
- Add the generic retry metadata migration and scheduler tests.

Linear: https://linear.app/unleash/issue/EG-4670

2012 of 2219 branches covered (90.67%)

65 of 73 new or added lines in 3 files covered. (89.04%)

1 existing line in 1 file now uncovered.

15843 of 18122 relevant lines covered (87.42%)

815.01 hits per line

Uncovered Changes

Lines Coverage ∆ File
6
86.96
-13.04% src/lib/features/scheduler/job-service.ts
2
82.61
21.74% src/lib/features/scheduler/job-store.ts

Coverage Regressions

Lines Coverage ∆ File
1
83.05
2.54% src/lib/features/playground/feature-evaluator/constraint.ts
Jobs
ID Job ID Ran Files Coverage
1 32151132818.1 18 Aug 2026 02:58PM UTC 1210
87.42
GitHub Action Run
Source Files on build 32151132818
  • Tree
  • List 1210
  • Changed 3
  • Source Changed 2
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #32151132818
  • d8ea46fb on github
  • Prev Build on main (#32022502037)
  • Next Build on main (#32156839015)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc