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

Rotorsoft / act-root / 31958403944
100%

Build:
DEFAULT BRANCH: master
Ran 16 Aug 2026 04:27PM UTC
Jobs 1
Files 113
Run time 1min
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

16 Aug 2026 04:22PM UTC coverage: 100.0%. Remained the same
31958403944

push

github

web-flow
feat(act): subscription work set — claim reads eligibility off the subscription row (#1496)

* feat(act): subscription work set — claim reads eligibility off the row

claim answered which subscribed streams have work by probing the event
log once per eligible subscription, costing O(subscribed streams) per
claim per worker regardless of pending work. That is the wrong axis for
a per-aggregate reaction, where subscribed streams equals aggregates.

A subscription row now carries an optional correlated mark: the highest
event id observed to resolve to that target. A marked stream is
claimable exactly while at < correlated, answered from the row with no
reference to the log, and on Postgres out of a partial index that holds
only streams with work.

NULL means unknown rather than no work, so an unmarked row still takes
the legacy probe and an existing install upgrades with no migration,
converting row by row. Nothing writes marks yet — correlate becomes the
producer in the next step — so this ships dark.

Measured at 20k subscriptions with 3 holding work, identical leases per
round: 18.1 to 8.7 ms per claim on Postgres, 221.5 to 2.2 ms on SQLite.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* refactor(act): name the work mark correlated_at, and size it like an id

The mark is a position in the same id space as a subscription's at and
as the global correlate checkpoint, so it takes the same name shape.
correlate names the only component entitled to write it; _at says what
kind of value it is.

Column types follow suit: events.id is serial and streams.at is int, so
the mark is int rather than bigint. The #1484 checkpoint singleton is
narrowed the same way — CREATE TABLE IF NOT EXISTS, so an install that
already has the wider column keeps it and no migration is attempted.

Numbers re-measured after the rename and unchanged: 18.1 to 8.8 ms per
claim on Postgres at 20k subscriptions, identical leases per round.

Co-Authored-By: Claude Op... (continued)

4145 of 4145 branches covered (100.0%)

Branch coverage included in aggregate %.

98 of 98 new or added lines in 4 files covered. (100.0%)

9000 of 9000 relevant lines covered (100.0%)

581.78 hits per line

Jobs
ID Job ID Ran Files Coverage
1 31958403944.1 16 Aug 2026 04:27PM UTC 113
100.0
GitHub Action Run
Source Files on build 31958403944
  • Tree
  • List 113
  • Changed 5
  • Source Changed 5
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #31958403944
  • d31452c8 on github
  • Prev Build on master (#31922167305)
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