Files
playwriter/extension/CHANGELOG.md
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

1.3 KiB

Changelog

0.0.69

Features

  • First extension keeps connection: When multiple Playwriter extensions are installed, the actively-used one (with tabs) now keeps the connection. New extensions are rejected with code 4002 instead of taking over.
  • Smarter reconnection: Extension now polls /extension/status for activeTargets count and only attempts reconnection when the other extension has no active tabs.

Bug Fixes

  • Proper state handling for 4002 rejection: Fixed issue where extension would keep retrying forever when rejected during WebSocket handshake. Now correctly enters extension-replaced polling state.

0.0.68

Bug Fixes

  • Improved connection reliability: Use 127.0.0.1 instead of localhost to avoid DNS/IPv6 resolution issues
  • Global connection timeout: Added 15-second global timeout wrapper around connect() to prevent hanging forever when individual timeouts fail
  • Better WebSocket handling: Added settled flag to properly handle timeout/open/error/close race conditions

Changes

  • Faster retry loop: Reduced retry attempts from 30 to 5 since maintainLoop retries every 3 seconds anyway
  • Allow own extension pages: Added OUR_EXTENSION_IDS to allow attaching to our own extension pages while blocking other extensions

0.0.67

  • Initial changelog