v1.9.2 — one name, measured numbers, a verifiable tool surface
One name, and numbers that are measured rather than typed.
The problem this release fixes
The README carried four different tool counts at the same time. It said "3 tools" where a client
sees 6, claimed "8 higher-order methods" in three places and "17" in a fourth when there are 18,
said the detector recognized 17 frameworks on one line and the correct 64 on another, and gave
bridge "133 commands" — a number matching nothing measurable. A section titled "All 145 tools"
listed 92. Worse, the server itself printed exposing all 114 tools while exposing 145.
None of that was dishonesty. It was arithmetic maintained by hand across 900 lines of prose,
which is a losing proposition.
What changed
Counts are derived. describeSurface() invokes the real tool factories with an inert bridge
and measures what they return. npm run check:surface verifies every marked number in the README
against what the server reports over JSON-RPC, and fails CI when they disagree.
crawlio-browser tools prints the exact surface each mode exposes — --full for all 145,
--json for a machine-readable form. It runs with no browser, no extension and no network.
Installing this server hands an agent the debugger permission on a browser holding live sessions;
being able to read what it exposes before configuring a client is a reasonable thing to ask for.
The token-reduction claim was wrong and is now measured. "~95% schema token reduction" was an
estimate. Serializing the tools/list payload each mode actually returns gives 83% — code
mode is not free, because execute and search carry long descriptions. 83% with a stated
method beats 95% with none.
One name: Crawlio Browser. The README's title said "Crawlio Agent" directly above an npm badge
and install command that both said crawlio-browser. The package, CLI, server name and repository
already agreed; only the prose had not caught up. The Chrome extension keeps its Web Store name,
Crawlio for Chrome, and is described as the browser-side component.
Three identifiers deliberately did not move, because each is load-bearing: the
<meta name="crawlio-agent"> opt-out is a protocol sites have already deployed, the dual
config-key check is the backward-compatibility path, and the macOS app bundle path is written
into client config files — renaming it would break every install pointing there.
Method Mode is the one coined term. The runtime it sits on is described rather than branded.
--help and --version no longer start a server. Both fell through to the transport setup,
so asking the CLI its version bound a WebSocket port and left a process running.
The MCP registry listing is now publishable. server.json had a description over the 100-char
limit and a deprecated schema, and the published package was missing the mcpName field the
registry uses to verify npm ownership — all three would have failed submission.
Upgrading
npx crawlio-browser@latest init — or just update the version your client pins. No configuration
changes are required, and no on-disk paths moved.