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

microlinkhq / browserless / 28332040892
85%

Build:
DEFAULT BRANCH: master
Ran 28 Jun 2026 06:37PM UTC
Jobs 9
Files 33
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

pending completion
28332040892

push

github

web-flow
perf(screencast): frame backpressure (#812)

* perf(screencast): add frame backpressure

* fix(screencast): harden frame backpressure (review follow-up)

Addresses review findings on the frame-backpressure change:

- recorder: write a frame's cluster header and payload back-to-back, then
  await drain once, instead of deferring the payload across an await. This
  stops a concurrent flush() emit from splicing between a frame's header and
  payload and corrupting the Matroska stream; removes the now-dead writeChunks.
- recorder: stop writing once ffmpeg stdin errors/closes, so a backpressured
  frame is not written to a dead stream.
- screencast: swallow a synchronous onFrame throw (symmetric with the async
  rejection path) rather than rethrowing into puppeteer's CDP dispatch loop.
- screencast: guard the deferred ack so a frame that settles after stop() does
  not ack a torn-down session.
- tests for each.

Also carries pre-existing working-tree changes: screencast jpeg/quality option
defaults (DEFAULT_OPTS) with their matching README and test.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix(screencast): clear stopped flag on start() so restarts ack again

stop() sets `stopped` to suppress a late ack from a frame that settles after
teardown, but start() never cleared it — so a stop()/start() on the same
screencast instance left promise-returning onFrame handlers un-acked, hanging
the restarted capture. Reset it in start(). (Cursor Bugbot, medium.)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

643 of 803 branches covered (80.07%)

Branch coverage included in aggregate %.

68 of 71 new or added lines in 2 files covered. (95.77%)

2 existing lines in 1 file now uncovered.

3385 of 3951 relevant lines covered (85.67%)

126814.73 hits per line

Uncovered Changes

Lines Coverage ∆ File
3
61.22
27.22% packages/capture/src/recorder/index.js

Coverage Regressions

Lines Coverage ∆ File
2
95.12
0.06% packages/capture/src/recorder/ffmpeg.js
Jobs
ID Job ID Ran Files Coverage
1 @browserless/capture - 28332040892.1 28 Jun 2026 06:37PM UTC 11
85.73
GitHub Action Run
2 @browserless/errors - 28332040892.2 28 Jun 2026 06:37PM UTC 1
99.32
GitHub Action Run
3 @browserless/screenshot - 28332040892.3 28 Jun 2026 06:37PM UTC 8
79.05
GitHub Action Run
4 @browserless/screencast - 28332040892.4 28 Jun 2026 06:37PM UTC 1
95.45
GitHub Action Run
5 @browserless/devices - 28332040892.5 28 Jun 2026 06:37PM UTC 1
94.92
GitHub Action Run
6 @browserless/lighthouse - 28332040892.6 28 Jun 2026 06:37PM UTC 3
97.83
GitHub Action Run
7 @browserless/function - 28332040892.7 28 Jun 2026 06:37PM UTC 3
97.0
GitHub Action Run
8 @browserless/goto - 28332040892.8 28 Jun 2026 06:38PM UTC 2
84.45
GitHub Action Run
9 browserless - 28332040892.9 28 Jun 2026 06:38PM UTC 3
79.18
GitHub Action Run
Source Files on build 28332040892
  • Tree
  • List 33
  • Changed 4
  • Source Changed 3
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #28332040892
  • 52bd07c6 on github
  • Prev Build on master (#28249216144)
  • Next Build on master (#28332931709)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc