feat: add ghost cursor APIs and harden reconnect flow

Introduce a first-class ghost cursor system for recordings and screenshots with namespace APIs (, ) while preserving backward-compatible top-level recording helpers.

Improve reliability after relay restarts by consolidating extension wait logic around , reducing false disconnected states during  and execute flows.

Refactor recording glue into dedicated modules (,  in ) to keep executor orchestration thin and make cursor lifecycle state explicit and testable.
This commit is contained in:
Tommy D. Rossi
2026-02-25 19:33:55 +01:00
parent 43ad91e439
commit 2b5d2fa559
18 changed files with 1070 additions and 120 deletions
+3
View File
@@ -903,6 +903,9 @@ await recording.cancel({ page: state.page })
// Show cursor in the center (or keep current position if already visible)
await ghostCursor.show({ page: state.page })
// Optional styles: 'minimal' (default triangular pointer), 'dot', 'screenstudio'
await ghostCursor.show({ page: state.page, style: 'minimal' })
// Hide cursor overlay
await ghostCursor.hide({ page: state.page })
```