Commit Graph

131 Commits

Author SHA1 Message Date
Simon
76fea5b285 feat: remove instructions about nav back 2026-06-15 16:41:02 +08:00
Simon
67b1874836 Merge pull request #551 from alibaba/fix/stale-current-tab-id-mask-flash
fix(extension): clear currentTabId in storage on TabsController.init
2026-06-11 21:13:31 +08:00
Simon
e65c7c9601 Merge pull request #545 from alibaba/feat/execute-js-abort-signal
feat(core): make execute_javascript honor AbortSignal
2026-06-11 20:45:53 +08:00
Simon
d3797109bf fix(extension): clear currentTabId in storage on TabsController.init
Reset currentTabId via updateCurrentTabId(null) so the storage projection
stays consistent with isAgentRunning. Prevents the previous run's tab from
briefly flashing the mask when a new run starts within the heartbeat window.

Closes #550
2026-06-11 20:37:19 +08:00
Simon
768b07e28c feat: disable ScriptExecutionTool for MultiPageAgent 2026-06-11 20:16:09 +08:00
Simon
edb769b826 fix(ext): handle stopped lifecycle state 2026-06-11 19:53:30 +08:00
Simon
e270ba15b5 fix(ext): clear stale activity on any non-running status
The side panel kept showing the last activity card when a run settled as
`stopped`; clear it for every terminal status instead of an allowlist.
2026-06-11 19:15:58 +08:00
Simon
c19891926b refactor(ext): drive heartbeat and running flag from statuschange
Project agent status into chrome.storage via a statuschange listener
instead of pairing setup/teardown across lifecycle hooks. A throwing hook
can no longer leak the heartbeat or strand isAgentRunning, and rejected
concurrent execute() calls never touch the active run's state.
2026-06-11 19:15:48 +08:00
Simon
052a302a08 refactor(core)!: rework agent run lifecycle and status semantics
BREAKING CHANGE: stop() is now async and resolves after the run fully
settles; status decouples from task outcome (new 'stopped' state, LLM
self-reported failure now ends as 'completed'). Lifecycle hooks re-throw
instead of being folded into the result; agent errors go to history.
Adds agent.lastResult.
2026-06-11 14:33:12 +08:00
Simon
9ed0a09194 feat(core): make execute_javascript honor AbortSignal
Expose the task AbortSignal as `signal` in the script scope so cooperative
code can cancel promptly, and re-check signal.throwIfAborted() after the
script settles to discard stale results.

