From 337cc1643dc6f6f6e75b30bdd0f88baaf55fa69a Mon Sep 17 00:00:00 2001 From: khanak0509 Date: Fri, 3 Jul 2026 01:38:15 +0530 Subject: [PATCH 1/8] reconnect to VM service after disconnect without app restart --- .../lib/src/framework/framework_core.dart | 24 +++++++ .../observer/disconnect_observer.dart | 71 ++++++++++++++++--- .../observer/disconnect_observer_test.dart | 58 ++++++++++++++- 3 files changed, 140 insertions(+), 13 deletions(-) diff --git a/packages/devtools_app/lib/src/framework/framework_core.dart b/packages/devtools_app/lib/src/framework/framework_core.dart index 28bb4d4e18d..4b42a32dcc6 100644 --- a/packages/devtools_app/lib/src/framework/framework_core.dart +++ b/packages/devtools_app/lib/src/framework/framework_core.dart @@ -136,6 +136,7 @@ extension FrameworkCore on Never { final uri = normalizeVmServiceUri(serviceUriAsString); if (uri != null) { vmServiceInitializationInProgress = true; + _lastServiceUriAsString = serviceUriAsString; final finishedCompleter = Completer(); try { @@ -187,6 +188,29 @@ extension FrameworkCore on Never { static void _defaultErrorReporter(String title, Object error) { notificationService.pushError('$title, $error', isReportable: false); } + + /// The URI of the last VM service connection, used for reconnection. + static String? _lastServiceUriAsString; + + /// Attempts to reconnect to the last known VM service. + /// + /// Returns true if reconnection was successful. + static Future reconnectVmService() async { + final lastUri = _lastServiceUriAsString; + if (lastUri == null) return false; + + _log.info('Attempting to reconnect to VM service at: $lastUri'); + final success = await initVmService( + serviceUriAsString: lastUri, + logException: true, + ); + if (success) { + _log.info('VM service reconnection successful'); + } else { + _log.warning('VM service reconnection failed'); + } + return success; + } } Future _initDTDConnection() async { diff --git a/packages/devtools_app/lib/src/framework/observer/disconnect_observer.dart b/packages/devtools_app/lib/src/framework/observer/disconnect_observer.dart index bf415e4b3c8..c6c0c20dd12 100644 --- a/packages/devtools_app/lib/src/framework/observer/disconnect_observer.dart +++ b/packages/devtools_app/lib/src/framework/observer/disconnect_observer.dart @@ -16,6 +16,7 @@ import '../../shared/config_specific/import_export/import_export.dart'; import '../../shared/framework/routing.dart'; import '../../shared/globals.dart'; import '../../shared/primitives/query_parameters.dart'; +import '../framework_core.dart'; class DisconnectObserver extends StatefulWidget { const DisconnectObserver({ @@ -34,9 +35,10 @@ class DisconnectObserver extends StatefulWidget { class DisconnectObserverState extends State with AutoDisposeMixin { OverlayEntry? currentDisconnectedOverlay; - late ConnectedState currentConnectionState; + bool _isReconnecting = false; + @override void initState() { super.initState(); @@ -52,6 +54,7 @@ class DisconnectObserverState extends State if (currentConnectionState.connected && currentDisconnectedOverlay != null) { setState(() { + _isReconnecting = false; hideDisconnectedOverlay(); }); } else if (!currentConnectionState.connected) { @@ -95,6 +98,36 @@ class DisconnectObserverState extends State currentDisconnectedOverlay = null; } + Future _attemptReconnect() async { + if (_isReconnecting) return; + _isReconnecting = true; + currentDisconnectedOverlay?.markNeedsBuild(); + + bool success = false; + try { + // Add a timeout so the UI doesn't spin forever if the connection hangs. + success = await FrameworkCore.reconnectVmService().timeout( + const Duration(seconds: 5), + ); + } catch (_) { + // Catch TimeoutException or any other unhandled errors. + success = false; + } + + if (mounted) { + _isReconnecting = false; + if (success) { + final uri = serviceConnection.serviceManager.serviceUri; + if (uri != null) { + unawaited(widget.routerDelegate.updateArgsIfChanged({'uri': uri})); + } + hideDisconnectedOverlay(); + } else { + currentDisconnectedOverlay?.markNeedsBuild(); + } + } + } + Future _reviewHistory() async { assert(offlineDataController.offlineDataJson.isNotEmpty); @@ -124,16 +157,32 @@ class DisconnectObserverState extends State child: Column( children: [ const Spacer(), - Text('Disconnected', style: theme.textTheme.headlineMedium), - const SizedBox(height: defaultSpacing), - if (!isEmbedded()) - ConnectToNewAppButton( - routerDelegate: widget.routerDelegate, - onPressed: hideDisconnectedOverlay, - gaScreen: gac.devToolsMain, - ) - else - const Text('Run a new debug session to reconnect.'), + if (_isReconnecting) ...[ + const CircularProgressIndicator(), + const SizedBox(height: defaultSpacing), + Text( + 'Reconnecting...', + style: theme.textTheme.headlineMedium, + ), + ] else ...[ + Text( + 'Disconnected', + style: theme.textTheme.headlineMedium, + ), + const SizedBox(height: defaultSpacing), + ElevatedButton( + onPressed: _attemptReconnect, + child: const Text('Reconnect'), + ), + if (!isEmbedded()) ...[ + const SizedBox(height: denseSpacing), + ConnectToNewAppButton( + routerDelegate: widget.routerDelegate, + onPressed: hideDisconnectedOverlay, + gaScreen: gac.devToolsMain, + ), + ], + ], const Spacer(), if (offlineDataController.offlineDataJson.isNotEmpty) ...[ ElevatedButton( diff --git a/packages/devtools_app/test/framework/observer/disconnect_observer_test.dart b/packages/devtools_app/test/framework/observer/disconnect_observer_test.dart index 16787447f1e..1c186ad4964 100644 --- a/packages/devtools_app/test/framework/observer/disconnect_observer_test.dart +++ b/packages/devtools_app/test/framework/observer/disconnect_observer_test.dart @@ -67,9 +67,10 @@ void main() { find.byType(ConnectToNewAppButton), showingOverlay && !isEmbedded() ? findsOneWidget : findsNothing, ); + // The Reconnect button should be shown in all modes when disconnected. expect( - find.text('Run a new debug session to reconnect.'), - showingOverlay && isEmbedded() ? findsOneWidget : findsNothing, + find.text('Reconnect'), + showingOverlay ? findsOneWidget : findsNothing, ); expect( find.text('Review recent data (offline)'), @@ -170,5 +171,58 @@ void main() { // TODO(kenz): test navigation that occurs by clicking on buttons. This will // require either modifying the test wrappers to take a set of routes or // writing an integration test for this user journey. + + group('reconnect button', () { + testWidgets('shows Reconnect button in embedded mode', ( + WidgetTester tester, + ) async { + setGlobal(IdeTheme, IdeTheme(embedMode: EmbedMode.embedOne)); + await pumpDisconnectObserver(tester); + verifyObserverState(tester, connected: true, showingOverlay: false); + + // Trigger a disconnect. + fakeServiceConnectionManager.serviceManager.setConnectedState(false); + await tester.pumpAndSettle(); + verifyObserverState(tester, connected: false, showingOverlay: true); + + // Verify the Reconnect button is present in embedded mode. + expect(find.text('Reconnect'), findsOneWidget); + // ConnectToNewAppButton should NOT be shown in embedded mode. + expect(find.byType(ConnectToNewAppButton), findsNothing); + }); + + testWidgets('shows Reconnect button in non-embedded mode', ( + WidgetTester tester, + ) async { + await pumpDisconnectObserver(tester); + verifyObserverState(tester, connected: true, showingOverlay: false); + + // Trigger a disconnect. + fakeServiceConnectionManager.serviceManager.setConnectedState(false); + await tester.pumpAndSettle(); + verifyObserverState(tester, connected: false, showingOverlay: true); + + // Both Reconnect and ConnectToNewAppButton should be shown. + expect(find.text('Reconnect'), findsOneWidget); + expect(find.byType(ConnectToNewAppButton), findsOneWidget); + }); + + testWidgets('hides overlay when reconnection succeeds', ( + WidgetTester tester, + ) async { + await pumpDisconnectObserver(tester); + verifyObserverState(tester, connected: true, showingOverlay: false); + + // Trigger a disconnect. + fakeServiceConnectionManager.serviceManager.setConnectedState(false); + await tester.pumpAndSettle(); + verifyObserverState(tester, connected: false, showingOverlay: true); + + // Simulate a successful reconnection by setting connected state. + fakeServiceConnectionManager.serviceManager.setConnectedState(true); + await tester.pumpAndSettle(); + verifyObserverState(tester, connected: true, showingOverlay: false); + }); + }); }); } From 3b117d3a5a2713ecf9f406ae7e4a4526d98c83f4 Mon Sep 17 00:00:00 2001 From: khanak0509 Date: Fri, 3 Jul 2026 01:39:43 +0530 Subject: [PATCH 2/8] Add release note --- packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md b/packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md index 14cf2ab1991..16954fd6b58 100644 --- a/packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md +++ b/packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md @@ -15,6 +15,8 @@ To learn more about DevTools, check out the ## General updates +* Fixed an issue where DevTools could get stuck in a disconnected state (e.g., after a Mac goes to sleep) by adding a manual "Reconnect" button to the disconnected screen. - + [#9838](https://github.com/flutter/devtools/issues/9838) * Resolve several memory leaks. - [#9857](https://github.com/flutter/devtools/pull/9857) * Fixed a bug where highlighted search matches in tables were unreadable in dark mode because the highlight color had become fully opaque. - From f845adc79bf96e7b9e926718963dd088fa0e15c7 Mon Sep 17 00:00:00 2001 From: khanak0509 Date: Fri, 3 Jul 2026 01:58:17 +0530 Subject: [PATCH 3/8] Apply code review suggestions --- packages/devtools_app/lib/src/framework/framework_core.dart | 6 ++++++ .../lib/src/framework/observer/disconnect_observer.dart | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/devtools_app/lib/src/framework/framework_core.dart b/packages/devtools_app/lib/src/framework/framework_core.dart index 4b42a32dcc6..03439efe101 100644 --- a/packages/devtools_app/lib/src/framework/framework_core.dart +++ b/packages/devtools_app/lib/src/framework/framework_core.dart @@ -196,6 +196,12 @@ extension FrameworkCore on Never { /// /// Returns true if reconnection was successful. static Future reconnectVmService() async { + if (vmServiceInitializationInProgress) { + _log.warning( + 'Reconnection attempt ignored: initialization already in progress.', + ); + return false; + } final lastUri = _lastServiceUriAsString; if (lastUri == null) return false; diff --git a/packages/devtools_app/lib/src/framework/observer/disconnect_observer.dart b/packages/devtools_app/lib/src/framework/observer/disconnect_observer.dart index c6c0c20dd12..1f6b13e75b4 100644 --- a/packages/devtools_app/lib/src/framework/observer/disconnect_observer.dart +++ b/packages/devtools_app/lib/src/framework/observer/disconnect_observer.dart @@ -119,7 +119,11 @@ class DisconnectObserverState extends State if (success) { final uri = serviceConnection.serviceManager.serviceUri; if (uri != null) { - unawaited(widget.routerDelegate.updateArgsIfChanged({'uri': uri})); + unawaited( + widget.routerDelegate.updateArgsIfChanged({ + DevToolsQueryParams.vmServiceUriKey: uri, + }), + ); } hideDisconnectedOverlay(); } else { From 878c07b06868e8ecbfb21618689a0f371100c96e Mon Sep 17 00:00:00 2001 From: khanak0509 Date: Fri, 3 Jul 2026 02:02:39 +0530 Subject: [PATCH 4/8] Apply code review suggestions --- .../lib/src/framework/observer/disconnect_observer.dart | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/devtools_app/lib/src/framework/observer/disconnect_observer.dart b/packages/devtools_app/lib/src/framework/observer/disconnect_observer.dart index 1f6b13e75b4..266d3db98fa 100644 --- a/packages/devtools_app/lib/src/framework/observer/disconnect_observer.dart +++ b/packages/devtools_app/lib/src/framework/observer/disconnect_observer.dart @@ -105,12 +105,10 @@ class DisconnectObserverState extends State bool success = false; try { - // Add a timeout so the UI doesn't spin forever if the connection hangs. success = await FrameworkCore.reconnectVmService().timeout( const Duration(seconds: 5), ); } catch (_) { - // Catch TimeoutException or any other unhandled errors. success = false; } From 19fb3a0a40696663442a852e7dc821084f443096 Mon Sep 17 00:00:00 2001 From: khanak0509 Date: Fri, 3 Jul 2026 02:12:27 +0530 Subject: [PATCH 5/8] Format disconnect_observer.dart --- .../lib/src/framework/observer/disconnect_observer.dart | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/devtools_app/lib/src/framework/observer/disconnect_observer.dart b/packages/devtools_app/lib/src/framework/observer/disconnect_observer.dart index 266d3db98fa..8a46105c6d2 100644 --- a/packages/devtools_app/lib/src/framework/observer/disconnect_observer.dart +++ b/packages/devtools_app/lib/src/framework/observer/disconnect_observer.dart @@ -167,10 +167,7 @@ class DisconnectObserverState extends State style: theme.textTheme.headlineMedium, ), ] else ...[ - Text( - 'Disconnected', - style: theme.textTheme.headlineMedium, - ), + Text('Disconnected', style: theme.textTheme.headlineMedium), const SizedBox(height: defaultSpacing), ElevatedButton( onPressed: _attemptReconnect, From dbfc8ab293f2b550498707e728796c2be1452928 Mon Sep 17 00:00:00 2001 From: khanak0509 Date: Fri, 3 Jul 2026 02:43:33 +0530 Subject: [PATCH 6/8] Update disconnect observer golden images for Reconnect button --- .../shared/disconnect_observer_connected.png | Bin 22442 -> 22442 bytes .../disconnect_observer_disconnected.png | Bin 26823 -> 30649 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/packages/devtools_app/test/test_infra/goldens/shared/disconnect_observer_connected.png b/packages/devtools_app/test/test_infra/goldens/shared/disconnect_observer_connected.png index 0bdf4f1e717a24a2ed52b72566f9772e2fa41ecc..3b55ee8bf0f9939948843bc3cffb2c12ed5d616b 100644 GIT binary patch delta 39 tcmZ3ro^jQB#tAA?EX7WqAsj$Z!;#X#z`(#*9OUlAuU|=bB@(kesf*OvLj*WIX;Q;-o3+n&? diff --git a/packages/devtools_app/test/test_infra/goldens/shared/disconnect_observer_disconnected.png b/packages/devtools_app/test/test_infra/goldens/shared/disconnect_observer_disconnected.png index 7d39dd2dd4236b0d3a048903dd6cf6e1a3db97d4..1c97e3efcfaa27823dc72f9070fc5249bced8fee 100644 GIT binary patch literal 30649 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 literal 26823 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 UaYuznheoNQq)tdUZF2iR02Tb_AOHXW From 003bbb4111744afd8924888e4cdc4afd19b9dd73 Mon Sep 17 00:00:00 2001 From: khanak0509 Date: Fri, 3 Jul 2026 02:47:12 +0530 Subject: [PATCH 7/8] Remove redundant argument in initVmService call --- packages/devtools_app/lib/src/framework/framework_core.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/devtools_app/lib/src/framework/framework_core.dart b/packages/devtools_app/lib/src/framework/framework_core.dart index 03439efe101..c4ef200e9e3 100644 --- a/packages/devtools_app/lib/src/framework/framework_core.dart +++ b/packages/devtools_app/lib/src/framework/framework_core.dart @@ -208,7 +208,6 @@ extension FrameworkCore on Never { _log.info('Attempting to reconnect to VM service at: $lastUri'); final success = await initVmService( serviceUriAsString: lastUri, - logException: true, ); if (success) { _log.info('VM service reconnection successful'); From 22b63465158714ee155797428b206596f2e274dc Mon Sep 17 00:00:00 2001 From: khanak0509 Date: Fri, 3 Jul 2026 11:41:14 +0530 Subject: [PATCH 8/8] fix issue --- packages/devtools_app/lib/src/framework/framework_core.dart | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/devtools_app/lib/src/framework/framework_core.dart b/packages/devtools_app/lib/src/framework/framework_core.dart index c4ef200e9e3..7d48749b1a9 100644 --- a/packages/devtools_app/lib/src/framework/framework_core.dart +++ b/packages/devtools_app/lib/src/framework/framework_core.dart @@ -206,9 +206,7 @@ extension FrameworkCore on Never { if (lastUri == null) return false; _log.info('Attempting to reconnect to VM service at: $lastUri'); - final success = await initVmService( - serviceUriAsString: lastUri, - ); + final success = await initVmService(serviceUriAsString: lastUri); if (success) { _log.info('VM service reconnection successful'); } else {