Five defects, all found by writing the 2.1 capability specifications rather than by anything failing. Four were invisible in normal use, which is how they survived the 2.0 rewrite and its test suite.
No API changes. Upgrade with npx @agentdeskai/browser-tools-mcp@latest.
Fixed
-
HAR exports reported every request as starting when it finished. The capture stamps its timestamp at
onRequestFinished, and the HAR builder used that forstartedDateTime, so a two-second request looked instantaneous at the wrong moment. Requests now carrystartedAtfrom the DevTools entry's own start time, falling back to finish-minus-duration. Anything reading a HAR — including Chrome's own Network panel — was being misled. -
Reads came back in arrival order rather than event order. Telemetry is flushed in 100 ms batches per tab and buffered while the socket is down, so the order the connector receives entries genuinely differs from the order they happened. Queries slice the tail as "the newest", which could return the wrong entries outright and interleave two tabs wrongly on an
allTabsread. Reads are now ordered by event time. -
logLimitdefaulted to 50 entries per category per tab — less than a single real page load, so anything reading back over a session was silently clipped. Now 500. The configurable range is unchanged. -
The selected element was truncated in the page but never scrubbed there. Every console and network value goes through scrub-then-truncate; the selected element was sliced inside the page and sent as-is. The server still scrubbed on arrival, so nothing unredacted ever reached the model — but it crossed the socket unscrubbed, and truncating first is exactly the ordering that hid a JWT from the pattern meant to catch it in 1.x. That was the bug 2.0.0 fixed everywhere except here.
-
Audits ran one device and reported another.
formFactorandscreenEmulationwere set butthrottlingandemulatedUserAgentwere not, so a desktop audit ran a desktop viewport under Lighthouse's default mobile Slow-4G throttling while identifying itself as a phone, then reported"desktop"from a hardcoded field. Flags now come from Lighthouse's own presets so all three agree, and the report names the device it actually simulated.
Also
Lighthouse's device presets load on demand. Importing them eagerly cost about 30 ms at startup, on the path that answers initialize.
356 tests, up from 339.