Commit Graph

1310 Commits

Author SHA1 Message Date
Asen's Agent 4f1caa788d rename: multi-click → batch-click
Rename the command from "browser multi-click" to "browser batch-click"
per @AsenL's request. Updated across all files: implementation, action
enum, CLI wiring, router, output formatting, and all tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 14:05:54 +08:00
Asen's Agent eb3830d32e test: add multi-click e2e coverage 2026-04-03 09:33:50 +08:00
Asen's Agent 948698bfe3 test: add E2E tests for browser multi-click command
- multi_click_sequential_json: verifies 3 buttons clicked in order
  with correct response shape (total, clicked, results array,
  changed.url_changed + focus_changed, context, meta)
- multi_click_partial_failure_json: verifies MULTI_CLICK_PARTIAL
  error with successful-prefix results and failed_at details when
  second selector doesn't exist

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 09:31:05 +08:00
Asen's Agent 65769150ec fix: add focus_changed tracking and parser tests for multi-click
- Add pre/post focus state tracking to match interaction command contract
- Include focus_changed in changed object alongside url_changed
- Add 3 parser tests: basic multi-selector, missing selectors, --delay flag
- Make dispatch_click and get_active_element_id reusable from click.rs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 09:28:55 +08:00
Asen's Agent 9a3c593db6 feat: implement browser multi-click command
Add a multi-click command that accepts multiple selectors and clicks
them in sequence. Stops on the first failure, returning partial results
with details about which clicks succeeded. Supports --delay for
inter-click timing and all click options (button, count).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 09:24:47 +08:00
Junliang Feng 8f7fe769fc docs: restore deleted evaluate-api.mdx (#473) 2026-04-03 08:48:17 +08:00
mcfn.feng 342a78a51c [root]docs: restore docs.json nav entry and openclaw.mdx lost in revert 72aac42
Also restores:
- docs/docs.json: re-add api-reference/evaluate-api navigation entry
- docs/openclaw.mdx: restore OpenClaw plugin integration content
2026-04-03 08:38:24 +08:00
mcfn.feng bd8c9767e7 [root]docs: restore deleted evaluate-api.mdx
Restores docs/api-reference/evaluate-api.mdx that was accidentally
removed in revert commit 72aac42.
2026-04-03 08:35:02 +08:00
Adcent f457e70886 Update README.md 2026-04-03 00:18:15 +08:00
Junliang Feng d179bd8ea0 chore: bump CLI to 1.0.1 (#472) actionbook-cli-v1.0.1 2026-04-02 23:36:42 +08:00
mcfn.feng ee83689aa2 [packages/cli]docs: add 1.0.1 entry to CHANGELOG 2026-04-02 23:35:48 +08:00
mcfn.feng 8aa6116cbd [packages/cli]chore: bump version to 1.0.1 (npm rejected 1.0.0 re-publish) 2026-04-02 23:34:40 +08:00
Junliang Feng fcf79b96f1 fix: Windows build, E2E stability, README in npm, workflow_dispatch (#471) 2026-04-02 23:27:23 +08:00
mcfn.feng a171ea2192 [root]fix: copy root README.md to CLI package before npm publish 2026-04-02 23:23:56 +08:00
Junliang Feng b706b2b291 fix: gate Unix-specific APIs for Windows build (#470) actionbook-cli-v1.0.0 2026-04-02 23:09:54 +08:00
mcfn.feng add1259e98 [root]chore: add workflow_dispatch to test.yml for manual E2E trigger 2026-04-02 23:08:53 +08:00
mcfn.feng 6a2b6010fd [packages/cli]fix: increase Chrome startup timeout to 30s and relax snapshot assertion
- Increase DevTools URL discovery timeout from 15s to 30s for CI environments
- Relax snap_selector_flag_limits_subtree assertion to allow ±2 node tolerance
- Increase E2E test workflow timeout to 20 minutes
2026-04-02 23:01:55 +08:00
mcfn.feng fd0dfe3f63 [packages/cli]fix: gate Unix-specific APIs behind #[cfg(unix)] for Windows build
- server.rs: gate flock, kill FFI, UnixListener, SIGHUP behind #[cfg(unix)]
- chrome_reaper.rs: gate SIGTERM FFI, fall back to child.kill() on Windows
- client.rs: gate UnixStream usage, return error on non-Unix platforms
2026-04-02 22:49:36 +08:00
Junliang Feng 6c820401d1 chore: version packages (#468) 2026-04-02 22:32:30 +08:00
github-actions[bot] 8b55277dad chore: version packages 2026-04-02 14:27:45 +00:00
asensagent c4a583f20f Add command block to Quick Start (#469)
[root]docs: add command block to Quick Start showing concurrent tab operations

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 22:27:21 +08:00
Junliang Feng 6bedc03f81 fix: restore minimal CHANGELOG.md for CLI platform packages (#467) 2026-04-02 22:16:35 +08:00
mcfn.feng 696d3e0e85 [root]fix: restore minimal CHANGELOG.md for platform packages
changesets/action reads CHANGELOG.md of changed packages when creating
the Version PR. Empty placeholders prevent ENOENT crash.
2026-04-02 22:15:50 +08:00
Junliang Feng 9a2903628f chore: add changeset for CLI 1.0.0 stable release (#464) 2026-04-02 22:12:19 +08:00
Adcent 3b14d7b47a Update README.md (#466) 2026-04-02 22:10:35 +08:00
mcfn.feng 163383437d [doc] update changelog 2026-04-02 22:09:12 +08:00
mcfn.feng ccc11376ad [root]chore: revert CLI changeset to patch for 1.0.0 release 2026-04-02 22:00:24 +08:00
mcfn.feng f79b944188 [root]chore: change CLI changeset to major for 1.0.0 release 2026-04-02 21:59:50 +08:00
mcfn.feng a0d22370ad [doc] update changelog. 2026-04-02 21:57:02 +08:00
mcfn.feng cc58aeebbc [root]chore: add changeset for CLI 1.0.0 stable release 2026-04-02 21:17:57 +08:00
Junliang Feng 442393fd04 release: merge release/1.0.0 into main (#463) 2026-04-02 21:15:38 +08:00
asensagent aeceb8d0a8 Update README for 1.0.0 (#462) 2026-04-02 20:53:31 +08:00
Asen's Agent d707c09777 [root]docs: restructure Installation, Quick Start, and add AI Agent Skills
Move Installation before Quick Start with npm and cargo-from-source
options. Simplify Quick Start to usage only. Add dedicated AI Agent
Skills section.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 20:44:06 +08:00
mcfn.feng 00a9b8ef14 [feat] update version 2026-04-02 20:02:06 +08:00
Adcent f1e4cc4e3d Update README.md 2026-04-02 18:47:09 +08:00
Asen's Agent de2cf2633e [root]docs: clarify demo description to show agent visits 192 websites
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 18:37:34 +08:00
Asen's Agent 52508eecaa [root]docs: update demo video description for First Round demo
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 18:35:15 +08:00
Adcent 13f392cb1c Update README.md 2026-04-02 18:34:16 +08:00
mcfn.feng c2a2a43de5 [packages/cli]fix: select fixture uses DOM APIs to avoid TrustedHTML error
Chrome 146+ may enforce Trusted Types on certain pages, causing
innerHTML assignments to fail. Replace innerHTML with createElement
+ appendChild in install_select_fixture.
2026-04-02 18:13:32 +08:00
mcfn.feng 5cee89cde8 [packages/cli]fix: type/press key events not reaching correct tab + contenteditable fix
Three issues fixed:

1. Input.dispatchKeyEvent routes to Chrome's active tab, ignoring sessionId.
   - type: add Target.activateTarget before key dispatch loop
   - press: add Target.activateTarget before key dispatch

2. type command used minimal key definitions (just key+text) which didn't
   trigger native text insertion on contenteditable elements.
   - Reuse key_definition() from press module for full CDP key definitions
     (code, windowsVirtualKeyCode, nativeVirtualKeyCode, unmodifiedText)

3. Contenteditable e2e test fixture had element at top:500px, whose center
   (y=531) exceeded headless viewport height (513), causing click to miss.
   - Changed to top:200px

Closes ACT-822
2026-04-02 18:02:23 +08:00
mcfn.feng 66b732b84e [packages/cli]chore: bump version to 1.0.0-alpha.10 2026-04-02 17:49:20 +08:00
Junliang Feng ead3cbe740 fix(cli): support contenteditable elements in type/fill/focus (#461) 2026-04-02 17:44:26 +08:00
AlexZ a2024fbcb1 [packages/cli]chore: fix formatting in contenteditable test
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 17:41:29 +08:00
AlexZ 7ab8a7c576 [packages/cli]fix: support contenteditable elements in type/fill/focus commands
CDP DOM.focus fails on contenteditable divs (e.g., Lark/Notion/Slate editors)
with "Element is not focusable" (-32000). This change adds a JS .focus()
fallback and click-to-place-cursor for rich text editors.

Changes:
- Add TabContext::focus_element() with JS .focus() fallback when DOM.focus fails
- type command: detect contenteditable and click element center to establish
  cursor position (required by Slate/ProseMirror internal cursor management)
- fill/focus commands: use focus_element() instead of raw DOM.focus
- Add E2E tests for type and focus on contenteditable elements

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 17:39:34 +08:00
Junliang Feng bd1435a056 fix: graceful Chrome shutdown + bump alpha.9 (#460) 2026-04-02 17:27:57 +08:00
mcfn.feng ca4303a73d [packages/cli]chore: bump version to 1.0.0-alpha.9 2026-04-02 17:23:37 +08:00
Junliang Feng 943980b066 fix(cli): graceful Chrome shutdown to preserve window state (#459)
[packages/cli]fix: graceful Chrome shutdown via SIGTERM before SIGKILL

Send SIGTERM first so Chrome can flush Preferences (window placement,
cookies, etc.), wait up to 3s for graceful exit, then fall back to
SIGKILL. This allows Chrome to restore window position and size on
next launch.
2026-04-02 17:20:46 +08:00
mcfn.feng f472fd2912 [packages/cli]fix: graceful Chrome shutdown via SIGTERM before SIGKILL
Send SIGTERM first so Chrome can flush Preferences (window placement,
cookies, etc.), wait up to 3s for graceful exit, then fall back to
SIGKILL. This allows Chrome to restore window position and size on
next launch.
2026-04-02 17:15:26 +08:00
mcfn.feng 4128749c00 Merge branch 'bugfix/remove-device-metrics-override' into release/1.0.0 2026-04-02 17:08:30 +08:00
mcfn.feng 4f833ac38a [feat] update version. 2026-04-02 17:08:04 +08:00