Fix: Allow Puppeteer to run as root #3774
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #2537
This is a jules test
This commit addresses an issue where RooCode, when running as a remote SSH plugin as root, was unable to fetch HTTP pages. The problem stemmed from Puppeteer's default security measure that prevents it from running as root without the
--no-sandboxflag.The solution involves modifying the
launchBrowsermethod insrc/services/browser/UrlContentFetcher.ts. The code now checks if the current user is root (UID 0). If so, it adds the--no-sandboxflag to the Puppeteer launch arguments, allowing it to operate correctly in a root environment.Additionally, I've added unit tests to
src/services/browser/__tests__/UrlContentFetcher.test.tsto verify this new behavior. The tests mockprocess.getuid()to simulate both root and non-root users, ensuring that the--no-sandboxflag is conditionally added as expected and that URL fetching remains functional.Related GitHub Issue
Closes: #
Description
Test Procedure
Type of Change
srcor test files.Pre-Submission Checklist
npm run lint).console.log) has been removed.npm test).mainbranch.npm run changesetif this PR includes user-facing changes or dependency updates.Screenshots / Videos
Documentation Updates
Additional Notes
Get in Touch
Important
Fixes Puppeteer root execution by adding
--no-sandboxflag inUrlContentFetcher.tsand tests inUrlContentFetcher.test.ts.launchBrowserinUrlContentFetcher.tsto add--no-sandboxflag if running as root (UID 0).UrlContentFetcher.test.tsto verify--no-sandboxflag is added for root users and not for non-root users.process.getuid()to simulate different user environments.This description was created by
for b0123bc. You can customize this summary. It will automatically update as commits are pushed.