v1.10.0

ChangemakerStudios/Papercut-SMTPv1.10.0Jun 15, 2026by gaomeng1900

AI Summary

This major release reworks the agent run lifecycle with async stop() functionality, introduces abortable JavaScript execution, and improves MultiPageAgent safety. The update also includes enhanced dark mode detection and various bug fixes for wait reporting and scroll predicates.

Key Highlights

  • Agent run lifecycle rework with async stop()
  • Abortable JavaScript execution support
  • MultiPageAgent safety improvements
  • Enhanced dark mode detection heuristics
  • Improved extension lifecycle robustness

Breaking Changes

  • Agent run lifecycle rework - stop() is now async
  • Run status decoupled from task outcome with new stopped state
  • LLM self-reported failures now end as completed
  • Lifecycle hooks re-throw errors instead of folding them

New Features

  • Abortable JavaScript execution with AbortSignal
  • Leaner agent prompts with simplified waiting-response flow
  • MultiPageAgent safety with disabled ScriptExecutionTool
  • Accurate wait duration reporting
  • Boolean scroll predicates

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