Closes #537.
2026-06-09 21:30:27 +08:00
zzy-life
a7cc935453 feat(llms): add transformRequestBody hook and improve prompt assembly (#480)
* feat(llms): add transformRequestBody hook and refine prompt handling

* docs(website): document transformRequestBody usage

* refactor(extension): keep function-valued config handling consistent in useAgent

* feat: simplify `transformRequestBody`

---------

Co-authored-by: Simon <10131203+gaomeng1900@users.noreply.github.com>
2026-04-27 19:46:46 +08:00
Simon
349609614b Merge pull request #473 from akinshaywai/chore/remove-debug-console-logs
chore: remove debug console.log statements from production code
2026-04-27 17:30:13 +08:00
akinshaywai
f55c1b984b chore: remove debug console.log statements from production code
Three debug logs left in production paths:

- useAgent.ts: logs task string on every agent execution
- HeroSection.tsx: logs getPageInstructions url/hint on every page visit
- HeroSection.tsx: logs the full execute() result to the console

None of these are error-level events and they leak internal details
to the browser console in production builds.
2026-04-24 01:49:22 +01:00
akinshaywai
5ab34a2f50 fix: add rel="noopener noreferrer" to hub link in ConfigPanel
The 'Manage Page Agent Hub' link uses target="_blank" without
rel="noopener noreferrer". This exposes the opener browsing context
to the target page via window.opener. All other external links in
ConfigPanel already include this attribute.
2026-04-24 01:48:37 +01:00
Simon
5809fe3249 refactor(setup): consolidate prettier config and streamline CI
- Replace scattered .prettierignore files with a single root config
- Add scripts/ci.js to orchestrate lint, format, typecheck, commitlint, and build
- Simplify ci.yml to use ci.js and npm ci
- Apply prettier formatting to docs, locales, and HTML files
2026-04-16 17:04:23 +08:00
Simon
e626e0b8ce Merge pull request #456 from akinshaywai/design/history-ui-improvements
design(ui): improve HistoryList loading/empty states and add button tooltips
2026-04-16 16:02:16 +08:00
Simon
284098ff0d chore: catch session loading errors 2026-04-16 15:57:04 +08:00
akinshaywai
90e1c297f4 style(ui): improve HistoryList loading/empty states and add button tooltips
- Replace plain 'Loading...' text in HistoryList with animated skeleton
  placeholder rows that match the shape of real history items
- Replace plain 'No history yet' text with a centred History icon +
  label for a more polished empty state
- Add aria-label and title to the Back button in HistoryList header
- Add aria-label and title to History and Settings buttons in main header
- Add aria-label and title to Send and Stop task buttons in footer
2026-04-16 15:56:57 +08:00
Olabode Felix Akinyemi
8a75c15557 Merge pull request #454 from akinshaywai/fix/a11y-config-panel-labels
fix(a11y): add accessible labels to ConfigPanel inputs and icon buttons
2026-04-15 16:31:24 +08:00
Simon
4d27d49752 refactor(setup): upgrade to TypeScript 6 with source-first monorepo resolution 2026-04-12 02:04:21 +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
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
Simon
7e9027167d feat(controller): add keepSemanticTags config to keep the semantic structure of the page 2026-04-03 19:01:54 +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
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
0402a6be03 fix(tabs): error message typo 2026-03-31 21:04:53 +08:00
Simon
1eef785a61 fix(ext): tabs deduplication 2026-03-30 22:18:55 +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
1245040330
48fb65d00b feat(extension): 禁用 EmptyState 组件的自动开始动画
- 在 EmptyState 组件的动画配置中添加了 startOnView=false 属性
- 防止动画在视图加载时自动开始播放
- 优化了用户体验,避免不必要的动画干扰
2026-03-27 15:26:13 +08:00
Simon
78a31ef5d1 fix: tslint 2026-03-25 00:50:29 +08:00
Simon
66a85c0dd3 feat: option to disable named tool choice 2026-03-20 17:40:16 +08:00
Simon
5aeb40abac chore(ext): rm keydown event on history 2026-03-20 17:13:42 +08:00
Simon
dfde89aa70 Merge branch 'main' into pr/Adonis0123/313 2026-03-20 16:58:13 +08:00
Simon
c35f367b39 feat(ext): style adjust; rm rerunDisabled 2026-03-20 16:36:23 +08:00
adonis
0bc47a997d feat(ext): rerun tasks from history 2026-03-19 23:54:08 +08:00
adonis
bcc7dfea2d feat(extension): export history sessions as json 2026-03-19 23:46:58 +08:00
Simon
fe82b11285 feat: AK optional 2026-03-19 19:50:05 +08:00
Simon
252f550c04 style(ext): fix ai-motion overflow; wording; launcher info 2026-03-18 20:25:54 +08:00
Simon
628c249d45 fix(ext): init without initialTab throws error 2026-03-18 19:36:02 +08:00
Simon
61d598142d feat(ext): ask user approval for MCP task 2026-03-18 19:14:44 +08:00
Simon
cef39d5090 feat(mcp): MCP connector 2026-03-18 03:12:20 +08:00
Simon
3063b2a06d feat(ext): hub protocol 2026-03-18 02:59:28 +08:00
Simon
aae6c93f11 fix(ext): useAgent execute return result 2026-03-18 01:55:09 +08:00
Simon
2f5476b76c refactor(ext): mv ui components for later reuse 2026-03-17 19:11:13 +08:00
Simon
48fede38fd feat(ext): initialTab should be in controlled group; rm windowId; rm gray color 2026-03-16 20:51:32 +08:00
Wen
11d3ca3d6e fix: typos and grammar in system prompts and source code 2026-03-13 01:32:34 +00:00