Changelog
Release history for @ulpi/browse
v1.4.4
Audit persistence and comparison — save audit reports for later comparison and regression detection:
perf-audit save [name]— run audit and save to.browse/audits/perf-audit compare <baseline> [current]— compare saved audit vs current or another saved auditperf-audit list— list saved audit reportsperf-audit delete <name>— delete a saved audit- Regression thresholds aligned with Web Vitals "good" boundaries
- MCP tools:
browse_perf_audit_save,browse_perf_audit_compare,browse_perf_audit_list,browse_perf_audit_delete
v1.4.3
- Added
perf-audit,detect,coverage,initscript,scrollintoviewto MCP server — 99/99 CLI commands now have MCP tool definitions (zero gap) - Added supported technologies reference — 162 detected technologies documented
- Added
homepagefield to package.json for npmjs.com
v1.4.0 — Performance Audit System
4 new commands for web performance analysis:
perf-audit [url] — full performance audit:
- Core Web Vitals (LCP, CLS, TBT, FCP, TTFB, INP) with Google's thresholds
- LCP critical path reconstruction
- Layout shift attribution (font swap, missing dimensions, dynamic content)
- Long task script attribution with per-domain TBT
- Resource breakdown by type (JS, CSS, images, fonts, media, API)
- Render-blocking detection (sync scripts, blocking stylesheets)
- Image audit (format, dimensions, lazy-load, fetchpriority, srcset, oversized)
- Font audit (font-display, preload, FOIT/FOUT risk)
- DOM complexity (node count, depth, largest subtree)
- Stack detection (108 frameworks, 55 SaaS platforms)
- Third-party impact (88 classified domains)
- JS/CSS coverage via Playwright Coverage API
- Correlation engine (LCP to blocking CSS, Long Tasks to scripts, CLS to font swaps)
- Platform-specific recommendations (Shopify, WordPress, Magento, Wix)
- Flags:
--no-coverage,--no-detect,--json
detect — technology stack fingerprint:
- 108 frameworks across 12 categories with version, build mode, and config depth
- 55 SaaS platforms with app enumeration, per-app sizing, and constraint mapping
- Infrastructure: CDN, protocol breakdown, compression per-type, cache hit rate, Service Worker strategy
- Third-party inventory with 88 known domain classifications
- All detections in single page.evaluate() call (under 200ms)
coverage start|stop — JS/CSS code coverage
initscript set|clear|show — pre-navigation script injection
Bug fixes:
- Fixed esbuild
__nameinjection in page.evaluate() contexts
v1.3.2
- Fixed Chrome crash when using
--chrome/--runtime chrome - Chrome profile integrity hash validation bypassed by using clean profile + cookie import
v1.3.1 — Chrome Runtime & Replay Export
--runtime chrome/--chromeflag — launch system Chrome with CDP- Handoff defaults to Chrome (bypasses bot detection)
record export replayresolves @refs to real selectors (ARIA, CSS, XPath, text)
v1.3.0
- Cloud browser providers (Browserless, Browserbase)
- Cookie import from real browsers (macOS)
- Persistent browser profiles
- State save/restore
v1.2.0
- React DevTools integration (11 subcommands)
- Session multiplexing for parallel agents
- HAR recording
- Video recording
v1.1.0
- Snapshot @ref system
- Device emulation (100+ devices)
- Network mocking (route command)
- Domain filtering
v1.0.0
- Initial release
- 76 commands
- Persistent headless Chromium daemon
- ~100ms per command