Commit Graph

86 Commits

Author SHA1 Message Date
Tommy D. Rossi 51704a0922 feat: add getPageMarkdown utility using Mozilla Readability
- Consolidate build scripts into single build-client-bundles.ts
- Add @mozilla/readability for Firefox Reader View content extraction
- New getPageMarkdown() utility extracts main page content as plain text
- Supports search and diff-since-last-call like other utilities
- Add test with file snapshot
2026-02-01 18:44:45 +01:00
Tommy D. Rossi a2fa91584d refactor: replace Playwright internals with in-page dom-accessibility-api
- Add a11y-client.ts: browser-side code using dom-accessibility-api (41KB)
- Single page.evaluate() call instead of multiple CDP roundtrips
- Zero element handles - everything runs in page context
- Stable refs from test IDs (data-testid, data-test-id, id) instead of e1, e2
- Add locator param to scope snapshots to subtrees
- Fixes cross-frame 'Unable to adopt element handle' error (issue #39)
2026-02-01 16:58:29 +01:00
Tommy D. Rossi c8bd87d8f6 release: playwriter@0.0.56 2026-01-26 14:10:26 +01:00
Tommy D. Rossi b000fd42b5 release: playwriter@0.0.55 2026-01-25 23:04:54 +01:00
Tommy D. Rossi 8313b7a43a release: playwriter@0.0.54 2026-01-25 15:02:59 +01:00
Tommy D. Rossi 31bfddef74 chore: release playwriter@0.0.53 2026-01-24 14:26:26 +01:00
Tommy D. Rossi 1474b2c38c chore: release playwriter@0.0.52 2026-01-24 13:36:13 +01:00
Tommy D. Rossi 1af5aac0cc feat: add session management CLI commands with @xmorse/cac
- Replace cac with @xmorse/cac for space-separated commands
- Add 'playwriter session new' to get new session ID
- Add 'playwriter session list' to show sessions and state keys
- Add 'playwriter session reset <id>' to reset a session
- Update SKILL.md with new CLI docs and multiline examples
- Put -s flag before -e in all examples
2026-01-24 12:57:21 +01:00
Tommy D. Rossi b7edfb52b1 refactor: make SKILL.md source of truth, generate prompt.md from it 2026-01-24 12:21:22 +01:00
Tommy D. Rossi 93fdcb6b35 feat: first extension with active tabs keeps connection instead of being replaced
- Server rejects new extension (code 4002) if existing has active tabs
- Idle extensions (no tabs) can still be replaced
- Extension properly enters polling mode when rejected during handshake
- /extension/status now returns activeTargets count for smarter reconnection
2026-01-21 19:09:37 +01:00
Tommy D. Rossi 495035ccef fix: sharp fallback with viewport clipping when unavailable 2026-01-19 14:07:01 +01:00
Tommy D. Rossi 69ac4db338 release: playwriter@0.0.49 2026-01-16 16:25:24 +01:00
Tommy D. Rossi 7ebd3c190e chore: release playwriter@0.0.48 2026-01-15 16:51:18 +01:00
Tommy D. Rossi cda69383f0 clean up deps: remove unused, update zod v4, replace chalk with picocolors 2026-01-15 13:32:54 +01:00
Tommy D. Rossi 423365caae resize screenshots with sharp to optimize Claude token usage 2026-01-15 13:26:33 +01:00
Tommy D. Rossi 59583703fb Update package.json 2026-01-15 12:51:02 +01:00
Tommy D. Rossi 939bc4ad75 release: playwriter@0.0.47 2026-01-14 17:41:28 +01:00
Tommy D. Rossi cbe62bc1a4 release: playwriter@0.0.46 2026-01-13 00:14:58 +01:00
Tommy D. Rossi f27486c80e release: playwriter@0.0.45 2026-01-12 19:02:23 +01:00
Tommy D. Rossi 9c323c5940 release: playwriter@0.0.44 2026-01-12 15:38:19 +01:00
Tommy D. Rossi 69d2d24815 release: playwriter@0.0.43 2026-01-11 22:24:40 +01:00
Tommy D. Rossi eb4d7a0f42 adding htmlrewriter 2026-01-10 19:26:00 +01:00
Tommy D. Rossi 9d9e469bff fix: sanitize accessibility snapshot to remove unpaired surrogates
Fixes 'no low surrogate in string' API error when page content contains
malformed Unicode characters. Uses toWellFormed() on Node.js 20+ with
graceful fallback on older versions.
2026-01-06 12:43:50 +01:00
Tommy D. Rossi f950219db5 release: playwriter@0.0.41 2026-01-06 12:33:29 +01:00
Tommy D. Rossi e87f801700 release: playwriter@0.0.40, extension@0.0.67 2026-01-05 10:12:42 +01:00
Tommy D. Rossi 1ad94f3930 release: playwriter@0.0.39, extension@0.0.66
- fix icon not updating on WS disconnect
- increase aria-labels auto-hide timeout to 30s
2026-01-03 17:38:28 +01:00
Tommy D. Rossi f7e4e90374 bump playwriter to 0.0.38 2026-01-03 16:45:58 +01:00
Tommy D. Rossi 018647aebf bump playwriter to 0.0.37 2026-01-03 16:43:19 +01:00
Tommy D. Rossi f2ee7755a0 bump version to 0.0.36, update changelog with aria ref labels feature 2026-01-03 16:05:51 +01:00
Tommy D. Rossi 3cd59600e9 filter labels for elements covered by opaque overlays
Uses elementsFromPoint() to check if element is blocked by opaque
overlays (modals, cookie banners, etc.). Skips elements where an
opaque element with pointer-events appears above the target in
the stacking order.

Correctly shows only visible, interactable elements.
2026-01-03 15:45:48 +01:00
Tommy D. Rossi 178387ec97 Persistent WS connection and auto-create initial tab
- Connect WS at extension startup via maintainConnection() loop
- Auto-retry every 5 seconds silently (no connecting badge)
- Never disconnect WS based on tab count
- Rename ConnectionState 'disconnected' to 'idle', remove global 'connecting'
- Fix race condition with tabGroupQueue for syncTabGroup/disconnectEverything/onTabUpdated
- Add auto-create initial tab when Playwright connects (PLAYWRITER_AUTO_ENABLE env var)
- Add test for auto-create feature
2026-01-01 01:14:16 +01:00
Tommy D. Rossi 240ce5be74 Bump version to 0.0.34 2025-12-31 16:15:51 +01:00
Tommy D. Rossi d88012324c fix: read prompt.md from src/ instead of dist/ 2025-12-30 15:22:54 +01:00
Tommy D. Rossi ab80c760c8 Bump playwriter to 0.0.32 2025-12-30 14:31:47 +01:00
Tommy D. Rossi 237f24d3f8 Generate MCP resources at build time and host on playwriter.dev
- Add build-resources.ts script to generate markdown API docs
- Resources now use https://playwriter.dev/resources/*.md URLs
- Output to both playwriter/dist/ and website/public/resources/
- Simplify mcp.ts resource handlers to read pre-built files
2025-12-30 14:30:30 +01:00
Tommy D. Rossi 8eedbcf2e1 bump 2025-12-30 13:54:12 +01:00
Tommy D. Rossi de25a54a40 import examples from src 2025-12-30 13:37:35 +01:00
Tommy D. Rossi 9df46c48ca release: playwriter@0.0.30, extension@0.0.56 2025-12-30 13:26:28 +01:00
Tommy D. Rossi 169ba48a77 Fix Editor/Debugger script listing after page load 2025-12-29 16:46:34 +01:00
Tommy D. Rossi 5e0cd2dd98 Add getReactSource to extract React component source location
- Add bippy library for React fiber introspection
- Create build-bippy.ts and build-selector-generator.ts using Bun.build
- Use CDP Runtime.evaluate instead of addScriptTag to bypass CSP
- Add getReactSource utility function exposed in MCP VMContext
- Works on local React dev servers with JSX transform (not production builds)
2025-12-29 16:11:13 +01:00
Tommy D. Rossi e4695e231d add support for remote agent in different host than extension. add
support for editing css.
2025-12-27 18:48:52 +01:00
Tommy D. Rossi ccffd9477d document debugger 2025-12-25 21:20:15 +01:00
Tommy D. Rossi 150ad47307 fix about:blank gray icon and add auto-recovery after extension replacement 2025-12-22 19:29:25 +01:00
Tommy D. Rossi 9b73ab56f9 bump playwriter 0.0.26 and extension 0.0.54 2025-12-21 17:21:44 +01:00
Tommy D. Rossi 12dbad1ab4 do not send CDP commands too soon. 2025-12-21 17:20:07 +01:00
Tommy D. Rossi 43e1862cdb wait 3s for extension after MCP starts relay server 2025-12-21 16:53:19 +01:00
Tommy D. Rossi b44f3ebb02 bump playwriter to 0.0.24: auto-restart server on version mismatch, simplified logging, cross-platform kill 2025-12-21 16:49:40 +01:00
Tommy D. Rossi 6809ebea72 restart ws process if already running with different version 2025-12-21 16:48:07 +01:00
Tommy D. Rossi f64e7498cd fix: use os.tmpdir for logs, improving Windows compatibility 2025-12-20 22:13:13 +01:00
Tommy D. Rossi 50aa6199d2 chore: bump to playwriter 0.0.22, extension 0.0.53 2025-12-20 21:33:10 +01:00