Repository navigation
v1.2.1
Bug fixes
-
Tab leak in shared Chromium mode (
fix(puppeteer): Close pages on safeShutdown to prevent tab leak, d332a3a) —safeShutdown(browser)only calledbrowser.disconnect(), leaving tabs open in the shared instance. After ~30-45 leaked tabs Chromium produced "dead" tabs that acceptsetContent/drawImagebut rasterize to a fully-transparent canvas, surfacing as intermittent "Visible bbox is empty" errors under heavy parallel load. NowsafeShutdown(browser, page)explicitly closes the page first. Reproducer (75 concurrent subprocesses): 35/75 → 75/75 pass rate. -
img.decode()defense in canvas rasterizer (SvgVisualBBox.js) —img.decoding='async'allowedonloadto fire before the SVG was fully decoded, occasionally producing a blank canvas. Nowawait img.decode()afteronloadguarantees full decode beforedrawImage. -
Inkscape detection by filesystem path (
test(inkscape): Detect installation by filesystem path, not by launching, fbe2390) —inkscape --versioncold-start can take 30-60s on systems with many fonts (10k+), causing test files to wrongly skip. Now useswhich inkscapethen falls back to common platform paths (incl./Applications/Inkscape.app/Contents/MacOS/inkscapeon macOS). -
yq // falseparser bug in release script (fix(release): yq // operator treats false as null, 50f6956) —enabled: falseinrelease_conf.ymlwas indistinguishable from a missing key.
Internal
- All 12 sbb-*.cjs CLI tools that open pages were updated to track and close them.
lib/puppeteer-utils.cjs#safeShutdownAPI enhanced to take an optionalpageparameter (backwards compatible).