v1.10.0

HavocFramework/Havocv1.10.0Jun 15, 2026by gaomeng1900

AI Summary

This release introduces a major rework to the agent run lifecycle to improve state management and error handling. It enhances safety and usability by adding abortable JavaScript execution and refining agent prompts. Additionally, it improves extension robustness and fixes several bugs related to scrolling and reporting.

Key Highlights

  • Agent run lifecycle reworked with async `stop()` and new status states.
  • JavaScript execution is now abortable via `AbortSignal`.
  • MultiPageAgent safety improved by disabling ScriptExecutionTool.
  • Refined dark mode detection heuristics and extension lifecycle robustness.

Breaking Changes

  • `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

  • `execute_javascript` now honors the `AbortSignal` for abortable execution.
  • Agent prompts simplified to reduce LLM cognitive load by removing navigation instructions.
  • `ScriptExecutionTool` disabled for `MultiPageAgent` to improve 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