diff options
| author | amankumarsingh77 <amankumarsingh7702@gmal.com> | 2026-05-02 11:40:20 +0530 |
|---|---|---|
| committer | amankumarsingh77 <amankumarsingh7702@gmal.com> | 2026-05-02 11:40:20 +0530 |
| commit | fa54f769aad7bc3b6b05cf877cc5adda879721be (patch) | |
| tree | 42a8861cb4e50f54beac37b2fc7de33b19872d07 /CHANGELOG.md | |
| parent | b77c5ec30d37f214fe469791f814da8329ef4a77 (diff) | |
perf: v0.2.0 — event-based waitForLoad, fast ensureAlive, JPEG screenshots, page info caching
5 performance optimizations (14-36% faster end-to-end, output quality unchanged):
- fast ensureAlive(): WS state check instead of CDP roundtrip (96% faster per-call)
- event-based waitForLoad(): CDP load events instead of 300ms polling (99.5% faster for loaded tabs)
- JPEG screenshot support: 29-49% smaller files, faster CDP transfer
- page info caching: 1s TTL eliminates redundant evaluateJS calls
- parallel domain enables: Promise.all instead of sequential await in switchTab()
Benchmark: 3622ms vs 4243ms baseline on 3-tab navigation + screenshot task.
Diffstat (limited to 'CHANGELOG.md')
| -rw-r--r-- | CHANGELOG.md | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 0477c08..7e4f927 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,17 @@ All notable changes to pi-browser-harness will be documented in this file. +## [0.2.0] - 2026-05-02 + +### Changed +- **Performance: fast `ensureAlive()`** — skips CDP `Target.getTargets` health-check roundtrip on every tool call. Uses WebSocket state check + 30s TTL. 96% faster per-call setup. +- **Performance: event-based `waitForLoad()`** — replaces `readyState` polling (300ms interval) with CDP `Page.loadEventFired` / `frameStoppedLoading` event draining (50ms interval). Detects already-loaded pages in ~1ms (99.5% faster). +- **Performance: JPEG screenshot support** — `captureScreenshot()` accepts `format` (png/jpeg) and `quality` (1-100). JPEG q80 is 29-49% smaller than PNG for complex pages, speeding up CDP transfer and reducing LLM context cost. +- **Performance: page info caching** — `getPageInfo()` caches results for 1 second, eliminating redundant `evaluateJS` CDP roundtrips on back-to-back calls. +- **Performance: parallel domain enables** — `switchTab()` enables Page/DOM/Runtime/Network domains via `Promise.all` instead of sequential await. +- **Tools: `browser_screenshot`** now accepts `format` (png/jpeg) and `quality` parameters. +- **Tools: `browser_wait_for_load`** now uses `daemon.waitForLoad()` (event-based) instead of polling. + ## [0.1.0] - 2026-05-02 ### Added |
