@jackwener/opencli 1.2.2 → 1.2.3

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.
@@ -322,8 +322,18 @@ async function resolveTabId(tabId, workspace) {
322
322
  const reuseTab = tabs.find((t) => t.id);
323
323
  if (reuseTab?.id) {
324
324
  await chrome.tabs.update(reuseTab.id, { url: "about:blank" });
325
- await new Promise((resolve) => setTimeout(resolve, 200));
326
- return reuseTab.id;
325
+ await new Promise((resolve) => setTimeout(resolve, 300));
326
+ try {
327
+ const updated = await chrome.tabs.get(reuseTab.id);
328
+ if (isDebuggableUrl(updated.url)) return reuseTab.id;
329
+ console.warn(`[opencli] about:blank was intercepted (${updated.url}), trying data: URI`);
330
+ await chrome.tabs.update(reuseTab.id, { url: "data:text/html,<html></html>" });
331
+ await new Promise((resolve) => setTimeout(resolve, 300));
332
+ const updated2 = await chrome.tabs.get(reuseTab.id);
333
+ if (isDebuggableUrl(updated2.url)) return reuseTab.id;
334
+ console.warn(`[opencli] data: URI also intercepted, creating fresh tab`);
335
+ } catch {
336
+ }
327
337
  }
328
338
  const newTab = await chrome.tabs.create({ windowId, url: "about:blank", active: true });
329
339
  if (!newTab.id) throw new Error("Failed to create tab in automation window");
@@ -268,12 +268,26 @@ async function resolveTabId(tabId: number | undefined, workspace: string): Promi
268
268
  const reuseTab = tabs.find(t => t.id);
269
269
  if (reuseTab?.id) {
270
270
  await chrome.tabs.update(reuseTab.id, { url: 'about:blank' });
271
- // Wait briefly for the navigation to take effect
272
- await new Promise(resolve => setTimeout(resolve, 200));
273
- return reuseTab.id;
271
+ // Wait for the navigation to take effect
272
+ await new Promise(resolve => setTimeout(resolve, 300));
273
+ // Verify the URL is actually debuggable (New Tab Override may have intercepted)
274
+ try {
275
+ const updated = await chrome.tabs.get(reuseTab.id);
276
+ if (isDebuggableUrl(updated.url)) return reuseTab.id;
277
+ // New Tab Override intercepted about:blank — try data: URI instead
278
+ console.warn(`[opencli] about:blank was intercepted (${updated.url}), trying data: URI`);
279
+ await chrome.tabs.update(reuseTab.id, { url: 'data:text/html,<html></html>' });
280
+ await new Promise(resolve => setTimeout(resolve, 300));
281
+ const updated2 = await chrome.tabs.get(reuseTab.id);
282
+ if (isDebuggableUrl(updated2.url)) return reuseTab.id;
283
+ // data: URI also intercepted — create a brand new tab
284
+ console.warn(`[opencli] data: URI also intercepted, creating fresh tab`);
285
+ } catch {
286
+ // Tab was closed during navigation
287
+ }
274
288
  }
275
289
 
276
- // Window has no tabs at all — create one
290
+ // Window has no debuggable tabs — create one
277
291
  const newTab = await chrome.tabs.create({ windowId, url: 'about:blank', active: true });
278
292
  if (!newTab.id) throw new Error('Failed to create tab in automation window');
279
293
  return newTab.id;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jackwener/opencli",
3
- "version": "1.2.2",
3
+ "version": "1.2.3",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },