fix browser hang on hotrestart/page refresh (#2783) When a browser reconnects (e.g., hot reload/page refresh), it gets a new `instanceId` but keeps the same `appId`. `DevHandler` correctly treats this as a new client, however, if the backend `AppDebugServices` for that `appId` was already running, `WebSocketProxyService` might have already torn down the Dart isolate and reset its `isInitialized` lock due to the previous disconnect. **Solution** - Updated `_handleWebSocketConnectRequest` so that if a new browser client connects but reuses an existing backend service, we explicitly call `await _handleIsolateStart(connection)`. This recreation of the Dart isolate resolves the hang. Fixes https://github.com/flutter/flutter/issues/178549
| Package | Description | Version |
|---|---|---|
| dwds | A service that proxies between the Chrome debug protocol and the Dart VM service protocol. | |
| frontend_server_client | Client code to start and interact with the frontend_server compiler from the Dart SDK. | |
| webdev | A CLI for Dart web development. Provides an easy and consistent set of features for users and tools to build and deploy web applications with Dart. |
For information about our publishing automation and release process, see https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.