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
This commit is contained in:
Tommy D. Rossi
2026-01-21 19:09:37 +01:00
parent c3a6003fa9
commit 93fdcb6b35
7 changed files with 87 additions and 17 deletions
+11
View File
@@ -1,5 +1,16 @@
# 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