# Three-worker Amazon search batches — 29 September 2026

One Patchright batch followed by one Camoufox batch on the same local host, direct no-proxy network, and exact `https://www.amazon.com/s?k=laptop` URL. Each batch launched three independent headless browser workers; there were exactly three requests per tool and no retries, credentials, paid service, or proxy. Both reused the isolated environments and browser installs from the preceding single-attempt slices. The current `daijro/camoufox` sync launch and fetch syntax had been checked through DeepWiki; the Patchright script used the already verified local API path.

Before starting, `free -h` showed 31 GiB total RAM, 7.7 GiB available, and effectively no free swap. The script required at least 6 GiB available before each batch and stopped active workers if available RAM dropped below 3 GiB. Neither guard fired. The batches ran sequentially, so their PSS peaks are separately sampled, not simultaneous cross-tool measurements.

Run commands from the repository root:

```sh
timeout 105s /tmp/scrapingevals-patchright-amazon-20260929/bin/python public/evidence/browser-concurrency-amazon-local-20260929/run_batch.py patchright
timeout 105s /tmp/scrapingevals-patchright-amazon-20260929/bin/python public/evidence/browser-concurrency-amazon-local-20260929/run_batch.py camoufox
```

Those are the commands used for the saved capture. To reproduce without overwriting it, set `SCRAPINGEVALS_OUTPUT_DIR` to a fresh local directory for both commands. The script refuses to overwrite a completed batch.

The workers use Python 3.12.3 on Linux 6.17.0-22-generic x86_64 with glibc 2.39. Patchright is 1.63.0 with Chromium 153.0.8010.12. Camoufox is 0.5.6 with browser 152.0.4-beta.31. The exact executable, environment, configuration, worker command, and versions are in each `result.json` and `batch.json`. Each worker removes common proxy environment variables, navigates with `domcontentloaded` and a 30-second timeout, checks cards with ASINs and headings plus the required “laptop” term, and distinguishes an error page, challenge markers, and short HTTP 200 from usable listings.

| Batch, UTC | Batch wall | Attempts | Max overlapping `goto` calls | Peak sampled process-tree PSS |
| --- | ---: | --- | ---: | ---: |
| Patchright, 07:30:11–07:30:18 | 7.098 s | 200 / 16 cards; 200 / 16; 200 / 16 | 3 | 1,274.2 MiB |
| Camoufox, 07:30:24–07:30:44 | 19.285 s | 503 / 0 cards; 200 / 22; 200 / 16 | 2 | 1,650.6 MiB |

All three Patchright responses and two Camoufox responses had usable product listings. Camoufox attempt 1 returned Amazon's “Something went wrong” 503 page. Its error message is in an image, so visible text extraction is empty; the screenshot and HTML show the error page. All six `result.json` records, rendered HTML, screenshots, and stdout/stderr logs are saved under `patchright/attempt-1..3/` and `camoufox/attempt-1..3/`. The individual wall times and sampled process-tree PSS are in those metadata files.

All three browser workers were active in each batch, but Camoufox startup staggered navigation and only two `goto` calls overlapped. Thus this does not measure three simultaneous Camoufox navigations. PSS was sampled at 0.2-second intervals across each batch's parent, workers, and browser descendants; individual worker PSS was also sampled at 0.2 seconds. Samples can miss brief peaks and are not a clean allocation per browser. The two batches occurred at different times and browser versions; this small result cannot establish a success rate, detection mechanism, or general resource superiority.
