Releases: Clash-FX/ClashFX
Releases · Clash-FX/ClashFX
1.1.4
Bug Fixes
- Menu Bar Speed Indicator No Longer Shakes — The upload/download speed text now redraws inside a stable menu bar item width instead of resizing the whole status item whenever the number of digits changes, so nearby menu bar icons no longer jump when speeds cross values like
9.xx→10.xx. (#122) - Enhanced Mode Restore Is More Reliable After Restart — When ClashFX launches with Enhanced Mode previously enabled, it now retries the restore flow for up to about one minute while the privileged helper and external core come online. This avoids giving up after a single early attempt during app or macOS startup. (#123)
Contributors
- @pengtalk — Reported the menu bar speed indicator width jitter (#122)
- @pengtalk — Reported Enhanced Mode not reliably restoring after restart (#123)
修复
- 菜单栏网速显示不再抖动 — 上传 / 下载速度文字现在会在固定宽度的菜单栏区域内重绘,不再因为数字位数变化而调整整个状态栏图标宽度,因此网速从
9.xx变成10.xx时旁边图标不会再跳动。(#122) - 增强模式重启恢复更可靠 — 如果退出或重启前已开启增强模式,ClashFX 启动后现在会在约一分钟内持续重试恢复流程,等待 privileged helper 和外部核心就绪,避免在应用或系统刚启动时只尝试一次就放弃。(#123)
贡献者
Bug Fixes
- Enhanced Mode Now Respects Your
tun.stackSetting — The generated.enhanced_config.yamlpreviously hardcodedstack: mixed, silently overriding a user-configuredtun.stack. If your config setsystem(orgvisor), the dashboard showedmixedand reverting it never stuck. ClashFX now readstun.stackfrom your source config, validates it againstsystem/gvisor/mixed(case-insensitive), and only falls back tomixedwhen it is unset or invalid. Both the embedded and external core paths use the same resolved value so they never diverge. (#115) - Dashboard Theme & Column Settings Now Persist — In Enhanced Mode the external controller was assigned a random port on every launch, so the Yacd dashboard origin (
127.0.0.1:PORT) changed each time and its per-originlocalStorage(theme, custom columns) appeared to reset. ClashFX now pins a stable controller port (19090) and only falls back to a random free port if that port is already taken, keeping the dashboard origin — and your saved preferences — stable across launches. (#115) - Enhanced Mode Startup Is More Resilient — Enabling Enhanced Mode now automatically retries once when the external core fails to bind (e.g. a transient port race or a leftover
mihomo_coreprocess holding the controller port). Each retry regenerates the config with a fresh port instead of failing outright, so toggling Enhanced Mode on is far less likely to error out and require a manual retry. - Reopening ClashFX Reveals the Menu Bar Icon — When ClashFX is already running and you launch it again from Finder, Spotlight, Launchpad, or the Dock, it now pops open the menu bar menu so you can locate the icon — helpful when the menu bar is crowded and the icon is hidden. Thanks @hangox for the suggestion. (#114)
Contributors
修复
- 增强模式现在会尊重你的
tun.stack设置 — 之前生成的.enhanced_config.yaml硬编码stack: mixed,会静默覆盖用户配置的tun.stack。如果你配置了system(或gvisor),控制台却显示mixed,改回去也不生效。现在 ClashFX 会从源配置读取tun.stack,按system/gvisor/mixed(不区分大小写)校验,仅在未设置或非法时才回退到mixed。内置核心与外部核心两条路径使用同一个解析结果,不会再不一致。(#115) - 控制台主题与列设置现在能持久保存 — 增强模式下外部控制器每次启动都分配随机端口,导致 Yacd 控制台的 origin(
127.0.0.1:端口)每次都变,其按 origin 隔离的localStorage(主题、自定义列)看起来被重置。现在 ClashFX 固定使用稳定的控制器端口(19090),仅当该端口被占用时才回退到随机空闲端口,从而让控制台 origin —— 以及你保存的偏好 —— 在多次启动间保持稳定。(#115) - 增强模式启动更稳健 — 开启增强模式时,若外部核心绑定失败(例如瞬时端口竞争,或残留的
mihomo_core进程仍占用控制器端口),现在会自动重试一次。每次重试都会用新端口重新生成配置,而不是直接报错,因此开启增强模式更不容易失败、无需手动重试。 - 重新打开 ClashFX 时会弹出菜单栏图标 — 当 ClashFX 已在运行、你又从访达 / Spotlight / 启动台 / Dock 再次打开它时,现在会自动弹出菜单栏菜单,方便你定位图标 —— 在菜单栏拥挤、图标被隐藏时尤其有用。感谢 @hangox 的建议。(#114)
贡献者
1.1.4.1
Bug Fixes
- Menu Bar Speed Indicator No Longer Shakes — The upload/download speed text now redraws inside a stable menu bar item width instead of resizing the whole status item whenever the number of digits changes, so nearby menu bar icons no longer jump when speeds cross values like
9.xx→10.xx. (#122) - Enhanced Mode Restore Is More Reliable After Restart — When ClashFX launches with Enhanced Mode previously enabled, it now retries the restore flow for up to about one minute while the privileged helper and external core come online. This avoids giving up after a single early attempt during app or macOS startup. (#123)
Contributors
- @pengtalk — Reported the menu bar speed indicator width jitter (#122)
- @pengtalk — Reported Enhanced Mode not reliably restoring after restart (#123)
修复
- 菜单栏网速显示不再抖动 — 上传 / 下载速度文字现在会在固定宽度的菜单栏区域内重绘,不再因为数字位数变化而调整整个状态栏图标宽度,因此网速从
9.xx变成10.xx时旁边图标不会再跳动。(#122) - 增强模式重启恢复更可靠 — 如果退出或重启前已开启增强模式,ClashFX 启动后现在会在约一分钟内持续重试恢复流程,等待 privileged helper 和外部核心就绪,避免在应用或系统刚启动时只尝试一次就放弃。(#123)
贡献者
Bug Fixes
- Enhanced Mode Now Respects Your
tun.stackSetting — The generated.enhanced_config.yamlpreviously hardcodedstack: mixed, silently overriding a user-configuredtun.stack. If your config setsystem(orgvisor), the dashboard showedmixedand reverting it never stuck. ClashFX now readstun.stackfrom your source config, validates it againstsystem/gvisor/mixed(case-insensitive), and only falls back tomixedwhen it is unset or invalid. Both the embedded and external core paths use the same resolved value so they never diverge. (#115) - Dashboard Theme & Column Settings Now Persist — In Enhanced Mode the external controller was assigned a random port on every launch, so the Yacd dashboard origin (
127.0.0.1:PORT) changed each time and its per-originlocalStorage(theme, custom columns) appeared to reset. ClashFX now pins a stable controller port (19090) and only falls back to a random free port if that port is already taken, keeping the dashboard origin — and your saved preferences — stable across launches. (#115) - Enhanced Mode Startup Is More Resilient — Enabling Enhanced Mode now automatically retries once when the external core fails to bind (e.g. a transient port race or a leftover
mihomo_coreprocess holding the controller port). Each retry regenerates the config with a fresh port instead of failing outright, so toggling Enhanced Mode on is far less likely to error out and require a manual retry. - Reopening ClashFX Reveals the Menu Bar Icon — When ClashFX is already running and you launch it again from Finder, Spotlight, Launchpad, or the Dock, it now pops open the menu bar menu so you can locate the icon — helpful when the menu bar is crowded and the icon is hidden. Thanks @hangox for the suggestion. (#114)
Contributors
修复
- 增强模式现在会尊重你的
tun.stack设置 — 之前生成的.enhanced_config.yaml硬编码stack: mixed,会静默覆盖用户配置的tun.stack。如果你配置了system(或gvisor),控制台却显示mixed,改回去也不生效。现在 ClashFX 会从源配置读取tun.stack,按system/gvisor/mixed(不区分大小写)校验,仅在未设置或非法时才回退到mixed。内置核心与外部核心两条路径使用同一个解析结果,不会再不一致。(#115) - 控制台主题与列设置现在能持久保存 — 增强模式下外部控制器每次启动都分配随机端口,导致 Yacd 控制台的 origin(
127.0.0.1:端口)每次都变,其按 origin 隔离的localStorage(主题、自定义列)看起来被重置。现在 ClashFX 固定使用稳定的控制器端口(19090),仅当该端口被占用时才回退到随机空闲端口,从而让控制台 origin —— 以及你保存的偏好 —— 在多次启动间保持稳定。(#115) - 增强模式启动更稳健 — 开启增强模式时,若外部核心绑定失败(例如瞬时端口竞争,或残留的
mihomo_core进程仍占用控制器端口),现在会自动重试一次。每次重试都会用新端口重新生成配置,而不是直接报错,因此开启增强模式更不容易失败、无需手动重试。 - 重新打开 ClashFX 时会弹出菜单栏图标 — 当 ClashFX 已在运行、你又从访达 / Spotlight / 启动台 / Dock 再次打开它时,现在会自动弹出菜单栏菜单,方便你定位图标 —— 在菜单栏拥挤、图标被隐藏时尤其有用。感谢 @hangox 的建议。(#114)
贡献者
ClashFX 1.1.3
Bug Fixes
- Subscription Summary No Longer Widens the Menu — Long remote subscription usage/expiry text in the menu bar now gets shortened in the visible menu item, preventing the whole ClashFX menu from stretching wider than the screen. The full summary is still available via the item tooltip. (#120)
Contributors
- @xinggaoya — Reported the oversized subscription summary in the menu bar (#120)
修复
- 订阅摘要不再撑宽菜单 — 菜单栏里的远程订阅用量 / 到期时间过长时,现在会在可见菜单项中自动截断,避免整个 ClashFX 菜单被撑到超过屏幕宽度。完整摘要仍会保留在该菜单项的 tooltip 里。(#120)
贡献者
- @xinggaoya — 反馈订阅摘要导致菜单栏弹层过宽的问题 (#120)
Bug Fixes
- Enhanced Mode Now Respects Your
tun.stackSetting — The generated.enhanced_config.yamlpreviously hardcodedstack: mixed, silently overriding a user-configuredtun.stack. If your config setsystem(orgvisor), the dashboard showedmixedand reverting it never stuck. ClashFX now readstun.stackfrom your source config, validates it againstsystem/gvisor/mixed(case-insensitive), and only falls back tomixedwhen it is unset or invalid. Both the embedded and external core paths use the same resolved value so they never diverge. (#115) - Dashboard Theme & Column Settings Now Persist — In Enhanced Mode the external controller was assigned a random port on every launch, so the Yacd dashboard origin (
127.0.0.1:PORT) changed each time and its per-originlocalStorage(theme, custom columns) appeared to reset. ClashFX now pins a stable controller port (19090) and only falls back to a random free port if that port is already taken, keeping the dashboard origin — and your saved preferences — stable across launches. (#115) - Enhanced Mode Startup Is More Resilient — Enabling Enhanced Mode now automatically retries once when the external core fails to bind (e.g. a transient port race or a leftover
mihomo_coreprocess holding the controller port). Each retry regenerates the config with a fresh port instead of failing outright, so toggling Enhanced Mode on is far less likely to error out and require a manual retry. - Reopening ClashFX Reveals the Menu Bar Icon — When ClashFX is already running and you launch it again from Finder, Spotlight, Launchpad, or the Dock, it now pops open the menu bar menu so you can locate the icon — helpful when the menu bar is crowded and the icon is hidden. Thanks @hangox for the suggestion. (#114)
Contributors
修复
- 增强模式现在会尊重你的
tun.stack设置 — 之前生成的.enhanced_config.yaml硬编码stack: mixed,会静默覆盖用户配置的tun.stack。如果你配置了system(或gvisor),控制台却显示mixed,改回去也不生效。现在 ClashFX 会从源配置读取tun.stack,按system/gvisor/mixed(不区分大小写)校验,仅在未设置或非法时才回退到mixed。内置核心与外部核心两条路径使用同一个解析结果,不会再不一致。(#115) - 控制台主题与列设置现在能持久保存 — 增强模式下外部控制器每次启动都分配随机端口,导致 Yacd 控制台的 origin(
127.0.0.1:端口)每次都变,其按 origin 隔离的localStorage(主题、自定义列)看起来被重置。现在 ClashFX 固定使用稳定的控制器端口(19090),仅当该端口被占用时才回退到随机空闲端口,从而让控制台 origin —— 以及你保存的偏好 —— 在多次启动间保持稳定。(#115) - 增强模式启动更稳健 — 开启增强模式时,若外部核心绑定失败(例如瞬时端口竞争,或残留的
mihomo_core进程仍占用控制器端口),现在会自动重试一次。每次重试都会用新端口重新生成配置,而不是直接报错,因此开启增强模式更不容易失败、无需手动重试。 - 重新打开 ClashFX 时会弹出菜单栏图标 — 当 ClashFX 已在运行、你又从访达 / Spotlight / 启动台 / Dock 再次打开它时,现在会自动弹出菜单栏菜单,方便你定位图标 —— 在菜单栏拥挤、图标被隐藏时尤其有用。感谢 @hangox 的建议。(#114)
贡献者
1.1.3.3
Bug Fixes
- Subscription Summary No Longer Widens the Menu — Long remote subscription usage/expiry text in the menu bar now gets shortened in the visible menu item, preventing the whole ClashFX menu from stretching wider than the screen. The full summary is still available via the item tooltip. (#120)
Contributors
- @xinggaoya — Reported the oversized subscription summary in the menu bar (#120)
修复
- 订阅摘要不再撑宽菜单 — 菜单栏里的远程订阅用量 / 到期时间过长时,现在会在可见菜单项中自动截断,避免整个 ClashFX 菜单被撑到超过屏幕宽度。完整摘要仍会保留在该菜单项的 tooltip 里。(#120)
贡献者
- @xinggaoya — 反馈订阅摘要导致菜单栏弹层过宽的问题 (#120)
Bug Fixes
- Enhanced Mode Now Respects Your
tun.stackSetting — The generated.enhanced_config.yamlpreviously hardcodedstack: mixed, silently overriding a user-configuredtun.stack. If your config setsystem(orgvisor), the dashboard showedmixedand reverting it never stuck. ClashFX now readstun.stackfrom your source config, validates it againstsystem/gvisor/mixed(case-insensitive), and only falls back tomixedwhen it is unset or invalid. Both the embedded and external core paths use the same resolved value so they never diverge. (#115) - Dashboard Theme & Column Settings Now Persist — In Enhanced Mode the external controller was assigned a random port on every launch, so the Yacd dashboard origin (
127.0.0.1:PORT) changed each time and its per-originlocalStorage(theme, custom columns) appeared to reset. ClashFX now pins a stable controller port (19090) and only falls back to a random free port if that port is already taken, keeping the dashboard origin — and your saved preferences — stable across launches. (#115) - Enhanced Mode Startup Is More Resilient — Enabling Enhanced Mode now automatically retries once when the external core fails to bind (e.g. a transient port race or a leftover
mihomo_coreprocess holding the controller port). Each retry regenerates the config with a fresh port instead of failing outright, so toggling Enhanced Mode on is far less likely to error out and require a manual retry. - Reopening ClashFX Reveals the Menu Bar Icon — When ClashFX is already running and you launch it again from Finder, Spotlight, Launchpad, or the Dock, it now pops open the menu bar menu so you can locate the icon — helpful when the menu bar is crowded and the icon is hidden. Thanks @hangox for the suggestion. (#114)
Contributors
修复
- 增强模式现在会尊重你的
tun.stack设置 — 之前生成的.enhanced_config.yaml硬编码stack: mixed,会静默覆盖用户配置的tun.stack。如果你配置了system(或gvisor),控制台却显示mixed,改回去也不生效。现在 ClashFX 会从源配置读取tun.stack,按system/gvisor/mixed(不区分大小写)校验,仅在未设置或非法时才回退到mixed。内置核心与外部核心两条路径使用同一个解析结果,不会再不一致。(#115) - 控制台主题与列设置现在能持久保存 — 增强模式下外部控制器每次启动都分配随机端口,导致 Yacd 控制台的 origin(
127.0.0.1:端口)每次都变,其按 origin 隔离的localStorage(主题、自定义列)看起来被重置。现在 ClashFX 固定使用稳定的控制器端口(19090),仅当该端口被占用时才回退到随机空闲端口,从而让控制台 origin —— 以及你保存的偏好 —— 在多次启动间保持稳定。(#115) - 增强模式启动更稳健 — 开启增强模式时,若外部核心绑定失败(例如瞬时端口竞争,或残留的
mihomo_core进程仍占用控制器端口),现在会自动重试一次。每次重试都会用新端口重新生成配置,而不是直接报错,因此开启增强模式更不容易失败、无需手动重试。 - 重新打开 ClashFX 时会弹出菜单栏图标 — 当 ClashFX 已在运行、你又从访达 / Spotlight / 启动台 / Dock 再次打开它时,现在会自动弹出菜单栏菜单,方便你定位图标 —— 在菜单栏拥挤、图标被隐藏时尤其有用。感谢 @hangox 的建议。(#114)
贡献者
1.1.3.2
Bug Fixes
- Enhanced Mode Now Respects Your
tun.stackSetting — The generated.enhanced_config.yamlpreviously hardcodedstack: mixed, silently overriding a user-configuredtun.stack. If your config setsystem(orgvisor), the dashboard showedmixedand reverting it never stuck. ClashFX now readstun.stackfrom your source config, validates it againstsystem/gvisor/mixed(case-insensitive), and only falls back tomixedwhen it is unset or invalid. Both the embedded and external core paths use the same resolved value so they never diverge. (#115) - Dashboard Theme & Column Settings Now Persist — In Enhanced Mode the external controller was assigned a random port on every launch, so the Yacd dashboard origin (
127.0.0.1:PORT) changed each time and its per-originlocalStorage(theme, custom columns) appeared to reset. ClashFX now pins a stable controller port (19090) and only falls back to a random free port if that port is already taken, keeping the dashboard origin — and your saved preferences — stable across launches. (#115) - Enhanced Mode Startup Is More Resilient — Enabling Enhanced Mode now automatically retries once when the external core fails to bind (e.g. a transient port race or a leftover
mihomo_coreprocess holding the controller port). Each retry regenerates the config with a fresh port instead of failing outright, so toggling Enhanced Mode on is far less likely to error out and require a manual retry. - Reopening ClashFX Reveals the Menu Bar Icon — When ClashFX is already running and you launch it again from Finder, Spotlight, Launchpad, or the Dock, it now pops open the menu bar menu so you can locate the icon — helpful when the menu bar is crowded and the icon is hidden. Thanks @hangox for the suggestion. (#114)
Contributors
修复
- 增强模式现在会尊重你的
tun.stack设置 — 之前生成的.enhanced_config.yaml硬编码stack: mixed,会静默覆盖用户配置的tun.stack。如果你配置了system(或gvisor),控制台却显示mixed,改回去也不生效。现在 ClashFX 会从源配置读取tun.stack,按system/gvisor/mixed(不区分大小写)校验,仅在未设置或非法时才回退到mixed。内置核心与外部核心两条路径使用同一个解析结果,不会再不一致。(#115) - 控制台主题与列设置现在能持久保存 — 增强模式下外部控制器每次启动都分配随机端口,导致 Yacd 控制台的 origin(
127.0.0.1:端口)每次都变,其按 origin 隔离的localStorage(主题、自定义列)看起来被重置。现在 ClashFX 固定使用稳定的控制器端口(19090),仅当该端口被占用时才回退到随机空闲端口,从而让控制台 origin —— 以及你保存的偏好 —— 在多次启动间保持稳定。(#115) - 增强模式启动更稳健 — 开启增强模式时,若外部核心绑定失败(例如瞬时端口竞争,或残留的
mihomo_core进程仍占用控制器端口),现在会自动重试一次。每次重试都会用新端口重新生成配置,而不是直接报错,因此开启增强模式更不容易失败、无需手动重试。 - 重新打开 ClashFX 时会弹出菜单栏图标 — 当 ClashFX 已在运行、你又从访达 / Spotlight / 启动台 / Dock 再次打开它时,现在会自动弹出菜单栏菜单,方便你定位图标 —— 在菜单栏拥挤、图标被隐藏时尤其有用。感谢 @hangox 的建议。(#114)
贡献者
1.1.3.1
Bug Fixes
- Enhanced Mode No Longer Times Out All Nodes on Startup — When Enhanced Mode (TUN) was enabled, the external
mihomocore's own outbound connections — proxy server handshakes and rule-provider HTTP fetches (YouTube, ChinaMax, DMM, SteamCN, Bahamut, etc.) — were being re-captured by the TUN device and routed back through the rules engine, hittingMATCH/<proxy-group>before any session could be established. This caused a self-bootstrapping loop where every node reportedcontext deadline exceededand all rule-providers failed with EOF. The root cause was that no rule in the generated.enhanced_config.yamlexcluded themihomoprocess itself from TUN interception. Fixed by prependingPROCESS-NAME,mihomo,DIRECT,PROCESS-NAME,mihomo-bin,DIRECT, andPROCESS-NAME,mihomo_core,DIRECTahead of all user rules in the generated config so the core's own traffic always exits directly without re-entering the tunnel. Thanks @JackeyLov5 for the detailed log and patient follow-up. (#75) - Enhanced Mode No Longer Silently Exposes Proxy to LAN — The generated
.enhanced_config.yamlwas inheritingbind-address: "*"from the source config, causing the proxy listener to accept connections from all network interfaces even whenallow-lanwas not explicitly set. On shared networks this meant other devices on the same LAN could route traffic through your proxy without any indication in the UI. The generated config now enforcesallow-lan: falseandbind-address: 127.0.0.1by default; if the source config explicitly declaresallow-lan: true, the original value is preserved. Thanks @JackeyLov5 for reporting both issues together. (#75) - Help Menu Lab Items Now Have Individual Visibility Toggles — "Send Feedback…", "Copy Diagnostic Info…", and "Open Crash Log Folder" can now be individually shown or hidden from the tray menu display settings, matching every other menu item. The "Roll Back to Stable…" toggle correctly appears only on Lab builds where that menu item actually exists; Stable users no longer see a non-functional toggle. The separator above the Lab Help block is also hidden automatically when all items in the group are hidden. Thanks @ayangweb for the contribution. (#112)
Contributors
- @ayangweb — Help menu Lab item visibility toggles (#112)
- @JackeyLov5 — Detailed Enhanced Mode log and reproduction that pinpointed both the node-timeout and LAN-exposure bugs (#75)
修复
- 增强模式启动不再导致节点全部超时 — 开启增强模式(TUN)后,外部
mihomo核心自身发出的连接——向代理服务器握手、拉取 rule-provider(YouTube、ChinaMax、DMM、SteamCN、Bahamut 等)——会被 TUN 设备重新截获,经规则引擎命中MATCH/<代理组>,在任何 session 建立成功之前形成自举死循环,导致所有节点context deadline exceeded、所有 rule-provider 报 EOF。根本原因是生成的.enhanced_config.yaml中没有任何规则将mihomo进程自身排除在 TUN 拦截之外。修复方式:在生成配置的所有用户规则之前插入PROCESS-NAME,mihomo,DIRECT、PROCESS-NAME,mihomo-bin,DIRECT、PROCESS-NAME,mihomo_core,DIRECT,确保核心自身出站流量始终直连、不重入隧道。感谢 @JackeyLov5 提供详细日志并耐心跟进。(#75) - 增强模式不再静默将代理暴露给局域网 — 生成的
.enhanced_config.yaml会继承源配置的bind-address: "*",导致即使未显式开启allow-lan,代理监听端口也会绑定到所有网卡。在共享网络环境下,同局域网的其他设备可以在 UI 毫无提示的情况下将流量路由进你的代理。现在生成配置时默认写入allow-lan: false和bind-address: 127.0.0.1;若源配置明确声明了allow-lan: true,则保留原值不变。感谢 @JackeyLov5 同时报告了这两个问题。(#75) - Help 菜单 Lab 项现已支持独立显示/隐藏 — 「Send Feedback…」「Copy Diagnostic Info…」「Open Crash Log Folder」现在可以在菜单栏显示设置中单独控制,与其他所有菜单项一致。「Roll Back to Stable…」开关现在只在 Lab 构建中显示,Stable 用户不会再看到一个无任何效果的开关。当 Lab Help 块的所有子项均被隐藏时,上方的分隔线也会自动隐藏。感谢 @ayangweb 的贡献。(#112)
贡献者
- @ayangweb — Help 菜单 Lab 项独立显示/隐藏 (#112)
- @JackeyLov5 — 提供详细增强模式日志和复现步骤,准确定位了节点超时与 LAN 暴露两个 bug (#75)
1.1.2
Bug Fixes
- Ignore List in Rule Mode Now Actually Bypasses —
More Settings → Ignore Listentries were previously ignored by mihomo in Rule mode, leaving the toggle a silent no-op for users not on Enhanced Mode. ClashFX now translates each entry into the appropriateDOMAIN/DOMAIN-SUFFIX/IP-CIDR/IP-CIDR6DIRECTrule and injects them ahead of your existingrules:into a runtime config consumed by mihomo, so bypass entries take effect immediately on reload. Your source config file is never modified. Enhanced Mode and iCloud configs are skipped intentionally and fall back to the original behavior. (#110, #104) - WebSocket Crash on Traffic/Log Stream Fixed — Sparse
EXC_BAD_ACCESScrashes inside_outputStreamCallbackFuncunder thecom.vluxe.starscream.websocketqueue have been eliminated by upgrading Starscream from 3.1.1 to 4.0.8. The stream lifecycle was rewritten around the new event-based delegate, with manual connection tracking,forceDisconnect()retire semantics, assign-before-connect ordering, main-thread retry timers, and.peerClosedhandling so the menu bar speed indicator and Connections panel recover cleanly across network changes, sleep/wake, and core restarts. (#109) - Disable Enhanced Mode Re-applies Ignore List Rules — When you toggle Enhanced Mode off, the subsequent config reload now routes through the same rule-patching path as a manual reload, so any configured Ignore List entries are immediately reflected in Rule mode instead of waiting for the next manual reload.
- Status Bar Menu No Longer Greys Out Unexpectedly — Action items in the status bar menu (Set as System Proxy, Enhanced Mode, Copy Terminal Command, Quit, etc.) could become disabled when another window briefly stole the responder chain (e.g. during Sparkle update prompts or Settings sheets). All menu items now have explicit targets and a centralized
validateMenuItem:implementation, so the menu state remains correct regardless of focus changes. - Bypass Common Chinese Apps Now Reflects Enhanced Mode — The "Bypass Common Chinese Apps" toggle relies on
PROCESS-NAMErules that only resolve under Enhanced Mode (TUN). Under Rule mode mihomo cannot see the originating process, so the toggle was previously a silent no-op. It is now disabled in Rule mode with a tooltip explaining the requirement; toggling Enhanced Mode on automatically re-enables it. - External Control Mode No Longer Breaks Other Menu Items — Selecting an External Control instance used to disable Sparkle's auto-validation for the entire status menu, which could leave unrelated items greyed out. Disable logic now targets only the actions that genuinely don't apply to a remote core (Set as System Proxy, Copy Terminal Command), while everything else stays usable.
修复
- 规则模式下「忽略 list」终于真正生效 — 此前在规则模式下,
More Settings → Ignore List里的条目并不会被 mihomo 识别,对没开增强模式的用户来说就是个静默失效的开关。现在 ClashFX 会把每条记录翻译成对应的DOMAIN/DOMAIN-SUFFIX/IP-CIDR/IP-CIDR6DIRECT规则,并在加载配置时拼到你原有rules:的最前面,写入一个内部运行时配置喂给 mihomo,所以忽略条目下次加载即时生效。原始配置文件不会被改动。增强模式和 iCloud 配置会按原行为继续走,不参与注入。(#110, #104) - 流量 / 日志 WebSocket 偶发崩溃修复 — 队列
com.vluxe.starscream.websocket中_outputStreamCallbackFunc偶发的EXC_BAD_ACCESS已经通过把 Starscream 从 3.1.1 升级到 4.0.8 修掉。流监听逻辑围绕新的事件式 delegate 重写,加上手动连接状态跟踪、forceDisconnect()回收语义、先赋值后 connect、主线程重试 timer、.peerClosed处理,菜单栏速率指示器和连接面板在网络切换、睡眠/唤醒、内核重启之后都能干净恢复。(#109) - 关闭增强模式后忽略 list 立即生效 — 关掉增强模式后的那次自动重载现在会走同样的规则注入路径,规则模式下的忽略 list 不用再手动重载一次。
- 菜单栏不再无故灰掉 — 状态栏菜单的动作项(设置为系统代理、增强模式、复制终端代理命令、退出等)在其他窗口短暂抢占响应链时(如 Sparkle 弹窗、设置面板出现时)会被自动禁用。现在所有菜单项都显式绑定 target,并通过统一的
validateMenuItem:校验,焦点切换不会再让菜单状态错乱。 - 「绕过常用国内应用」按增强模式自动启停 — 这个开关依赖
PROCESS-NAME规则,只有增强模式(TUN)下 mihomo 才看得到进程名。规则模式下 mihomo 只是 HTTP/SOCKS 代理,拿不到进程信息,开关此前是静默失效。现在在规则模式下会自动灰掉并显示提示,开启增强模式后自动恢复可用。 - 外部控制模式不再误伤其他菜单项 — 之前选中外部控制实例会关闭整个状态栏菜单的自动校验,可能让无关菜单项一起变灰。现在只有真正不适用远程核心的动作(设置为系统代理、复制终端代理命令)会被禁用,其他菜单项保持可用。
1.1.2.2
Bug Fixes
- Ignore List in Rule Mode Now Actually Bypasses —
More Settings → Ignore Listentries were previously ignored by mihomo in Rule mode, leaving the toggle a silent no-op for users not on Enhanced Mode. ClashFX now translates each entry into the appropriateDOMAIN/DOMAIN-SUFFIX/IP-CIDR/IP-CIDR6DIRECTrule and injects them ahead of your existingrules:into a runtime config consumed by mihomo, so bypass entries take effect immediately on reload. Your source config file is never modified. Enhanced Mode and iCloud configs are skipped intentionally and fall back to the original behavior. (#110, #104) - WebSocket Crash on Traffic/Log Stream Fixed — Sparse
EXC_BAD_ACCESScrashes inside_outputStreamCallbackFuncunder thecom.vluxe.starscream.websocketqueue have been eliminated by upgrading Starscream from 3.1.1 to 4.0.8. The stream lifecycle was rewritten around the new event-based delegate, with manual connection tracking,forceDisconnect()retire semantics, assign-before-connect ordering, main-thread retry timers, and.peerClosedhandling so the menu bar speed indicator and Connections panel recover cleanly across network changes, sleep/wake, and core restarts. (#109) - Disable Enhanced Mode Re-applies Ignore List Rules — When you toggle Enhanced Mode off, the subsequent config reload now routes through the same rule-patching path as a manual reload, so any configured Ignore List entries are immediately reflected in Rule mode instead of waiting for the next manual reload.
修复
- 规则模式下「忽略 list」终于真正生效 — 此前在规则模式下,
More Settings → Ignore List里的条目并不会被 mihomo 识别,对没开增强模式的用户来说就是个静默失效的开关。现在 ClashFX 会把每条记录翻译成对应的DOMAIN/DOMAIN-SUFFIX/IP-CIDR/IP-CIDR6DIRECT规则,并在加载配置时拼到你原有rules:的最前面,写入一个内部运行时配置喂给 mihomo,所以忽略条目下次加载即时生效。原始配置文件不会被改动。增强模式和 iCloud 配置会按原行为继续走,不参与注入。(#110, #104) - 流量 / 日志 WebSocket 偶发崩溃修复 — 队列
com.vluxe.starscream.websocket中_outputStreamCallbackFunc偶发的EXC_BAD_ACCESS已经通过把 Starscream 从 3.1.1 升级到 4.0.8 修掉。流监听逻辑围绕新的事件式 delegate 重写,加上手动连接状态跟踪、forceDisconnect()回收语义、先赋值后 connect、主线程重试 timer、.peerClosed处理,菜单栏速率指示器和连接面板在网络切换、睡眠/唤醒、内核重启之后都能干净恢复。(#109) - 关闭增强模式后忽略 list 立即生效 — 关掉增强模式后的那次自动重载现在会走同样的规则注入路径,规则模式下的忽略 list 不用再手动重载一次。
1.1.2.1
Bug Fixes
- Status Bar Menu No Longer Greys Out Unexpectedly — Action items in the status bar menu (Set as System Proxy, Enhanced Mode, Copy Terminal Command, Quit, etc.) could become disabled when another window briefly stole the responder chain (e.g. during Sparkle update prompts or Settings sheets). All menu items now have explicit targets and a centralized
validateMenuItem:implementation, so the menu state remains correct regardless of focus changes. - Bypass Common Chinese Apps Now Reflects Enhanced Mode — The "Bypass Common Chinese Apps" toggle relies on
PROCESS-NAMErules that only resolve under Enhanced Mode (TUN). Under Rule mode mihomo cannot see the originating process, so the toggle was previously a silent no-op. It is now disabled in Rule mode with a tooltip explaining the requirement; toggling Enhanced Mode on automatically re-enables it. - External Control Mode No Longer Breaks Other Menu Items — Selecting an External Control instance used to disable Sparkle's auto-validation for the entire status menu, which could leave unrelated items greyed out. Disable logic now targets only the actions that genuinely don't apply to a remote core (Set as System Proxy, Copy Terminal Command), while everything else stays usable.
修复
- 菜单栏不再无故灰掉 — 状态栏菜单的动作项(设置为系统代理、增强模式、复制终端代理命令、退出等)在其他窗口短暂抢占响应链时(如 Sparkle 弹窗、设置面板出现时)会被自动禁用。现在所有菜单项都显式绑定 target,并通过统一的
validateMenuItem:校验,焦点切换不会再让菜单状态错乱。 - 「绕过常用国内应用」按增强模式自动启停 — 这个开关依赖
PROCESS-NAME规则,只有增强模式(TUN)下 mihomo 才看得到进程名。规则模式下 mihomo 只是 HTTP/SOCKS 代理,拿不到进程信息,开关此前是静默失效。现在在规则模式下会自动灰掉并显示提示,开启增强模式后自动恢复可用。 - 外部控制模式不再误伤其他菜单项 — 之前选中外部控制实例会关闭整个状态栏菜单的自动校验,可能让无关菜单项一起变灰。现在只有真正不适用远程核心的动作(设置为系统代理、复制终端代理命令)会被禁用,其他菜单项保持可用。
1.1.1
Bug Fixes
- Status Bar Speed Recovery — The menu bar upload/download speed display now recovers when the traffic or log WebSocket closes cleanly, stalls without an error, or becomes stale after macOS sleep/wake.
- Network Change Recovery — ClashFX now resets the traffic stream after local IP/interface changes so the menu bar speed indicator does not stay frozen after switching Wi-Fi, VPN, or network environments.
- Remote Subscription Compatibility — Remote config downloads now use a Clash Meta-compatible User-Agent, fixing providers that returned only base64/share-link node lists instead of full YAML rules and proxy groups.
- Legacy TUN Route Exclusions — Enhanced Mode now automatically converts old LAN wildcard exclusions such as
10.*,192.168.*, and172.16.*–172.31.*into valid CIDR ranges before generating the mihomo config. The Go config writer also accepts these legacy entries as a fallback.
修复
- 状态栏网速恢复 — 菜单栏上传/下载速度在 traffic/log WebSocket 正常关闭、无错误卡住,或 macOS 睡眠/唤醒后变成旧连接时,现在会自动恢复,不再长期定格。
- 网络变化恢复 — 本机 IP 或网络接口变化后,ClashFX 会重置流量流,避免切换 Wi-Fi、VPN 或网络环境后菜单栏网速继续冻结。
- 远程订阅兼容性 — 远程配置下载现在使用 Clash Meta 兼容的 User-Agent,修复部分机场只返回 base64/share-link 节点列表,导致规则和代理组丢失的问题。
- 旧版 TUN 路由排除兼容 — 增强模式会自动把
10.*、192.168.*、172.16.*–172.31.*等旧局域网通配符转换成 mihomo 接受的 CIDR;Go 配置生成层也增加了兜底兼容。