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 newstoppedstate was added, and LLM self-reported failures now end ascompleted. Lifecycle hooks re-throw instead of folding errors into the result, agent errors are recorded in history, andagent.lastResultwas added.
Features
- Abortable JavaScript execution -
execute_javascriptnow honors theAbortSignal. - Leaner agent prompts - Simplified the waiting-response flow and removed navigation-back instructions to reduce LLM cognitive load.
- MultiPageAgent safety - Disabled
ScriptExecutionToolforMultiPageAgent.
Improvements
- Dark mode detection - Refined detection heuristics and made
isMainContentDarkless aggressive by checkinghtmlandbodydata 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
currentTabIdonTabsController.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 #542
- chore(page-controller): remove accidental debug console.log calls by @64johnlee in #534
- Implement TODO: enhance dark mode detection by @tageniu in #373
- test(core): add PageAgentCore lifecycle tests by @gaomeng1900 in #543
- feat(page-controller): refine dark mode detection heuristics by @gaomeng1900 in #544
- refactor(core)!: rework agent run lifecycle and status semantics by @gaomeng1900 in #549
- feat(core): make execute_javascript honor AbortSignal by @gaomeng1900 in #545
- fix(extension): clear currentTabId in storage on TabsController.init by @gaomeng1900 in #551
- test(page-controller): add happy-dom env and basic tests by @gaomeng1900 in #552
- Fix scroll predicate types by @linked-danis in #512
- Report actual wait duration by @linked-danis in #511
- feat: remove instructions about nav back by @gaomeng1900 in #557
New Contributors
- @64johnlee made their first contribution in #534
- @tageniu made their first contribution in #373
Full Changelog: v1.9.0...v1.10.0