@mathismeadows/roamer-device-auth 1.5.4 → 1.5.5

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mathismeadows/roamer-device-auth",
3
- "version": "1.5.4",
3
+ "version": "1.5.5",
4
4
  "private": false,
5
5
  "mcpName": "com.mathismeadows/roamer-mcp",
6
6
  "type": "module",
@@ -639,10 +639,12 @@ async function doGetValidTokens(clientSlug, forceRefresh, forceFreshLogin = fals
639
639
  }
640
640
 
641
641
  log(`Go to ${device.verification_uri} and enter code: ${device.user_code}`);
642
- // Fire-and-forget: the dialog is how the human actually sees this on macOS; polling below
643
- // must not wait on it being dismissed. Skip re-showing it on a resume — the human already
644
- // saw it (or is mid-flow in the browser) from the process that started this same code.
645
- if (!resuming) showDeviceCodeDialog(device.verification_uri, device.user_code);
642
+ // AUTH-61: launch the browser first, then show the fallback dialog both are best-effort
643
+ // OS-level UI activations, and requesting them in the same instant can leave Safari
644
+ // intermittently stuck showing "Application Not Responding" on launch (macOS-only; see
645
+ // thread AUTH-safari-device-flow-hang). The dialog stays fire-and-forget: polling below
646
+ // must not wait on it being dismissed. Skip both on a resume — the human already saw them
647
+ // (or is mid-flow in the browser) from the process that started this same code.
646
648
  if (!resuming) {
647
649
  try {
648
650
  const { default: open } = await import("open");
@@ -651,6 +653,7 @@ async function doGetValidTokens(clientSlug, forceRefresh, forceFreshLogin = fals
651
653
  // Best-effort only — the dialog and QR code below already carry the URL and code.
652
654
  }
653
655
  }
656
+ if (!resuming) showDeviceCodeDialog(device.verification_uri, device.user_code);
654
657
  // Terminal-visible for any client where a human sees this process's stderr/log output
655
658
  // (Claude Code CLI, VS Code's integrated terminal) — QR codes are a real usability win
656
659
  // for CLI auth over typing an 8-character code by hand.