-
Ghost cursor overlay during recording — smooth animated cursor visualizes automated mouse actions (clicks, moves, presses) directly on the page during screen recordings, driven by Playwright
onMouseActioncallbacks so bothpage.mouse.*andlocator.click()are captured -
Demo video creation — new
createDemoVideo()automatically detects and speeds up idle sections between interactions, with hardware encoder detection (h264_videotoolbox, etc.) and optimized FFmpeg output for social media -
resizeImage()sandbox utility — shrink screenshots before feeding them to LLMs; default mode fits within 1568×1568px, supports explicit width/height/maxDimension -
Descriptive click timeout errors — when
locator.click()times out, the error now explains why ("Element is not visible", "Element is not stable", etc.) instead of a generic timeout message -
Faster action timeouts — default Playwright action timeout reduced from 10s to 2s so agents get fast failures with descriptive errors; navigation timeout unchanged at 10s
-
State-aware page-close warnings — executor warns when a closed page is referenced in session state and reports which state key(s) need reassignment, with automatic fallback to another open tab
-
Popup detection warnings — executor emits
[WARNING]when popup windows open during execution so agents are aware of context changes -
recordingandghostCursornamespaces — cleaner API in the execute sandbox:recording.start/stop/isRecording/cancelandghostCursor.show/hide, with backward-compatible top-level aliases -
Multi-profile Chrome support — auto-selects the correct extension when multiple Chrome profiles are connected simultaneously
-
Snapshot diff scoped by locator —
showDiffSinceLastCallcache now isolated per locator scope; also skipped automatically whensearchis provided -
Relay state centralized to Zustand store — internal relay state (extensions, targets, playwright clients) unified in a single immutable atom, eliminating scattered Maps and fixing edge-case reconnect bugs
-
page.onMouseActioncallback in Playwright fork — fires for bothpage.mouse.*andlocator.click()actions;Locator.selector()now publicly typed (@xmorse/playwright-core@1.59.6) -
Suppress stack traces for timeout/abort errors — CLI and MCP output is cleaner; only the message is shown for expected timeout failures