fix(proxy): show a profile-defined GLOBAL in rule mode when it is the only group (#8607)

* fix(proxy): show a profile-defined GLOBAL in rule mode when it is the only group

Rule mode renders only proxyView.groups, and the backend always moves
GLOBAL out of that list. A profile whose only group is GLOBAL, or that
has no proxy-groups, therefore showed the "no proxy info" empty state.
Fall back to GLOBAL in that case, as v2.5.2 did before #7542.

Fixes #8223

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs(changelog): note the rule-mode GLOBAL fix

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* chore: drop the regression test and append the changelog entry

Per review: the test was only needed to confirm the fix locally, and new
changelog entries go at the end of their list.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: toBerlinWay <toBerlinWay@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Murphy
2026-11-09 16:33:47 +00:00
committed by GitHub
co-authored by Claude Opus 5.5 toBerlinWay
parent aae5dc90ba
commit 1e4f709766
2 changed files with 8 additions and 1 deletions
+1
View File
@@ -28,6 +28,7 @@
- 修复订阅响应过大导致内存占用过高,限制单次下载为 4 MiB
- 修复全局模式默认停在 `DIRECT` 或 `REJECT` 导致流量未经代理,现自动切换到第一个策略组
- 修复订阅中未加引号的 REALITY `short-id`(如 `1234e123`)被误读为数字,导致订阅无法启用
- 修复订阅中唯一的代理组名为 `GLOBAL` 或没有代理组时,规则模式下代理页面显示「未获取到代理信息」
**🍎 macOS**
+7 -1
View File
@@ -209,7 +209,13 @@ export const useRenderList = (
const renderGroups = useMemo(() => {
if (!proxyView) return []
if (mode === 'rule') return proxyView.groups
// A profile whose only group is GLOBAL (mihomo then skips its built-in one)
// or that has no proxy-groups has nothing else to show in rule mode.
if (mode === 'rule') {
return proxyView.groups.length || !proxyView.global
? proxyView.groups
: [proxyView.global]
}
const { global } = proxyView
if (!global) return []
const current = findCurrentGroupMember(proxyView, global)?.member