set packageConfigPath and update DWDS version to 24.3.5 (#2589)

diff --git a/webdev/CHANGELOG.md b/webdev/CHANGELOG.md
index 491bdb3..442357e 100644
--- a/webdev/CHANGELOG.md
+++ b/webdev/CHANGELOG.md
@@ -1,4 +1,6 @@
-## 3.7.1-wip
+## 3.7.1
+- Update `dwds` constraint to `24.3.5`.
+- Added a utility method to locate `package_config.json` and set it in the `loadStrategy`.
 
 ## 3.7.0
 
diff --git a/webdev/lib/src/serve/utils.dart b/webdev/lib/src/serve/utils.dart
index 962305b..7c33619 100644
--- a/webdev/lib/src/serve/utils.dart
+++ b/webdev/lib/src/serve/utils.dart
@@ -82,3 +82,26 @@
     }
   }
 }
+
+/// Returns the absolute file path of the `package_config.json` file in the `.dart_tool`
+/// directory, searching recursively from the current directory hierarchy.
+String? findPackageConfigFilePath() {
+  var candidateDir = Directory(p.current).absolute;
+
+  while (true) {
+    final candidatePackageConfigFile =
+        File(p.join(candidateDir.path, '.dart_tool', 'package_config.json'));
+
+    if (candidatePackageConfigFile.existsSync()) {
+      return candidatePackageConfigFile.path;
+    }
+
+    final parentDir = candidateDir.parent;
+    if (parentDir.path == candidateDir.path) {
+      // We've reached the root directory
+      return null;
+    }
+
+    candidateDir = parentDir;
+  }
+}
diff --git a/webdev/lib/src/serve/webdev_server.dart b/webdev/lib/src/serve/webdev_server.dart
index bdf6320..edcfb84 100644
--- a/webdev/lib/src/serve/webdev_server.dart
+++ b/webdev/lib/src/serve/webdev_server.dart
@@ -21,6 +21,7 @@
 import '../util.dart';
 import 'chrome.dart';
 import 'handlers/favicon_handler.dart';
+import 'utils.dart' show findPackageConfigFilePath;
 
 Logger _logger = Logger('WebDevServer');
 
@@ -141,6 +142,7 @@
         options.configuration.reload,
         assetReader,
         buildSettings,
+        packageConfigPath: findPackageConfigFilePath(),
       ).strategy;
 
       if (options.configuration.enableExpressionEvaluation) {
diff --git a/webdev/lib/src/version.dart b/webdev/lib/src/version.dart
index cf9b803..d77ca7e 100644
--- a/webdev/lib/src/version.dart
+++ b/webdev/lib/src/version.dart
@@ -1,2 +1,2 @@
 // Generated code. Do not modify.
-const packageVersion = '3.7.1-wip';
+const packageVersion = '3.7.1';
diff --git a/webdev/pubspec.yaml b/webdev/pubspec.yaml
index 921aabc..1180595 100644
--- a/webdev/pubspec.yaml
+++ b/webdev/pubspec.yaml
@@ -1,6 +1,6 @@
 name: webdev
 # Every time this changes you need to run `dart run build_runner build`.
-version: 3.7.1-wip
+version: 3.7.1
 # We should not depend on a dev SDK before publishing.
 # publish_to: none
 description: >-
@@ -19,7 +19,7 @@
   crypto: ^3.0.2
   dds: ^4.1.0
   # Pin DWDS to avoid dependency conflicts with vm_service:
-  dwds: 24.2.0
+  dwds: 24.3.5
   http: ^1.0.0
   http_multi_server: ^3.2.0
   io: ^1.0.3