# E2E browser mode (current + next) ## Current mode (manual / assisted) Short-term E2E is **manual** and uses a terminal browser for fast feedback: - **Carbonyl** for previewing the **test** URL without a GUI browser: - script: `scripts/open-carbonyl-preview-test.sh` - per project config: `projects//conf.json` → `smart_ide.preview_urls.test` Typical workflow: 1. Deploy to `test` (project workflow / `ia_dev`). 2. Open the `test` URL in Carbonyl: ```bash ./scripts/open-carbonyl-preview-test.sh --project ``` 3. Validate critical flows manually (login, navigation, chat proxy calls). ## Optional next step (automation) If manual Carbonyl + system browser is not sufficient, introduce a dedicated service `browser-automation-api` **only** when at least one criterion is met (see [browser-automation-criteria.md](./browser-automation-criteria.md)): - agent-driven reproducible E2E with timeouts + domain allowlist - controlled scraping (pre-approved URLs) - headless visual regression on infra without GUI - rendering capture (PDF/images) for internal pages Constraints for the future service: - isolated process (`services/browser-automation-api/`) - queue + concurrency limits + strict timeouts - **network allowlist** (no arbitrary browsing) - Bearer auth (service-to-service) + URL logging ## Related docs - [carbonyl-terminal-browser.md](./carbonyl-terminal-browser.md) - [browser-automation-criteria.md](./browser-automation-criteria.md)