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

microlinkhq / browserless / 29657187213
79%

Build:
DEFAULT BRANCH: master
Ran 18 Jul 2026 07:08PM UTC
Jobs 9
Files 35
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

18 Jul 2026 07:07PM UTC coverage: 80.796%. Remained the same
29657187213

push

github

web-flow
fix(pdf): budget readiness from the load allowance, return it to the caller (#841)

* fix(pdf): budget readiness from the load allowance, return it to the caller

The readiness gate waits for a page to settle — page-load work — but was
budgeted from `timeouts.action` (timeout/11), halved by READY_BUDGET_RATIO:
~1.2s. A hydrating document needs 2-3s, so the gate timed out on every tall
page and the zero-capture fast path never fired in production.

Production, chapter-804 (46 pages), every split trace:

  ready height=76210 images=29 painted=2 resets=0 timedOut=true  duration=1207  <- probe
  ready height=71325 images=4  painted=2 resets=0 timedOut=false duration=844   <- sibling

`duration=1207` is exactly the cap. The starved gate also under-measured the
document (36149 vs 38034 from a settled context), which feeds the page count
and mis-sizes the split.

Budget it from the load allowance goto assigns to this phase instead, at a
quarter share (~3.9s at the default request budget). Pages settle in 0.6-3.3s,
and the gate returns as soon as the page is quiet, so this caps only a page
that never settles. The blank-page poll keeps its own action budget, measured
from after the gate so a slow gate cannot starve it.

Also return the readiness result from `prepare`. A caller reusing one load
across page-ranges (microlink-api's parallel renderer) can then skip that reuse
when readiness could not be confirmed, rather than printing a page it never
verified had settled.

Verified against the local checkout:

  ch-806 prepare=2595ms timedOut=false height=38034 | render OK
  ch-804 prepare=1400ms timedOut=false height=71325 | render OK

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

* fix(pdf): use nullish coalescing for the readiness budget fallback

`||` treats an explicit `autoTimeout` of 0 as absent and grants a fresh action
budget instead. `??` falls back only when the caller passed no budget at all.

Not reachable today — goto computes... (continued)

691 of 850 branches covered (81.29%)

Branch coverage included in aggregate %.

3676 of 4555 relevant lines covered (80.7%)

110004.45 hits per line

Jobs
ID Job ID Ran Files Coverage
1 @browserless/errors - 29657187213.1 18 Jul 2026 07:08PM UTC 1
99.32
GitHub Action Run
2 @browserless/screenshot - 29657187213.2 18 Jul 2026 07:08PM UTC 9
69.0
GitHub Action Run
3 browserless - 29657187213.3 18 Jul 2026 07:09PM UTC 3
79.48
GitHub Action Run
4 @browserless/devices - 29657187213.4 18 Jul 2026 07:08PM UTC 1
94.92
GitHub Action Run
5 @browserless/function - 29657187213.5 18 Jul 2026 07:09PM UTC 3
97.0
GitHub Action Run
6 @browserless/screencast - 29657187213.6 18 Jul 2026 07:08PM UTC 1
95.74
GitHub Action Run
7 @browserless/goto - 29657187213.7 18 Jul 2026 07:10PM UTC 3
75.71
GitHub Action Run
8 @browserless/lighthouse - 29657187213.8 18 Jul 2026 07:09PM UTC 3
97.83
GitHub Action Run
9 @browserless/capture - 29657187213.9 18 Jul 2026 07:08PM UTC 11
86.63
GitHub Action Run
Source Files on build 29657187213
  • Tree
  • List 35
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #29657187213
  • c7fcf153 on github
  • Prev Build on master (#29508814524)
  • Next Build on master (#29723095263)
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