feat: implement feature parity with agent-browser (10 issues)#56
Merged
justrach merged 5 commits intoMar 4, 2026
Merged
Conversation
…hot pipeline, crawler, and 20 passing tests - build.zig + build.zig.zon for Zig 0.15.1 - HTTP server with /health and /tabs endpoints (std.http.Server) - Bridge with thread-safe tab registry (RwLock) - CDP client with JSON-RPC message building - A11y snapshot pipeline: filter, depth, format, diff - Crawler: URL validator (SSRF protection), rate limiter, HTML→Markdown converter - Stealth mode: embedded stealth.js + UA rotation - Storage stubs: local, Kafka, R2 - All 20 unit tests passing Refs #1
…34) - Add pure Zig WebSocket client (RFC 6455: handshake, masked frames, large msg alloc) - Wire CDP client into Bridge with per-tab connections and string ownership - Add HTTP routes: /discover, /navigate, /snapshot, /action, /text, /screenshot, /evaluate - Add /browdie easter egg 🧁 (she browses different) - Fix #30: /discover HTTP/1.1 + Content-Length + SO_RCVTIMEO - Fix #31: WebSocket localhost -> 127.0.0.1 resolution - Fix #32: Tab string lifetime (dupe into bridge allocator, fetchRemove old entries) - Fix #34: CDP response ID correlation (skip events, match by command ID) - Add test harness for agent-led browser testing (#33) - Fix embedFile paths, i128->i64 cast, comptimePrint->runtime search - 49 tests passing, full e2e verified against Chrome + merlionjs.com Amp-Thread-ID: https://ampcode.com/threads/T-019cb7e2-d40c-7089-949c-dee9ad3ede19 Co-authored-by: Amp <amp@ampcode.com>
- Chrome launcher (launch, health-check, auto-restart, port detection) - HAR recorder with /har/start, /har/stop, /har/status endpoints - /close endpoint for tab cleanup with full resource deallocation - HAR recorder cleanup in removeTab + Bridge.deinit (no memory leaks) - 99+ tests: integration suite, bridge stress, diff, ref cache, markdown, validator - Updated readme.md to reflect actual implemented state - Added CHANGELOG.md and CONTRIBUTORS.md Closes #20, #16 Refs #20
Fixes #36: Fix /action ref resolution using DOM.resolveNode + Runtime.callFunctionOn - Parse backendDOMNodeId from CDP a11y tree - Populate ref cache during /snapshot - Resolve refs via CDP instead of broken CSS selectors Fixes #38: Add /diff/snapshot endpoint using existing diff.zig Fixes #39: Add full-page screenshot (?full=true) Fixes #40: Add /back, /forward, /reload endpoints Fixes #41: Add /cookies and /cookies/clear endpoints Fixes #42: Add /storage/local and /storage/session endpoints Fixes #49: Add CSS selector scoping for /text Fixes #50: Add /get endpoint (html/value/attr/title/url/count/box/styles) Fixes #51: Add depth param for /snapshot Co-authored-by: blackfloofie <265516171+blackfloofie@users.noreply.github.com> Refs #36
This was referenced Mar 4, 2026
Co-authored-by: blackfloofie <265516171+blackfloofie@users.noreply.github.com>
This was referenced Mar 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Feature Parity Implementation
Closes #36, #38, #39, #40, #41, #42, #49, #50, #51
Critical Fix
data-browdie-refCSS selectors withDOM.resolveNode+Runtime.callFunctionOnusingbackendNodeIdfrom the a11y tree. Actions (click, type, fill, hover, focus, select) now work on real pages.New Endpoints (9)
/back?tab_id=/forward?tab_id=/reload?tab_id=/diff/snapshot?tab_id=/cookies?tab_id=/cookies/clear?tab_id=/storage/local?tab_id=/storage/session?tab_id=/get?tab_id=&type=Enhanced Endpoints
/screenshot?full=true/snapshot?depth=N/text?selector=Live-Tested
All 21 endpoints verified against Chrome 145 on macOS.
Co-authored-by: blackfloofie 265516171+blackfloofie@users.noreply.github.com