"On the default engine the extension makes no network request at all" is the
load-bearing sentence in this repository's README, and until now the only way
to check it was to read the source and believe your own reading. That is a poor
position for a tool whose pitch is that an unpublished draft stays on the
laptop, and it is worse for a repository with no stars, which cannot lend a
stranger anyone else's judgement either.
`pnpm e2e:egress` loads the built extension into a real Chrome, serves a
fixture page from 127.0.0.1 so the page has nothing external of its own to
fetch, attaches a CDP network listener to every target that will take one, and
translates the whole page on the built-in engine. Then it checks three things,
the third of which is what makes the first two mean anything:
1. Nothing left the machine.
2. Nothing went to Ollama. A run where the built-in engine quietly bowed out
and Ollama did the work proves nothing about the default engine, and would
otherwise pass, because localhost is not egress.
3. The page was actually translated. A run that translates nothing sends
nothing, and is the easiest possible way to make this file lie.
Verified in both directions before committing, because a test that has never
been seen to fail is not evidence. On the built-in engine: four requests
observed, every one the fixture, PASS. The same harness with `engine: 'ollama'`
catches four `service_worker` requests to `/api/chat` and fails on assertion 2
— which also confirms the listener reaches the service worker, the one place a
leak would actually originate.
That first negative run found a wording bug worth keeping out of a file whose
job is to be believed: `localhost:11434` was being reported as "left the
machine". It had not. Loopback is now its own predicate and its own finding,
so the egress line means egress.
Not wired into CI, for the same reason `fullpage.mjs` is not: the first use of
a language pair waits on Chrome fetching a model, and a runner that downloads
one before it can measure anything is a runner that flakes. The value here is
that a skeptic can run it in one command on their own machine, which is the
part CI could not have provided anyway.
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>