Version 3.9.0-293.0.dev

Merge f856d0bb58fedf2235724cae2cba691c12a2c5af into dev
diff --git a/DEPS b/DEPS
index c6a700c..b24932b 100644
--- a/DEPS
+++ b/DEPS
@@ -84,7 +84,7 @@
   "download_reclient": True,
 
   # Update from https://chrome-infra-packages.appspot.com/p/fuchsia/sdk/core
-  "fuchsia_sdk_version": "version:28.20250623.5.1",
+  "fuchsia_sdk_version": "version:28.20250625.5.1",
   "download_fuchsia_deps": False,
 
   # Ninja, runs the build based on files generated by GN.
@@ -592,7 +592,7 @@
     "packages": [
       {
       "package": "chromium/fuchsia/test-scripts",
-      "version": "2wEtX_lDNhHhDNsP6jc1mchGs3vX7p_HnyTxO1GJwTcC",
+      "version": "ZpnML-jis0gVIvtx5X7tupJAI8emZSB9b7yJSbqVrmMC",
       }
     ],
     "condition": 'download_fuchsia_deps',
diff --git a/pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart
index bf427f7..7564b33 100644
--- a/pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart
@@ -24,9 +24,7 @@
 
   void resolve(FunctionExpressionImpl node, {required DartType contextType}) {
     var parent = node.parent;
-    // Note: `isFunctionDeclaration` must have an explicit type to work around
-    // https://github.com/dart-lang/language/issues/1785.
-    bool isFunctionDeclaration = parent is FunctionDeclaration;
+    var isFunctionDeclaration = parent is FunctionDeclaration;
     var body = node.body;
 
     if (_resolver.flowAnalysis.flow != null && !isFunctionDeclaration) {
diff --git a/pkg/dartdev/lib/src/commands/dart_mcp_server.dart b/pkg/dartdev/lib/src/commands/dart_mcp_server.dart
index f61229b..1208323 100644
--- a/pkg/dartdev/lib/src/commands/dart_mcp_server.dart
+++ b/pkg/dartdev/lib/src/commands/dart_mcp_server.dart
@@ -12,9 +12,7 @@
   static const String cmdName = 'mcp-server';
 
   static const String cmdDescription = '''
-A stdio based Model Context Protocol (MCP) server to aid in Dart and Flutter development.
-
-EXPERIMENTAL: This tool may change dramatically or disappear at any time.''';
+A stdio based Model Context Protocol (MCP) server to aid in Dart and Flutter development.''';
 
   static const _forceRootsFallbackFlag = 'force-roots-fallback';
   static const _experimentFlag = 'experimental-mcp-server';
@@ -33,6 +31,9 @@
             'support it.',
       )
       ..addFlag(_experimentFlag,
+          // This flag is no longer required but we are leaving it in for
+          // backwards compatibility.
+          hide: true,
           defaultsTo: false,
           help: 'A required flag in order to use this command. Passing this '
               'flag is an acknowledgement that you understand it is an '
@@ -45,10 +46,6 @@
   @override
   Future<int> run() async {
     final args = argResults!;
-    if (!args.flag(_experimentFlag)) {
-      log.stderr('Missing required flag --$_experimentFlag\n\n$usage');
-      return 64;
-    }
     try {
       VmInteropHandler.run(
         sdk.dartAotRuntime,
diff --git a/pkg/dartdev/test/commands/mcp_server_test.dart b/pkg/dartdev/test/commands/mcp_server_test.dart
index 071fc62..4e18938 100644
--- a/pkg/dartdev/test/commands/mcp_server_test.dart
+++ b/pkg/dartdev/test/commands/mcp_server_test.dart
@@ -9,34 +9,33 @@
 
 void main() {
   group('dart mcp-server', () {
-    test('can be connected with a client', () async {
-      final client = TestMCPClient();
-      addTearDown(client.shutdown);
-      final serverConnection = await client.connectStdioServer(
-          Platform.resolvedExecutable,
-          ['mcp-server', '--experimental-mcp-server']);
-      final initializeResult = await serverConnection.initialize(
-          InitializeRequest(
-              protocolVersion: ProtocolVersion.latestSupported,
-              capabilities: client.capabilities,
-              clientInfo: client.implementation));
+    for (var withExperiment in const [true, false]) {
+      test(
+          'can be connected with a client with${withExperiment ? '' : 'out'} the experiment flag',
+          () async {
+        final client = TestMCPClient();
+        addTearDown(client.shutdown);
+        final serverConnection =
+            await client.connectStdioServer(Platform.resolvedExecutable, [
+          'mcp-server',
+          if (withExperiment) '--experimental-mcp-server',
+        ]);
+        final initializeResult = await serverConnection.initialize(
+            InitializeRequest(
+                protocolVersion: ProtocolVersion.latestSupported,
+                capabilities: client.capabilities,
+                clientInfo: client.implementation));
 
-      expect(initializeResult.protocolVersion, ProtocolVersion.latestSupported);
-      serverConnection.notifyInitialized();
+        expect(
+            initializeResult.protocolVersion, ProtocolVersion.latestSupported);
+        serverConnection.notifyInitialized();
 
-      expect(
-        await serverConnection.listTools(ListToolsRequest()),
-        isNotEmpty,
-      );
-    });
-
-    test('requires the --experimental-mcp-server flag', () async {
-      final processResult =
-          await Process.run(Platform.resolvedExecutable, ['mcp-server']);
-      expect(processResult.exitCode, isNot(0));
-      expect(processResult.stderr,
-          contains('Missing required flag --experimental-mcp-server'));
-    });
+        expect(
+          await serverConnection.listTools(ListToolsRequest()),
+          isNotEmpty,
+        );
+      });
+    }
   });
 }
 
diff --git a/runtime/bin/platform_macos.cc b/runtime/bin/platform_macos.cc
index b5215ad..1ba2e47 100644
--- a/runtime/bin/platform_macos.cc
+++ b/runtime/bin/platform_macos.cc
@@ -349,7 +349,14 @@
 
   _LSSetApplicationLaunchServicesServerConnectionStatus(0, nullptr);
 
-  _LSApplicationCheckIn(-2, CFBundleGetInfoDictionary(CFBundleGetMainBundle()));
+  CFMutableDictionaryRef dictionary = CFDictionaryCreateMutableCopy(
+      kCFAllocatorDefault, /*capacity=*/0,
+      CFBundleGetInfoDictionary(CFBundleGetMainBundle()));
+  if (dictionary == nullptr) return;
+  ScopedCFStringRef _kLSUIElement("LSUIElement");
+  CFDictionarySetValue(dictionary, _kLSUIElement.get(), kCFBooleanTrue);
+  _LSApplicationCheckIn(-2, dictionary);
+  CFRelease(dictionary);
 
   CFTypeRef asn;
   asn = _LSGetCurrentApplicationASN();
diff --git a/tools/VERSION b/tools/VERSION
index e288b25..b2e1089 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 3
 MINOR 9
 PATCH 0
-PRERELEASE 292
+PRERELEASE 293
 PRERELEASE_PATCH 0