Simon
da67f3b07e
chore(controller): .disposed guard
2026-04-13 20:13:41 +08:00
Simon
c72ff95670
docs: update links in troubleshooting page
2026-04-13 17:21:26 +08:00
Simon
ca197d14e9
fix: dom typing
2026-04-12 03:16:39 +08:00
Simon
acfb336a9a
fix: pre-publish and post-publish hooks
2026-04-12 03:16:13 +08:00
Simon
4d27d49752
refactor(setup): upgrade to TypeScript 6 with source-first monorepo resolution
2026-04-12 02:04:21 +08:00
XePope
b46693f525
fix(core): correct autoFixer wait fallback action format
2026-04-09 16:49:16 +08:00
Simon
e9784a16d0
chore: upgrade deps
2026-04-08 22:00:29 +08:00
Simon
ebe3a3f7c3
chore: rm eslint-config-prettier and eslint-plugin-react-refresh
2026-04-08 21:58:03 +08:00
Simon
9ebb629aca
fix: wxt vite-plugin error
2026-04-08 21:16:29 +08:00
Simon
4f80ec1459
refactor: upgrade ESLint 9→10 and simplify React lint toolchain
...
- Upgrade eslint and @eslint/js to v10
- Replace eslint-plugin-react-x + eslint-plugin-react-dom + eslint-plugin-react-hooks
with unified @eslint-react/eslint-plugin
- Raise dev Node.js requirement to ^22.13.0 || >=24 (runtime packages unaffected)
- Add .npmrc with engine-strict=true
- Move all @eslint-react rule overrides to eslint.config.js,
eliminating plugin-specific inline eslint-disable comments
- Fix real issues caught by new rules: useless assignments,
leaked setTimeout, ref naming, useState setter naming
2026-04-08 20:31:31 +08:00
liuguiyuan
9104064e8c
fix(mask): stop requestAnimationFrame loop on dispose to prevent memory leak
...
The #moveCursorToTarget() method recursively schedules itself via
requestAnimationFrame, creating a continuous animation loop for the
AI cursor. However, dispose() only removes the DOM wrapper element
without stopping this loop, causing:
- CPU waste: rAF callback continues executing every frame (~60fps)
after the mask is disposed, performing unnecessary calculations
on a detached cursor element.
- Resource leak: Each SimulatorMask instance creates an unrecoverable
animation loop that persists for the lifetime of the page.
- Console noise: style assignments to removed DOM nodes may produce
browser warnings.
Fix: Add a #disposed boolean flag, checked at the top of
#moveCursorToTarget() to short-circuit the recursion. Set the flag
to true in dispose() before removing DOM elements.
Changes:
- Add #disposed field (default false)
- Guard #moveCursorToTarget() with early return when #disposed
- Set #disposed = true in dispose() before cleanup
2026-04-08 18:53:42 +08:00
Simon
12b6001d53
fix(ui): make panel history max-height responsive to viewport
2026-04-08 17:05:10 +08:00
Simon
362bf822f7
fix(ext): increase result card font size and use foreground color
...
Fixes conflicting text-xs/text-[11px] classes and muted color on the
ResultCard component, making the result text more readable.
Closes #360
2026-04-08 16:50:09 +08:00
dependabot[bot]
4734e2df26
chore(deps-dev): bump the development-dependencies group with 6 updates ( #405 )
2026-04-07 15:39:11 +08:00
Simon
7071a6c26a
fix(mcp): bind HTTP+WS server to localhost only ( #399 )
2026-04-04 03:15:20 +08:00
Simon
cb55daf47d
chore(version): bump version to 1.7.1
2026-04-04 01:37:49 +08:00
Simon
43415d3139
feat(website): sticky header
2026-04-04 01:34:54 +08:00
Simon
9cc9edf17e
docs: lm studio ( #398 )
...
* docs(page): lm studio doc
* docs: update documentation and improve model section
2026-04-04 01:15:41 +08:00
Simon
4272939217
fix(controller): treat interactive with aria as distinct
2026-04-03 20:21:11 +08:00
Lubrsy
148bdb6839
fix: recognize role="listitem" as interactive element ( #203 )
...
* fix: recognize role="listitem" as interactive element
* fix: DISTINCT_INTERACTIVE_ROLES
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: Simon <10131203+gaomeng1900@users.noreply.github.com >
2026-04-03 20:09:48 +08:00
Simon
7e9027167d
feat(controller): add keepSemanticTags config to keep the semantic structure of the page
2026-04-03 19:01:54 +08:00
Simon
0ca1c8de0b
feat(controller): consider hasScrollbarSignal when detecting scrollable
2026-04-03 16:09:35 +08:00
Simon
85a33ac1a4
feat(controller): improve scroll action
2026-04-02 22:05:47 +08:00
Simon
13d952dc9d
fix(ext): guard postMessage listeners against iframe sources
...
Add `e.source !== window` check to both content script and main-world
script message handlers, preventing iframes from injecting or
intercepting extension bridge messages.
2026-04-02 18:53:59 +08:00
Simon
8159aa58a6
Merge branch 'main' into fix/scroll-direction-pixels
2026-04-02 18:31:56 +08:00
Simon
2bdb3be81c
Merge pull request #356 from lgy2020/fix/aria-attribute-detection
...
fix(isInteractiveCandidate): use hasAttribute with known aria list to detect aria- attributes
2026-04-02 17:41:36 +08:00
Simon
bde630f55d
chore(controller): add @edit mark
2026-04-02 17:38:02 +08:00
Simon
3efef0ec42
fix(controller): clean up INTERACTIVE_ARIA_ATTRS
2026-04-02 17:33:27 +08:00
Simon
ec08b05da1
feat(ext): add systemInstruction to ExecuteConfig
...
Expose a serializable `systemInstruction` string field on the
page-facing ExecuteConfig, mapped to `instructions.system` when
creating MultiPageAgent. Functions cannot cross the postMessage
boundary, so this flat string field replaces the object form.
Closes #359
2026-04-02 16:34:57 +08:00
Simon
5ea2edd13c
Merge pull request #384 from Anyexyz/main
...
fix: extract currentScript outside setTimeout to avoid null pointer
2026-04-02 16:20:17 +08:00
Anyexyz
1999bbeda9
fix: extract currentScript outside setTimeout to avoid null pointer
2026-04-02 16:17:46 +08:00
Simon
d0de8ad838
docs(website): add qwen3.6-plus to models page
2026-04-02 15:30:58 +08:00
Simon
0402a6be03
fix(tabs): error message typo
2026-03-31 21:04:53 +08:00
Simon
6823e04ca9
chore(version): bump version to 1.7.0
2026-03-31 20:45:12 +08:00
Simon
2b20b48dff
chore(controller): reuse pointer xy
2026-03-31 20:27:04 +08:00
Simon
296459924a
feat(controller): enhance click action with elementFromPoint
2026-03-31 20:02:39 +08:00
Simon
8eee3b27e2
feat(controller): fix SimulatorMast mem leak; add passthrough events
2026-03-31 19:59:57 +08:00
Simon
32d6f0c74b
fix(controller): click action robust
2026-03-31 17:41:49 +08:00
Simon
da2b7b5a8f
Merge pull request #370 from alibaba/dependabot/npm_and_yarn/production-dependencies-90c90c5d9d
...
chore(deps): bump @modelcontextprotocol/sdk from 1.27.1 to 1.29.0 in the production-dependencies group
2026-03-31 15:09:37 +08:00
dependabot[bot]
784627a7c1
chore(deps-dev): bump the development-dependencies group with 3 updates
...
Bumps the development-dependencies group with 3 updates: [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ), [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react ) and [simple-icons](https://github.com/simple-icons/simple-icons ).
Updates `typescript-eslint` from 8.57.2 to 8.58.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.58.0/packages/typescript-eslint )
Updates `lucide-react` from 1.0.1 to 1.7.0
- [Release notes](https://github.com/lucide-icons/lucide/releases )
- [Commits](https://github.com/lucide-icons/lucide/commits/1.7.0/packages/lucide-react )
Updates `simple-icons` from 16.13.0 to 16.14.0
- [Release notes](https://github.com/simple-icons/simple-icons/releases )
- [Commits](https://github.com/simple-icons/simple-icons/compare/16.13.0...16.14.0 )
---
updated-dependencies:
- dependency-name: typescript-eslint
dependency-version: 8.58.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: development-dependencies
- dependency-name: lucide-react
dependency-version: 1.7.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: development-dependencies
- dependency-name: simple-icons
dependency-version: 16.14.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: development-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-30 20:22:53 +00:00
dependabot[bot]
46d6c02c95
chore(deps): bump @modelcontextprotocol/sdk
...
Bumps the production-dependencies group with 1 update: [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk ).
Updates `@modelcontextprotocol/sdk` from 1.27.1 to 1.29.0
- [Release notes](https://github.com/modelcontextprotocol/typescript-sdk/releases )
- [Commits](https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.27.1...v1.29.0 )
---
updated-dependencies:
- dependency-name: "@modelcontextprotocol/sdk"
dependency-version: 1.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: production-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-30 20:21:25 +00:00
liuguiyuan
f2b6c9dfd2
fix: use hasAttribute with known aria list for interactive candidate detection
...
Replace broken el.hasAttribute("aria-") with a curated list of 27
aria attributes checked via hasAttribute. Each check is O(1).
WAI-ARIA 1.2 defines ~50 aria attributes total per MDN.
Of these ~27 appear on interactive elements such as buttons,
inputs, sliders, and dialogs. The remaining ~20 are structural
container attributes like aria-live, aria-colcount, and
aria-rowspan that only appear on non-interactive containers.
Checking them would not change results.
2026-03-31 00:57:44 +08:00
Simon
c465fd8aa4
chore(version): bump version to 1.6.3
2026-03-30 22:29:03 +08:00
Simon
1eef785a61
fix(ext): tabs deduplication
2026-03-30 22:18:55 +08:00
Simon
0b4eb6b49a
docs(ext): experimentalIncludeAllTabs
2026-03-30 22:08:09 +08:00
Simon
49b137981c
fix(ext): tab events do not work for content scripts
2026-03-30 21:40:16 +08:00
Simon
cad033d63b
feat(ext): add experimentalIncludeAllTabs UI
2026-03-30 20:25:04 +08:00
Simon
312952ec41
fix(ext): multi window errors
2026-03-30 20:24:24 +08:00
Simon
52edd78cd4
chore(ext): improve debug logging
2026-03-30 19:48:52 +08:00
Simon
e1fede1194
feat(ext): option to control all tabs
2026-03-27 20:18:13 +08:00