From 2caf8ea14ffef15e12463b8bf8b524466b09db7e Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Mon, 30 Mar 2026 19:49:37 +0800 Subject: [PATCH 1/4] Bug fix https://github.com/2dust/v2rayN/issues/9016 --- .../ServiceLib/ViewModels/ProfilesViewModel.cs | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/v2rayN/ServiceLib/ViewModels/ProfilesViewModel.cs b/v2rayN/ServiceLib/ViewModels/ProfilesViewModel.cs index 6e7e183c..7a127fa7 100644 --- a/v2rayN/ServiceLib/ViewModels/ProfilesViewModel.cs +++ b/v2rayN/ServiceLib/ViewModels/ProfilesViewModel.cs @@ -709,18 +709,22 @@ public class ProfilesViewModel : MyReactiveObject public async Task ServerSpeedtest(ESpeedActionType actionType) { - if (actionType == ESpeedActionType.Mixedtest) + List? lstSelected; + if (actionType is ESpeedActionType.Mixedtest or ESpeedActionType.FastRealping) { - SelectedProfiles = ProfileItems; + if (actionType == ESpeedActionType.FastRealping) + { + actionType = ESpeedActionType.Realping; + } + + lstSelected = JsonUtils.Deserialize>(JsonUtils.Serialize(ProfileItems?.OrderBy(t => t.Sort))); } - else if (actionType == ESpeedActionType.FastRealping) + else { - SelectedProfiles = ProfileItems; - actionType = ESpeedActionType.Realping; + lstSelected = await GetProfileItems(false); } - var lstSelected = await GetProfileItems(false); - if (lstSelected == null) + if (lstSelected is null || lstSelected.Count <= 0) { return; } From 01c85adedfc92291e8d6156835ce872ed2c8e12c Mon Sep 17 00:00:00 2001 From: DHR60 Date: Mon, 30 Mar 2026 12:09:10 +0000 Subject: [PATCH 2/4] Show clash ui when tun enabled (#9010) --- v2rayN/ServiceLib/Handler/ConfigHandler.cs | 2 +- v2rayN/ServiceLib/Manager/CoreManager.cs | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/v2rayN/ServiceLib/Handler/ConfigHandler.cs b/v2rayN/ServiceLib/Handler/ConfigHandler.cs index c3d82043..167820f0 100644 --- a/v2rayN/ServiceLib/Handler/ConfigHandler.cs +++ b/v2rayN/ServiceLib/Handler/ConfigHandler.cs @@ -1432,7 +1432,7 @@ public static class ConfigHandler else if (node.ConfigType == EConfigType.Custom && node.PreSocksPort is > 0 and <= 65535) { - var preCoreType = AppManager.Instance.RunningCoreType = config.TunModeItem.EnableTun ? ECoreType.sing_box : ECoreType.Xray; + var preCoreType = config.TunModeItem.EnableTun ? ECoreType.sing_box : ECoreType.Xray; itemSocks = new ProfileItem() { CoreType = preCoreType, diff --git a/v2rayN/ServiceLib/Manager/CoreManager.cs b/v2rayN/ServiceLib/Manager/CoreManager.cs index 14a9ae50..c309680a 100644 --- a/v2rayN/ServiceLib/Manager/CoreManager.cs +++ b/v2rayN/ServiceLib/Manager/CoreManager.cs @@ -90,6 +90,9 @@ public class CoreManager await CoreStart(mainContext); await CoreStartPreService(preContext); + + AppManager.Instance.RunningCoreType = preContext?.RunCoreType ?? mainContext.RunCoreType; + if (_processService != null) { await UpdateFunc(true, $"{node.GetSummary()}"); @@ -172,7 +175,7 @@ public class CoreManager private async Task CoreStart(CoreConfigContext context) { var node = context.Node; - var coreType = AppManager.Instance.RunningCoreType = AppManager.Instance.GetCoreType(node, node.ConfigType); + var coreType = AppManager.Instance.GetCoreType(node, node.ConfigType); var coreInfo = CoreInfoManager.Instance.GetCoreInfo(coreType); var displayLog = node.ConfigType != EConfigType.Custom || node.DisplayLog; From 695a073cd63657d7dfca07e23c1f59f1b415a796 Mon Sep 17 00:00:00 2001 From: nirvanalinlei <143369142+nirvanalinlei@users.noreply.github.com> Date: Mon, 30 Mar 2026 20:12:36 +0800 Subject: [PATCH 3/4] Fix sing-box selector generation for dynamic group tags (#9015) --- .../Services/CoreConfig/Singbox/SingboxOutboundService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v2rayN/ServiceLib/Services/CoreConfig/Singbox/SingboxOutboundService.cs b/v2rayN/ServiceLib/Services/CoreConfig/Singbox/SingboxOutboundService.cs index 0fc9733c..7a86761f 100644 --- a/v2rayN/ServiceLib/Services/CoreConfig/Singbox/SingboxOutboundService.cs +++ b/v2rayN/ServiceLib/Services/CoreConfig/Singbox/SingboxOutboundService.cs @@ -22,7 +22,7 @@ public partial class CoreConfigSingboxService } if (withSelector) { - var proxyTags = proxyOutboundList.Where(n => n.tag.StartsWith(Global.ProxyTag)).Select(n => n.tag).ToList(); + var proxyTags = proxyOutboundList.Where(n => n.tag.StartsWith(baseTagName)).Select(n => n.tag).ToList(); if (proxyTags.Count > 1) { proxyOutboundList.InsertRange(0, BuildSelectorOutbounds(proxyTags, baseTagName)); From 7329dbae11e322e3b29edfea888253a628d9d118 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Mon, 30 Mar 2026 20:46:52 +0800 Subject: [PATCH 4/4] up 7.20.1 --- v2rayN/Directory.Build.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v2rayN/Directory.Build.props b/v2rayN/Directory.Build.props index 943d4c86..a988469d 100644 --- a/v2rayN/Directory.Build.props +++ b/v2rayN/Directory.Build.props @@ -1,7 +1,7 @@ - 7.20.0 + 7.20.1