| Age | Commit message (Expand) | Author |
| 2026-06-29 | feat: address elements by stable refs across re-renders (#8) | Aman Kumar |
| 2026-06-21 | release: v0.6.0 — per-tab isolation, Unix socket daemon, on-demand init (#6) | Aman Kumar |
| 2026-05-08 | feat: add per-tab isolation for multi-agent safety | amankumarsingh77 |
| 2026-05-07 | release: v0.5.0 — browser_console tool for JS error/console diagnostics | amankumarsingh77 |
| 2026-05-06 | release: v0.4.0 — accessibility snapshot, network capture, snapshot-first p... | amankumarsingh77 |
| 2026-05-05 | feat: tab ownership — isolate harness tabs from the user's browsing | amankumarsingh77 |
| 2026-05-05 | fix: prevent TUI crash when screenshot path overflows terminal width (#2) | Aman Kumar |
| 2026-05-04 | feat: parallel tool execution with automatic mutation serialization | amankumarsingh77 |
| 2026-05-04 | docs: add speed-optimizations research; chore: improve browser detection in s... | amankumarsingh77 |
| 2026-05-03 | feat: render screenshots inline in TUI via Image component; add parallelizati... | amankumarsingh77 |
| 2026-05-02 | fix: replace @ts-expect-error with @ts-ignore for dynamic sharp import | amankumarsingh77 |
| 2026-05-02 | release: v0.3.1 — audit fixes for list_tabs IDs, switch_tab prefix matching... | amankumarsingh77 |
| 2026-05-02 | chore: address final-review minors — surface event-consumer crashes, docume... | amankumarsingh77 |
| 2026-05-02 | chore: final cleanup — drop unused keyCode export | amankumarsingh77 |
| 2026-05-02 | refactor: delete legacy daemon, tools, protocol, renderers; collapse to singl... | amankumarsingh77 |
| 2026-05-02 | refactor: drop legacy daemon usage from index/setup; trim state; move 4 files... | amankumarsingh77 |
| 2026-05-02 | feat(domains): migrate execute_js and run_script with path allowlist + timeou... | amankumarsingh77 |
| 2026-05-02 | feat(domains): migrate http_get (timeout covers body) and get_network_log (de... | amankumarsingh77 |
| 2026-05-02 | feat(domains): migrate drag_and_drop | amankumarsingh77 |
| 2026-05-02 | feat(domains): migrate viewport_resize | amankumarsingh77 |
| 2026-05-02 | feat(domains): migrate upload_file (safeJs), download (validated dir), print_... | amankumarsingh77 |
| 2026-05-02 | feat(domains): migrate tab tools (list, current, switch, new) | amankumarsingh77 |
| 2026-05-02 | feat(domains): migrate go_back, go_forward, reload | amankumarsingh77 |
| 2026-05-02 | feat(domains): migrate navigate (NavOutcome) and open_urls | amankumarsingh77 |
| 2026-05-02 | feat(domains): migrate screenshot, add typed sharp shim, restore click crossh... | amankumarsingh77 |
| 2026-05-02 | feat(domains): migrate handle_dialog | amankumarsingh77 |
| 2026-05-02 | feat(domains): migrate page_info, wait, wait_for_load with typed timeout | amankumarsingh77 |
| 2026-05-02 | feat(domains): migrate scroll with W3C deltaY semantics and dialog guard | amankumarsingh77 |
| 2026-05-02 | feat(domains): migrate type, press_key, dispatch_key with safeJs and matched-... | amankumarsingh77 |
| 2026-05-02 | feat(domains): migrate browser_click to defineBrowserTool — vertical slice | amankumarsingh77 |
| 2026-05-02 | feat: add defineBrowserTool helper, truncation, schemas/common, empty registry | amankumarsingh77 |
| 2026-05-02 | fix(cdp): serialize event consumer; persist dialog until taken; validate page... | amankumarsingh77 |
| 2026-05-02 | feat: add CDP session and BrowserClient factory | amankumarsingh77 |
| 2026-05-02 | fix(cdp): validate inbound CDP messages with a runtime type guard | amankumarsingh77 |
| 2026-05-02 | feat(cdp): add factory-based transport with Result and event AsyncIterable | amankumarsingh77 |
| 2026-05-02 | fix(cdp): clear socket timer on probe success; surface non-ENOENT readFile er... | amankumarsingh77 |
| 2026-05-02 | feat(cdp): port DevToolsActivePort discovery to Result | amankumarsingh77 |
| 2026-05-02 | feat(cdp): add types and error model for new transport layer | amankumarsingh77 |
| 2026-05-02 | docs(util): clarify safeJs trust boundary and unsupported value types | amankumarsingh77 |
| 2026-05-02 | feat(util): add pure keycodes and safeJs template helper | amankumarsingh77 |
| 2026-05-02 | fix(util): preserve AbortSignal.reason; validate namespace in temp paths | amankumarsingh77 |
| 2026-05-02 | feat(util): add result, time, and paths primitives for v0.3 rewrite | amankumarsingh77 |
| 2026-05-02 | feat: v0.2.1 — feature parity with browser-use/browser-harness | amankumarsingh77 |
| 2026-05-02 | perf: v0.2.0 — event-based waitForLoad, fast ensureAlive, JPEG screenshots,... | amankumarsingh77 |
| 2026-04-30 | Replace dynamic tool registration with browser_run_script | amankumarsingh77 |
| 2026-04-30 | fix: stop Chrome remote-debugging consent popup storm | amankumarsingh77 |
| 2026-04-29 | Replace socket daemon with direct CDP WebSocket connection | amankumarsingh77 |
| 2026-04-29 | Initial release: pi-browser-harness | amankumarsingh77 |