Skip to content

[OMEGA-375] *DRAFT ONLY* Headless Browser Playwright Plugin - #361

Draft
jazzbox35 wants to merge 6 commits into
singnet:mainfrom
jazzbox35:main
Draft

jazzbox35 wants to merge 6 commits into
singnet:mainfrom
jazzbox35:main

Conversation

@jazzbox35

@jazzbox35 jazzbox35 commented Sep 22, 2026 •

Copy link
Copy Markdown
Collaborator

Description

Major changes planned:

Create new "playwright" modules inside the /plugins directory for new browser skills.
Include the Chromium browser in the docker build.

How Has This Been Tested?

This is still under development and being tested. This is for early discussion only before ready for review.
There is a lot of Codex code yet to be reviewed.

Checklist

  • PR contains autogenerated code
  • Self-review completed
  • Test scenarios above are passed with the version of the code from PR

@vsbogd vsbogd left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is aligned with the current Omega design.
There are some changes which would better stay in the plugin's code:

  • Dockerfile and requirements.txt in order to install plugin's dependencies
  • entrypoint.sh in order to promote environment variable changes

But this has to be changed in a more general task to make plugins more modular.

Comment thread entrypoint.sh
# Scrub environment: only allowlisted vars survive.
SAFE_VARS="HOME USER PATH HOSTNAME TERM LANG LC_ALL \
PYTHONDONTWRITEBYTECODE PYTHONUNBUFFERED \
PLAYWRIGHT_BROWSERS_PATH \

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jazzbox35 , am I right that this line is needed to promote the environment variable in a case when user uses custom PLAYWRIGHT_BROWSERS_PATH value, for example he mounts the host's directory into the Docker?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vsbogd As far as I can tell from AI and their documentation, I think that environment variable is needed to mount an external browser. It looks like that env variable is used in installation and also in execution. I got a crash initially when I was missing it.

Regarding your comments above about Dockerfile, requirements.txt, and entrypoint.sh: I think you mean that ideally these would be inside the plugin's code? However we can't do that yet?

Thanks!

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also noteworthy: I had to bump up some of the space allocations in the docker run command. When I tried to do screen print, it apparently was running out of RAM and storage. The extended size seemed to work.

In general adding a browser adds some bloat.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regarding your comments above about Dockerfile, requirements.txt, and entrypoint.sh: I think you mean that ideally these would be inside the plugin's code? However we can't do that yet?

Yes, my opinion we should design it properly first and then implement it for all of the plugins. May be we need to mark all such places by some TODO: move into playwright plugin but I am not sure.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean marking it clearly and uniformly could help to find all these places in the future.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants