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

microlinkhq / browserless / 36837637077
81%

Build:
DEFAULT BRANCH: master
Ran 01 Oct 2026 08:40AM UTC
Jobs 6
Files 21
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

01 Oct 2026 08:38AM UTC coverage: 80.443% (-0.1%) from 80.577%
36837637077

push

github

web-flow
feat(function): name the spans spent reaching the page (#953)

* feat(function): name the spans spent reaching the page

Reaching the page is the runner's work, not the snippet's, so it lands in
`run` with nothing to tell the parts apart. Measured in production on
`({ page }) => page.title()`, timing the snippet from inside itself:

  fn.run=3536   inside=10   (browser=0  pages=2  title=8)
  fn.run=6466   inside=5    (browser=0  pages=0  title=5)
  fn.run=117    inside=5    (browser=0  pages=0  title=5)

The snippet's own work is 5-10ms whether the request is fast or slow, so
the time is spent before its body runs, and `run` being one number is why
the last investigation narrowed by elimination and reached the wrong
step.

`connect`, `pages` and `resolve` are now named spans. `connect` is the
remaining suspect for that tail and this is what turns it into a
measurement rather than an inference.

The spans need `isolated-function` 0.2.11 for `globalThis.__isolated_time`.
An older one is not an error: the helper falls back to calling the thunk,
so nothing is recorded and behaviour is unchanged. The stub path never
reaches a browser and so names nothing, which is asserted.

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

* chore(deps): isolated-function to 0.2.12 for the span accounting

0.2.11 reports a named span alongside `run` while it is inside it, so the
row double-counts. 0.2.12 takes a timed span back out, which is what
makes these three readable next to the phases they sit between.

Verified against a real browser rather than the test doubles:

  install=0  build=46  spawn=142  connect=10  pages=5  resolve=NaN  run=9  total=200

`resolve` is absent because that path has one page and no `strictTarget`,
so the scan is skipped; a non-finite phase is already dropped downstream.

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

* feat(function): time the module load and the disconnect too

`connect`, `pages` and ... (continued)

811 of 936 branches covered (86.65%)

Branch coverage included in aggregate %.

16 of 16 new or added lines in 1 file covered. (100.0%)

3072 of 3891 relevant lines covered (78.95%)

92.09 hits per line

Jobs
ID Job ID Ran Files Coverage
1 @browserless/screencast - 36837637077.1 01 Oct 2026 08:40AM UTC 1
96.08
GitHub Action Run
2 @browserless/lighthouse - 36837637077.2 01 Oct 2026 08:40AM UTC 3
97.83
GitHub Action Run
3 @browserless/goto - 36837637077.3 01 Oct 2026 08:49AM UTC 7
76.05
GitHub Action Run
4 @browserless/devices - 36837637077.4 01 Oct 2026 08:40AM UTC 1
95.41
GitHub Action Run
5 @browserless/function - 36837637077.5 01 Oct 2026 08:40AM UTC 3
94.89
GitHub Action Run
6 @browserless/ai - 36837637077.6 01 Oct 2026 08:41AM UTC 6
73.14
GitHub Action Run
Source Files on build 36837637077
  • Tree
  • List 21
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #36837637077
  • 090dc13a on github
  • Prev Build on master (#36680925732)
  • Next Build on master (#36873376032)
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