v1.10.0

zumerlab/snapdomv1.10.0Jun 15, 2026by gaomeng1900

AI Summary

This release introduces a significant rework to the agent run lifecycle, making the stop() method asynchronous and introducing a new stopped state. It also adds abortable JavaScript execution and streamlines agent prompts to improve performance.

Key Highlights

  • Async agent lifecycle with new stopped state and improved error handling.
  • JavaScript execution now supports AbortSignal for cancellation.
  • Simplified agent prompts to reduce LLM cognitive load.
  • Enhanced dark mode detection and extension lifecycle robustness.

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.
  • LLM self-reported failures now end as completed instead of failing.
  • Lifecycle hooks re-throw errors instead of folding them into the result.

New Features

  • Abortable JavaScript execution via AbortSignal.
  • Leaner agent prompts with simplified waiting-response flow.
  • Disabled ScriptExecutionTool for MultiPageAgent for safety.

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