Conversation
…} + block_urls + clear_cookies Chrome 142 emits CDP message variants chromiumoxide 0.6's protocol crate can't deserialize, breaking every WS frame. Bump to 0.9 restores wire compatibility. New BrowserPort primitives: - mouse_down(x,y), mouse_up(x,y), mouse_move(x,y,buttons_mask) - mouse_hold(x,y,ms): humanized approach + ±1px jitter drag during hold, designed to clear PerimeterX/HUMAN press-and-hold challenges - block_urls(patterns): Network.setBlockedURLs glob (uses legacy `urls` array since chromiumoxide_cdp 0.9's `urlPatterns` shape is rejected by Chrome stable) - clear_cookies(origin): Storage.clearDataForOrigin for cookies + storage, resets bot-detection clearance state between runs Adapter refactored: extracted mouse_input.rs + cdp_ext.rs to keep each file under 200 LOC; new with_page() helper and op! macro deduplicate the page_for + within boilerplate. BREAKING: workspace version bumped 2.8.0 → 3.0.0. BrowserPort trait gains 5 required methods (mouse_down/up/move/hold + block_urls + clear_cookies). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Two new agent actions backed by BrowserPort::mouse_hold:
- press_and_hold_element { index, ms? }: resolves bbox center of a
clickable in the current DOM snapshot
- press_and_hold_coordinate { x, y, ms? }: raw pixel coords for buttons
that aren't in the snapshot (e.g. inside a cross-origin iframe)
Default hold 12000ms, clamped 100..60000. Both dispatch the humanized
CDP press (pre-approach + jitter during hold) so PerimeterX-style
press-and-hold widgets accept the gesture as human.
Registry default now exposes 10 actions; registry_test updated.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ras_agent::brain target now emits per-step structured logs: - agent decision: eval / memory / next_goal / actions[] - agent action params (debug): raw parameters JSON per action - action result: ok, done, extracted_content, error ras_llm_openai gains TRACE-level dumps of the request body and the raw response body, so the full prompt + completion can be inspected when debugging a misbehaving model. Tracing call sites factored out to run_step_log.rs. Common log presets: RUST_LOG=info,ras_agent::brain=info # brain + action stream RUST_LOG=info,ras_agent::brain=debug # + raw action params RUST_LOG=info,ras_llm_openai=trace # full LLM I/O (very loud) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…nt path The pre-commit guard scripts skip `*/tests/*`, `*/examples/*`, `*/xtask/*`, but the glob requires a parent directory component. When lefthook passes relative paths like `examples/foo.rs` (no leading `*/`), the exclusion fails and the guard incorrectly checks throwaway PoCs. Add the bare-path alternatives (`tests/*`, `examples/*`, `xtask/*`) to the case arms so both forms match. Applied across check-loc.sh, check-no-comments.sh, check-no-unwrap.sh. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
release: v3.0.0 — PerimeterX press-and-hold solver + CDP primitives
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
Major version 3.0.0 — end-to-end PerimeterX press-and-hold challenge solver via pure CDP, plus the supporting primitives.
Breaking changes
chromiumoxide0.6 → 0.9 (Chrome 142+ wire compat)BrowserPorttrait gains 6 required methods (mouse_down/up/move/hold,block_urls,clear_cookies)What's in this release
See PR #47 for the full feature breakdown. Pure-CDP PX solver verified working on pedidosya.com.ar; autodraw smoke verifies synthetic mouse pipeline draws on canvas.
🤖 Generated with Claude Code