diff --git a/apps/chanora_flutter/lib/main.dart b/apps/chanora_flutter/lib/main.dart index 438a732..6732a7b 100644 --- a/apps/chanora_flutter/lib/main.dart +++ b/apps/chanora_flutter/lib/main.dart @@ -1067,6 +1067,18 @@ class _BetaHomeState extends State<_BetaHome> with WidgetsBindingObserver { String? password, }) async { final connectEpoch = ++_connectionEpoch; + + // Trigger macOS Local Network permission prompt before connecting. + // On macOS 15+ the first network connection triggers the system + // dialog; triggering it via NWBrowser here ensures the prompt + // appears *before* the actual connect attempt so the user can grant + // permission and the connection succeeds in one flow. + final lnState = _macOSPermissions.localNetworkState.value; + if (lnState == MacOSLocalNetworkState.unknown || + lnState == MacOSLocalNetworkState.notDetermined) { + await _macOSPermissions.triggerLocalNetworkPrompt(); + } + setState(() { _phase = ConnectionPhase.connecting; _snapshot = null;