v1.3.0-beta
Pre-release
Pre-release
fix(core): 运行时事件订阅不再依赖 clash_api 开关 1.2.2(sing-box 1.13)中 subscribeHooks/QueryStats/QueryProxies/QueryMode 以 clashServer() 是否可用为门禁;由于三个入口恒传 PlatformLogWriter,1.13 的 needClashAPI 恒为 true,因此这些路径始终可用。 1.14 迁移(9e0ca80)把门禁改写成用户开关 clashAPIEnabled,而该开关对应 配置里的 experimental.clash_api(默认关闭)。clash_api 缺失时: subscribeHooks 直接 return → 流量/连接/内存/启动时间(stats 每秒推送)、 连接事件、urltest 测速历史(节点延迟)全部不再订阅; QueryStats/QueryProxies/QueryMode 也一并被挡。 1.14 起 trafficcontrol.Manager / urltest.HistoryStorage / clashmode.Manager 均已独立于 clash_api 注册(只要配置了 PlatformLogWriter),故改为「谁可用 就订阅/读取谁」,clashAPIEnabled 字段随之删除。 修复后,未开启「Clash API」时仪表盘统计、节点延迟、模式查询与切换、 连接事件推送均恢复正常,对外 API 开关只影响 9090 控制口。 补回归测试: - core: 无 clash_api 仍推送 EventStats(started_at/memory 非空)且模式可切 - ipc: 无 clash_api 仍通过 socket 推送 event.trafficUpdate