safari-mcp 2.22.11 → 2.22.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -914,7 +914,11 @@ async function handleCommand(type, payload) {
914
914
  const suppliedReceipt = (type === "new_tab" || type === "list_tabs")
915
915
  ? ""
916
916
  : _receiptTokenFromPayload(payload);
917
- const allowReceiptOriginChange = type === "get_tab_receipt";
917
+ // getReceipt and close_tab use a receipt only to find its tab; neither runs anything in the
918
+ // page. close_tab was held to the receipt's origin, so a tab a redirect or login bounce had
919
+ // moved could be closed only after a getReceipt rotation, and a page with no http(s) origin
920
+ // never gets one: the tab stayed open with nothing able to close it (geo-audit, 6.10.26).
921
+ const allowReceiptOriginChange = type === "get_tab_receipt" || type === "close_tab";
918
922
  let receiptResolved = false;
919
923
  // new_tab CREATES its target, so a failure to resolve an existing one must not stop
920
924
  // it. Once a profile holds several windows, resolution legitimately fails with
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "safari-mcp",
3
- "version": "2.22.11",
3
+ "version": "2.22.12",
4
4
  "mcpName": "io.github.achiya-automation/safari-mcp",
5
5
  "description": "Safari browser automation for AI agents — native macOS, zero Chrome overhead. 98 tools via AppleScript + JavaScript.",
6
6
  "type": "module",