Skip to content

v0.8.0 — Unified Tab Resolution

Latest

Choose a tag to compare

@jellythomas jellythomas released this 09 Apr 11:47
· 1 commit to main since this release

What's New

Unified Tab Resolution

Fixed a critical bug where shadow mode, evaluate, navigate, and other tools would target the wrong Chrome tab when falling back to AppleScript. The root cause: CDP returns a global flat tab list while AppleScript uses per-window (window_index, tab_index) pairs — and no translation existed between them.

Changes

  • _resolve_applescript_tab() — New translation function that matches tabs by URL between CDP cache and AppleScript listing, with normalized URL and title fallbacks
  • Fixed all 13 AppleScript call sites across 7 handlers: shadow, evaluate, navigate, get_web_tree, wait_for, fill_form, close_tab
  • Fixed CDP persistent vs legacy ordering_get_cdp_session() now matches by URL instead of assuming index alignment between CDP backends
  • Fixed _list_tabs_individual() — AppleScript fallback now correctly uses per-window tab indices
  • Fixed _handle_list_chrome_tabs — AppleScript path shows consistent global indices
  • AppleScript tab cache with 2s TTL and automatic invalidation on tab mutations (open/close/navigate)

Impact

  • Shadow mode now reliably targets the correct tab across any number of Chrome windows
  • All tools that accept tab_index are now consistent — index N always means the same physical tab regardless of which backend executes the request
  • Zero changes to user-facing API — fully backwards compatible

Full Changelog: v0.7.0...v0.8.0