Fix: Allow Puppeteer to run as root #3774
Open
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-sandbox
flag.The solution involves modifying the
launchBrowser
method insrc/services/browser/UrlContentFetcher.ts
. The code now checks if the current user is root (UID 0). If so, it adds the--no-sandbox
flag 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.ts
to verify this new behavior. The tests mockprocess.getuid()
to simulate both root and non-root users, ensuring that the--no-sandbox
flag is conditionally added as expected and that URL fetching remains functional.Related GitHub Issue
Closes: #
Description
Test Procedure
Type of Change
src
or test files.Pre-Submission Checklist
npm run lint
).console.log
) has been removed.npm test
).main
branch.npm run changeset
if 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-sandbox
flag inUrlContentFetcher.ts
and tests inUrlContentFetcher.test.ts
.launchBrowser
inUrlContentFetcher.ts
to add--no-sandbox
flag if running as root (UID 0).UrlContentFetcher.test.ts
to verify--no-sandbox
flag 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.