Skip to content

v0.2.12: Pinned tab session, multi-connection server, SW resilience

Choose a tag to compare

@mikuh mikuh released this 26 Feb 09:05
· 1 commit to main since this release

What's New

Pinned Tab Session

  • bctl tab <id> now pins a tab — all subsequent commands auto-target it
  • bctl tab --clear to unpin, bctl tab to show current pin status
  • Stale pinned tab auto-clears and retries on failure

Multi-Connection Server

  • Server now supports multiple extension WebSocket connections
  • Seamless handling of Chrome service worker restarts without dropping commands
  • Pending futures only cancelled when all connections are gone

Service Worker Resilience (MV3)

  • Reduced waitForTabLoad timeout to 5s to prevent SW termination
  • Auto-recover from disconnect on new-tab/navigate commands
  • Use lastFocusedWindow instead of unreliable currentWindow in SW context

Screenshot Improvements

  • CDP-based screenshot for pinned (non-visible) tabs
  • Proper tabId null-check in screenshotViaCDP
  • handle_screenshot now respects pinned tab context

Enhanced URL Extraction

  • Canvas element support (converts to data URL)
  • CSS background-image fallback
  • Blob URL async conversion to data URL

Download Improvements

  • MIME-based file extension correction for image downloads

Bug Fixes

  • Fix stale pin retry to also clean up windowId
  • Fix screenshotViaCDP falsy check for tab ID 0
  • Move _MIME_EXT to module-level constant