v1.10.0
fatedier/frpv1.10.0Jun 15, 2026by gaomeng1900
AI Summary
Introduces a major breaking change to the Agent run lifecycle, making `stop()` async and decoupling status from task outcome, alongside abortable JavaScript execution.
Key Highlights
- Agent run lifecycle rework (Breaking)
- Abortable JavaScript execution
- New 'stopped' status state
- Improved dark mode detection
Breaking Changes
- Agent run lifecycle rework - `stop()` is now async and resolves only after the run fully settles. Run status is decoupled from task outcome: a new `stopped` state was added, and LLM self-reported failures now end as `completed`. Lifecycle hooks re-throw instead of folding errors into the result.
New Features
- Abortable JavaScript execution
- Leaner agent prompts
- MultiPageAgent safety
- Accurate wait reporting
- Dark mode detection improvements
Full Release Notes
## Breaking Changes - **Agent run lifecycle rework** - `stop()` is now async and resolves only after the run fully settles. Run status is decoupled from task outcome: a new `stopped` state was added, and LLM self-reported failures now end as `completed`. Lifecycle hooks re-throw instead of folding errors into the result, agent errors are recorded in history, and `agent.lastResult` was added. ## Features - **Abortable JavaScript execution** - `execute_javascript` now honors the `AbortSignal`. - **Leaner agent prompts** - Simplified the waiting-response flow and removed navigation-back instructions to reduce LLM cognitive load. - **MultiPageAgent safety** - Disabled `ScriptExecutionTool` for `MultiPageAgent`. ## Improvements - **Dark mode detection** - Refined detection heuristics and made `isMainContentDark` less aggressive by checking `html` and `body` data attributes independently. - **Extension lifecycle robustness** - Drove heartbeat and running state from status changes, cleared stale activity on any non-running status, handled the stopped lifecycle state, and cleared `currentTabId` on `TabsController.init`. ## Bug Fixes - **Accurate wait reporting** - Wait steps now report the actual wait duration. - **Scroll predicates** - Scroll predicates now return booleans. - **Docs** - Fixed the broken demo video on GitHub. ## PRs * chore(deps-dev): bump the development-dependencies group with 13 updates by @dependabot[bot] in https://github.com/alibaba/page-agent/pull/542 * chore(page-controller): remove accidental debug console.log calls by @64johnlee in https://github.com/alibaba/page-agent/pull/534 * Implement TODO: enhance dark mode detection by @tageniu in https://github.com/alibaba/page-agent/pull/373 * test(core): add PageAgentCore lifecycle tests by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/543 * feat(page-controller): refine dark mode detection heuristics by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/544 * refactor(core)!: rework agent run lifecycle and status semantics by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/549 * feat(core): make execute_javascript honor AbortSignal by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/545 * fix(extension): clear currentTabId in storage on TabsController.init by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/551 * test(page-controller): add happy-dom env and basic tests by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/552 * Fix scroll predicate types by @linked-danis in https://github.com/alibaba/page-agent/pull/512 * Report actual wait duration by @linked-danis in https://github.com/alibaba/page-agent/pull/511 * feat: remove instructions about nav back by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/557 ## New Contributors * @64johnlee made their first contribution in https://github.com/alibaba/page-agent/pull/534 * @tageniu made their first contribution in https://github.com/alibaba/page-agent/pull/373 **Full Changelog**: https://github.com/alibaba/page-agent/compare/v1.9.0...v1.10.0