mirror of
https://github.com/actionbook/actionbook.git
synced 2026-09-19 03:28:06 +08:00
f542a72f82
* [root]chore: add changeset for screenshot timeout fix Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * [packages/cli-v2]feat: add iframe content expansion and frame-aware interaction support Snapshot now automatically expands 1 level of iframe content, and all interaction/observation commands route CDP operations to the correct frame session for cross-origin iframe elements. This is fully transparent to agents — no new commands or flags required. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * [packages/cli-v2]fix: complete frame routing in screenshot annotate + clarify flag semantics - get_rect_for_object() now uses execute_for_frame() for Runtime.callFunctionOn, fixing iframe element annotation boxes that would fail on cross-origin objectIds - Design doc: replace overly broad "all flags work as before" with precise per-flag iframe semantics (--selector/--cursor main-frame only, --depth per-frame) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * [packages/cli-v2]style: apply rustfmt formatting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * [packages/cli-v2]style: fix clippy collapsible_if warning Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * [packages/cli-v2]test: add iframe E2E tests + RefCache unit tests + fix fill for iframe - 7 E2E tests: snapshot expansion, interactive filter, html/click/fill/value on iframe refs, ref uniqueness across frames - 4 RefCache unit tests: composite key collision, frame_id round-trip, cross-frame stability - fix fill.rs: use Runtime.callFunctionOn(objectId) instead of document.activeElement to work correctly for iframe elements Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * [packages/cli-v2]test: add cross-origin (OOPIF) iframe E2E tests - Second HTTP server on different port for true cross-origin iframes - 4 new tests: xo_iframe_snapshot_expands, xo_iframe_html, xo_iframe_fill, xo_iframe_click — all validate execute_for_frame() session routing - Total iframe E2E coverage: 11 tests (7 same-origin + 4 cross-origin) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * [packages/cli-v2]style: apply rustfmt to test files Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * [packages/cli-v2]style: fix clippy useless_format in test harness Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * [packages/cli-v2]refactor: rename execute_in_frame → execute_on_element Rename frame-aware CDP execution methods to better reflect semantics: - execute_in_frame → execute_on_element (TabContext method) - execute_for_frame → execute_for_element (standalone helper) The old names leaked the iframe implementation detail. The new names express the caller's intent ("execute on the resolved element") without implying frame awareness — consistent with the cli-v2 principle that agents should not need to know about iframe boundaries. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * [packages/cli-v2]refactor: restore execute_for_frame name for low-level helper Layered naming convention: - High-level (command files): ctx.execute_on_element() — named by intent - Low-level (infrastructure): execute_for_frame() — named by mechanism The low-level helper takes frame_id as input and routes by frame/session, so execute_for_frame accurately describes what it does. Renaming it to execute_for_element would obscure the mechanism it implements. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * [packages/cli-v2]test: add screenshot --annotate and scroll into-view iframe E2E tests Complete the iframe E2E test matrix: - iframe_screenshot_annotate_includes_iframe_elements: verifies annotated screenshot succeeds with iframe refs in RefCache - iframe_scroll_into_view_works_on_iframe_element: verifies scroll into-view routes callFunctionOn to correct frame session Total: 13 iframe E2E tests (9 same-origin + 4 cross-origin) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>