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
a43e653a74
chore: simplify issue config
2026-04-08 18:52:53 +08:00
Simon
3bffd76626
chore: update github templates
2026-04-08 18:49:16 +08:00
Simon
015101d6ae
Merge pull request #416 from alibaba/dependabot/npm_and_yarn/development-dependencies-ffd7d36be5
...
chore(deps-dev): bump typescript-eslint from 8.58.0 to 8.58.1 in the development-dependencies group
2026-04-08 18:45:14 +08:00
dependabot[bot]
8904e602dd
chore(deps-dev): bump typescript-eslint
...
Bumps the development-dependencies group with 1 update: [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ).
Updates `typescript-eslint` from 8.58.0 to 8.58.1
- [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.1/packages/typescript-eslint )
---
updated-dependencies:
- dependency-name: typescript-eslint
dependency-version: 8.58.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: development-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-08 09:36:39 +00:00
Simon
d384967e41
chore: dependabot config
2026-04-08 17:34:17 +08:00
Simon
531b59f538
chore: add git-cleanup skill
2026-04-08 17:28:11 +08:00
Simon
bef26c3feb
Merge pull request #415 from alibaba/fix/security-deps-hono-vite-path-to-regexp
...
fix(deps): update hono, path-to-regexp and vite for security patches
2026-04-08 17:21:17 +08:00
Simon
c48dd538a0
fix(deps): update hono, @hono/node-server, path-to-regexp and vite for security patches
...
- hono 4.12.8 → 4.12.12 (cookie bypass, middleware bypass, path traversal, IP matching)
- @hono/node-server 1.19.11 → 1.19.13 (middleware bypass)
- path-to-regexp 8.3.0 → 8.4.2 (ReDoS)
- vite ^7.3.1 → ^7.3.2 (arbitrary file read, fs.deny bypass, path traversal)
2026-04-08 17:20:14 +08:00
Simon
950767c1bf
Merge pull request #414 from alibaba/fix/panel-history-max-height-responsive
...
fix(ui): make panel history max-height responsive to viewport
2026-04-08 17:07:09 +08:00
Simon
12b6001d53
fix(ui): make panel history max-height responsive to viewport
2026-04-08 17:05:10 +08:00
Simon
2c1972ed89
Merge pull request #413 from alibaba/fix/ext-result-card-font-size
...
fix(ext): increase result card font size and use foreground color
2026-04-08 16:52:39 +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
c2648c1749
chore(setup): update TypeScript SDK path in settings
2026-04-04 03:44:31 +08:00
Simon
7071a6c26a
fix(mcp): bind HTTP+WS server to localhost only ( #399 )
2026-04-04 03:15:20 +08:00
Simon
303ece84fd
feat: add update-changelog skill documentation
2026-04-04 03:14:37 +08:00
Simon
8a0266ce8d
docs: update changelog for version 1.7.1
2026-04-04 03:14:23 +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
e290e2f67a
Merge pull request #396 from alibaba/fix/interactive-aria-attrs-detection
...
fix(controller): detect elements with ARIA state attrs as interactive
2026-04-03 20:22:09 +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
68cee4cc64
Merge pull request #395 from alibaba/feat/controller-keep-semantic-tags
...
feat(controller): add experimental `keepSemanticTags` config
2026-04-03 19:07:36 +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
6630774dc9
Merge pull request #390 from alibaba/fix/controller-improve-scrolling
...
feat(controller): improve scroll container detection and tool guidance
2026-04-03 17:29:38 +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
b8fd1aaebc
Merge pull request #389 from alibaba/fix/ext-postmessage-source-guard
2026-04-02 19:06:06 +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
1f2f5a44d3
Merge pull request #332 from mvanhorn/fix/scroll-direction-pixels
...
fix(page-controller): apply scroll direction to pixels parameter
2026-04-02 18:36:42 +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
1141287733
Merge pull request #386 from alibaba/feat/ext-execute-system-instruction
...
feat(ext): add `systemInstruction` to ExecuteConfig
2026-04-02 16:37:29 +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
b3ec571341
Merge pull request #385 from alibaba/docs/website-models-qwen3.6-plus
...
docs(website): add qwen3.6-plus to models page
2026-04-02 15:33:23 +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
9ae1527201
Merge pull request #378 from alibaba/fix/controller-click-action-robust
2026-03-31 20:41:27 +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