feat: Chrome lifecycle, HAR recording, 99+ tests, docs#35
Merged
justrach merged 3 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
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.
Summary
Implements Chrome lifecycle management (#20), comprehensive test suite (#16), HAR recording, tab cleanup, and full documentation.
New Files
src/chrome/launcher.zig— Chrome launch, health-check, auto-restart, port detectionsrc/cdp/har.zig— HAR 1.2 recorder with CDP Network domain integrationsrc/test/integration.zig— 30+ integration testsCHANGELOG.md— v0.1.0 release notesCONTRIBUTORS.md— contributor guideNew Endpoints
/har/start,/har/stop,/har/status— HAR recording lifecycle/close— tab cleanup with full resource deallocationMemory Safety
removeTabnow cleans up HAR recorders (was a leak)child.spawn()bug in launcherTests
Closes #20, #16