Skip to content

feat(browser): adopt lightpanda via browser-manager subsystem #8

feat(browser): adopt lightpanda via browser-manager subsystem

feat(browser): adopt lightpanda via browser-manager subsystem #8

Triggered via pull request April 7, 2026 14:57
@jadbjadb
synchronize #24
adopt-lightpanda
Status Failure
Total duration 1m 6s
Artifacts

ci.yml

on: pull_request
Matrix: ci
Fit to window
Zoom out
Zoom in

Annotations

38 errors and 6 warnings
macos-latest / node 22.x
Process completed with exit code 1.
ubuntu-latest / node 20.x
Process completed with exit code 1.
test/unit/browser/resolver.fallback.test.js > resolver capability — fallback wrapper > fallback failure propagates fallback error and does NOT record: test/unit/browser/resolver.fallback.test.js#L165
AssertionError: expected [Function] to throw error matching /chromium also boom/ but got 'Browser "chromium" not found on this …' - Expected: /chromium also boom/ + Received: "Browser \"chromium\" not found on this system. Searched: /usr/bin/chromium /usr/bin/chromium-browser /snap/chromium/current/usr/lib/chromium-browser/chromium-browser /var/lib/flatpak/app/org.chromium.Chromium/current/active/bin/chromium /usr/local/bin/chromium Install the browser or set BROWSER_EXECUTABLE_PATH to its executable." ❯ test/unit/browser/resolver.fallback.test.js:165:5
test/unit/browser/resolver.fallback.test.js > resolver capability — fallback wrapper > fallback success emits capability.learned + browser.fallback NDJSON: src/browser/resolver.js#L208
Error: Browser "chromium" not found on this system. Searched: /usr/bin/chromium /usr/bin/chromium-browser /snap/chromium/current/usr/lib/chromium-browser/chromium-browser /var/lib/flatpak/app/org.chromium.Chromium/current/active/bin/chromium /usr/local/bin/chromium Install the browser or set BROWSER_EXECUTABLE_PATH to its executable. ❯ stepLocalProbe src/browser/resolver.js:208:11 ❯ resolveRecord src/browser/resolver.js:370:20 ❯ resolveInner src/browser/resolver.js:437:31 ❯ resolveWithCapability src/browser/resolver.js:631:22 ❯ test/unit/browser/resolver.fallback.test.js:141:5
test/unit/browser/resolver.fallback.test.js > resolver capability — fallback wrapper > fallback success records launch failure in manifest: src/browser/resolver.js#L208
Error: Browser "chromium" not found on this system. Searched: /usr/bin/chromium /usr/bin/chromium-browser /snap/chromium/current/usr/lib/chromium-browser/chromium-browser /var/lib/flatpak/app/org.chromium.Chromium/current/active/bin/chromium /usr/local/bin/chromium Install the browser or set BROWSER_EXECUTABLE_PATH to its executable. ❯ stepLocalProbe src/browser/resolver.js:208:11 ❯ resolveRecord src/browser/resolver.js:370:20 ❯ resolveInner src/browser/resolver.js:437:31 ❯ resolveWithCapability src/browser/resolver.js:631:22 ❯ test/unit/browser/resolver.fallback.test.js:113:5
test/unit/browser/resolver.fallback.test.js > resolver capability — fallback wrapper > lightpanda launch failure + BROWSER_FALLBACK → fallback resolves: src/browser/resolver.js#L208
Error: Browser "chromium" not found on this system. Searched: /usr/bin/chromium /usr/bin/chromium-browser /snap/chromium/current/usr/lib/chromium-browser/chromium-browser /var/lib/flatpak/app/org.chromium.Chromium/current/active/bin/chromium /usr/local/bin/chromium Install the browser or set BROWSER_EXECUTABLE_PATH to its executable. ❯ stepLocalProbe src/browser/resolver.js:208:11 ❯ resolveRecord src/browser/resolver.js:370:20 ❯ resolveInner src/browser/resolver.js:437:31 ❯ resolveWithCapability src/browser/resolver.js:631:22 ❯ test/unit/browser/resolver.fallback.test.js:92:20
test/unit/browser/resolver.dispatch.test.js > dispatch — cdp-server ibr-owned spawn (probe hit) > probe → spawn → connect; close() invokes both close + kill: test/unit/browser/resolver.dispatch.test.js#L232
AssertionError: expected '/home/runner/.cache/ibr/browsers/stab…' to be '/opt/homebrew/bin/lightpanda' // Object.is equality Expected: "/opt/homebrew/bin/lightpanda" Received: "/home/runner/.cache/ibr/browsers/stable/0.2.8/lightpanda-x86_64-linux" ❯ test/unit/browser/resolver.dispatch.test.js:232:31
test/unit/browser/resolver.chain.test.js > resolveProbeOnly > returns { executablePath } for probed channel: src/browser/resolver.js#L208
Error: Browser "brave" not found on this system. Searched: /usr/bin/brave-browser /usr/bin/brave /snap/brave/current/brave /var/lib/flatpak/app/com.brave.Browser/current/active/bin/brave /usr/local/bin/brave-browser /usr/local/bin/brave Install the browser or set BROWSER_EXECUTABLE_PATH to its executable. ❯ stepLocalProbe src/browser/resolver.js:208:11 ❯ Module.resolveProbeOnly src/browser/resolver.js:409:18 ❯ test/unit/browser/resolver.chain.test.js:137:14
test/unit/browser/resolver.chain.test.js > resolveRecord — local probe > non-native channel returns first matching probe path: src/browser/resolver.js#L208
Error: Browser "brave" not found on this system. Searched: /usr/bin/brave-browser /usr/bin/brave /snap/brave/current/brave /var/lib/flatpak/app/com.brave.Browser/current/active/bin/brave /usr/local/bin/brave-browser /usr/local/bin/brave Install the browser or set BROWSER_EXECUTABLE_PATH to its executable. ❯ stepLocalProbe src/browser/resolver.js:208:11 ❯ Module.resolveRecord src/browser/resolver.js:370:20 ❯ test/unit/browser/resolver.chain.test.js:90:35
macos-latest / node 20.x
Process completed with exit code 1.
ubuntu-latest / node 22.x
Process completed with exit code 1.
test/unit/browser/resolver.fallback.test.js > resolver capability — fallback wrapper > fallback failure propagates fallback error and does NOT record: test/unit/browser/resolver.fallback.test.js#L165
AssertionError: expected [Function] to throw error matching /chromium also boom/ but got 'Browser "chromium" not found on this …' - Expected: /chromium also boom/ + Received: "Browser \"chromium\" not found on this system. Searched: /usr/bin/chromium /usr/bin/chromium-browser /snap/chromium/current/usr/lib/chromium-browser/chromium-browser /var/lib/flatpak/app/org.chromium.Chromium/current/active/bin/chromium /usr/local/bin/chromium Install the browser or set BROWSER_EXECUTABLE_PATH to its executable." ❯ test/unit/browser/resolver.fallback.test.js:165:5
test/unit/browser/resolver.fallback.test.js > resolver capability — fallback wrapper > fallback success emits capability.learned + browser.fallback NDJSON: src/browser/resolver.js#L208
Error: Browser "chromium" not found on this system. Searched: /usr/bin/chromium /usr/bin/chromium-browser /snap/chromium/current/usr/lib/chromium-browser/chromium-browser /var/lib/flatpak/app/org.chromium.Chromium/current/active/bin/chromium /usr/local/bin/chromium Install the browser or set BROWSER_EXECUTABLE_PATH to its executable. ❯ stepLocalProbe src/browser/resolver.js:208:11 ❯ resolveRecord src/browser/resolver.js:370:20 ❯ resolveInner src/browser/resolver.js:437:31 ❯ resolveWithCapability src/browser/resolver.js:631:22 ❯ test/unit/browser/resolver.fallback.test.js:141:5
test/unit/browser/resolver.fallback.test.js > resolver capability — fallback wrapper > fallback success records launch failure in manifest: src/browser/resolver.js#L208
Error: Browser "chromium" not found on this system. Searched: /usr/bin/chromium /usr/bin/chromium-browser /snap/chromium/current/usr/lib/chromium-browser/chromium-browser /var/lib/flatpak/app/org.chromium.Chromium/current/active/bin/chromium /usr/local/bin/chromium Install the browser or set BROWSER_EXECUTABLE_PATH to its executable. ❯ stepLocalProbe src/browser/resolver.js:208:11 ❯ resolveRecord src/browser/resolver.js:370:20 ❯ resolveInner src/browser/resolver.js:437:31 ❯ resolveWithCapability src/browser/resolver.js:631:22 ❯ test/unit/browser/resolver.fallback.test.js:113:5
test/unit/browser/resolver.fallback.test.js > resolver capability — fallback wrapper > lightpanda launch failure + BROWSER_FALLBACK → fallback resolves: src/browser/resolver.js#L208
Error: Browser "chromium" not found on this system. Searched: /usr/bin/chromium /usr/bin/chromium-browser /snap/chromium/current/usr/lib/chromium-browser/chromium-browser /var/lib/flatpak/app/org.chromium.Chromium/current/active/bin/chromium /usr/local/bin/chromium Install the browser or set BROWSER_EXECUTABLE_PATH to its executable. ❯ stepLocalProbe src/browser/resolver.js:208:11 ❯ resolveRecord src/browser/resolver.js:370:20 ❯ resolveInner src/browser/resolver.js:437:31 ❯ resolveWithCapability src/browser/resolver.js:631:22 ❯ test/unit/browser/resolver.fallback.test.js:92:20
test/unit/browser/resolver.dispatch.test.js > dispatch — cdp-server ibr-owned spawn (probe hit) > probe → spawn → connect; close() invokes both close + kill: test/unit/browser/resolver.dispatch.test.js#L232
AssertionError: expected '/home/runner/.cache/ibr/browsers/stab…' to be '/opt/homebrew/bin/lightpanda' // Object.is equality Expected: "/opt/homebrew/bin/lightpanda" Received: "/home/runner/.cache/ibr/browsers/stable/0.2.8/lightpanda-x86_64-linux" ❯ test/unit/browser/resolver.dispatch.test.js:232:31
test/unit/browser/resolver.chain.test.js > resolveProbeOnly > returns { executablePath } for probed channel: src/browser/resolver.js#L208
Error: Browser "brave" not found on this system. Searched: /usr/bin/brave-browser /usr/bin/brave /snap/brave/current/brave /var/lib/flatpak/app/com.brave.Browser/current/active/bin/brave /usr/local/bin/brave-browser /usr/local/bin/brave Install the browser or set BROWSER_EXECUTABLE_PATH to its executable. ❯ stepLocalProbe src/browser/resolver.js:208:11 ❯ Module.resolveProbeOnly src/browser/resolver.js:409:18 ❯ test/unit/browser/resolver.chain.test.js:137:14
test/unit/browser/resolver.chain.test.js > resolveRecord — local probe > non-native channel returns first matching probe path: src/browser/resolver.js#L208
Error: Browser "brave" not found on this system. Searched: /usr/bin/brave-browser /usr/bin/brave /snap/brave/current/brave /var/lib/flatpak/app/com.brave.Browser/current/active/bin/brave /usr/local/bin/brave-browser /usr/local/bin/brave Install the browser or set BROWSER_EXECUTABLE_PATH to its executable. ❯ stepLocalProbe src/browser/resolver.js:208:11 ❯ Module.resolveRecord src/browser/resolver.js:370:20 ❯ test/unit/browser/resolver.chain.test.js:90:35
test/unit/WsmAdapter.test.js > findWsmBin > returns ~/.local/bin/wsm when present: test/unit/WsmAdapter.test.js#L106
AssertionError: expected null to be 'C:\Users\runneradmin/.local/bin/wsm' // Object.is equality - Expected: "C:\\Users\\runneradmin/.local/bin/wsm" + Received: null ❯ test/unit/WsmAdapter.test.js:106:30
test/unit/AnnotationService.test.js > AnnotationService > parallel bounding-box fetching (>50 elements) > batches stop at MAX_CONCURRENT_BBOX=50 per round: test/unit/AnnotationService.test.js#L240
AssertionError: expected false to be true // Object.is equality - Expected + Received - true + false ❯ test/unit/AnnotationService.test.js:240:36
test/unit/AnnotationService.test.js > AnnotationService > parallel bounding-box fetching (>50 elements) > handles 60 elements in batches without error: test/unit/AnnotationService.test.js#L228
AssertionError: expected false to be true // Object.is equality - Expected + Received - true + false ❯ test/unit/AnnotationService.test.js:228:36
test/unit/AnnotationService.test.js > AnnotationService > cleanup on failure > always cleans up overlays even when screenshot fails: test/unit/AnnotationService.test.js#L178
AssertionError: expected "spy" to be called at least once ❯ test/unit/AnnotationService.test.js:178:35
test/unit/AnnotationService.test.js > AnnotationService > successful capture > injects overlays then removes them in finally: test/unit/AnnotationService.test.js#L162
AssertionError: expected 0 to be greater than or equal to 2 ❯ test/unit/AnnotationService.test.js:162:53
test/unit/AnnotationService.test.js > AnnotationService > successful capture > uses @c{n} labels for pseudo-button refs: test/unit/AnnotationService.test.js#L151
TypeError: Cannot read properties of undefined (reading '1') ❯ test/unit/AnnotationService.test.js:151:63
test/unit/AnnotationService.test.js > AnnotationService > successful capture > uses @e{n} labels for numeric element refs: test/unit/AnnotationService.test.js#L141
TypeError: Cannot read properties of undefined (reading '1') ❯ test/unit/AnnotationService.test.js:141:63
test/unit/AnnotationService.test.js > AnnotationService > successful capture > returns success with path and boxCount: test/unit/AnnotationService.test.js#L128
AssertionError: expected { success: false } to deeply equal { success: true, …(2) } - Expected + Received Object { - "boxCount": 2, - "path": "D:\\tmp\\ibr-test-annotation.png", - "success": true, + "success": false, } ❯ test/unit/AnnotationService.test.js:128:28
test/unit/AnnotationService.test.js > AnnotationService > path validation > accepts paths in /tmp: test/unit/AnnotationService.test.js#L69
AssertionError: expected false to be true // Object.is equality - Expected + Received - true + false ❯ test/unit/AnnotationService.test.js:69:36
test/unit/WsmAdapter.test.js > findWsmBin > returns ~/.local/bin/wsm when present: test/unit/WsmAdapter.test.js#L106
AssertionError: expected null to be 'C:\Users\runneradmin/.local/bin/wsm' // Object.is equality - Expected: "C:\\Users\\runneradmin/.local/bin/wsm" + Received: null ❯ test/unit/WsmAdapter.test.js:106:30
test/unit/AnnotationService.test.js > AnnotationService > parallel bounding-box fetching (>50 elements) > batches stop at MAX_CONCURRENT_BBOX=50 per round: test/unit/AnnotationService.test.js#L240
AssertionError: expected false to be true // Object.is equality - Expected + Received - true + false ❯ test/unit/AnnotationService.test.js:240:36
test/unit/AnnotationService.test.js > AnnotationService > parallel bounding-box fetching (>50 elements) > handles 60 elements in batches without error: test/unit/AnnotationService.test.js#L228
AssertionError: expected false to be true // Object.is equality - Expected + Received - true + false ❯ test/unit/AnnotationService.test.js:228:36
test/unit/AnnotationService.test.js > AnnotationService > cleanup on failure > always cleans up overlays even when screenshot fails: test/unit/AnnotationService.test.js#L178
AssertionError: expected "spy" to be called at least once ❯ test/unit/AnnotationService.test.js:178:35
test/unit/AnnotationService.test.js > AnnotationService > successful capture > injects overlays then removes them in finally: test/unit/AnnotationService.test.js#L162
AssertionError: expected 0 to be greater than or equal to 2 ❯ test/unit/AnnotationService.test.js:162:53
test/unit/AnnotationService.test.js > AnnotationService > successful capture > uses @c{n} labels for pseudo-button refs: test/unit/AnnotationService.test.js#L151
TypeError: Cannot read properties of undefined (reading '1') ❯ test/unit/AnnotationService.test.js:151:63
test/unit/AnnotationService.test.js > AnnotationService > successful capture > uses @e{n} labels for numeric element refs: test/unit/AnnotationService.test.js#L141
TypeError: Cannot read properties of undefined (reading '1') ❯ test/unit/AnnotationService.test.js:141:63
test/unit/AnnotationService.test.js > AnnotationService > successful capture > returns success with path and boxCount: test/unit/AnnotationService.test.js#L128
AssertionError: expected { success: false } to deeply equal { success: true, …(2) } - Expected + Received Object { - "boxCount": 2, - "path": "D:\\tmp\\ibr-test-annotation.png", - "success": true, + "success": false, } ❯ test/unit/AnnotationService.test.js:128:28
test/unit/AnnotationService.test.js > AnnotationService > path validation > accepts paths in /tmp: test/unit/AnnotationService.test.js#L69
AssertionError: expected false to be true // Object.is equality - Expected + Received - true + false ❯ test/unit/AnnotationService.test.js:69:36
macos-latest / node 22.x
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
ubuntu-latest / node 20.x
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
macos-latest / node 20.x
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
ubuntu-latest / node 22.x
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
windows-latest / node 20.x
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
windows-latest / node 22.x
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/