Skip to content

Releases: iwvw/Momomi

v0.8.12

Choose a tag to compare

@github-actions github-actions released this 24 Oct 10:49

延迟测速

新增「只测 TCP 延迟」开关

设置 → 延迟测试 → 只测 TCP 延迟。

开启后不再经内核发 HTTP 请求,而是直接对节点的 server:port 建一次 TCP 连接,
只量握手耗时。数字比默认模式小(少了 TLS 握手与节点到目标站的链路),
适合快速判断线路通不通。

  • hysteria / hysteria2 / tuic 这类只有 UDP 端口的节点无法测 TCP,会自动回退到默认测速
  • 节点地址从 runtime.yaml 读取(内核 /proxies 接口不返回 server/port),按文件时间戳缓存

批量测速更稳、更准

  • 并发不再固定 50,改为 min(设置值, 目标数),目标数 ≤20 时上限 10。
    之前对 5 个节点开 50 并发,同一节点读数会在 56ms 与 178ms 之间跳
  • 「全部测速」只测真实节点:策略组(手动/稳定/漏网等)和 REJECT/PASS 不再参与,
    它们没有自己的地址,测了必然超时。DIRECT 保留(有真实路径可量)
  • 组的延迟直接沿用其 now 指向的节点,不再单独发请求

实测(5 节点 + DIRECT):修复前伦敦 3/3 失败、ARM 读数虚低到 56ms;
修复后 6 轮全部成功,波动收敛到 ±16ms。

测速结果跨面板统一

新增全局 DelayCache,主面板与迷你面板共用同一份结果:

  • 在迷你面板测的速,主面板立刻同步,反之亦然
  • 组的延迟沿 now 链递归继承(「稳定」→「手动」→ 具体节点),
    嵌套组成员也会显示数字而不是「—」

之前两个面板各自持有独立实例,测速结果互不可见,这是「迷你面板有数字、
主面板显示 —」的根因。

订阅

新增「经代理拉取订阅」开关

设置 → 订阅与下载 → 经代理拉取订阅,默认开启。

  • 开启:经代理拉取(内核运行时用混合端口,否则沿用系统代理)
  • 关闭:完全直连,连系统代理也不借用

适用于订阅站被当前代理挡住、或代理本身连不上订阅站的情况。
切换后立即生效,不需要重启(内部会重建 HttpClient,因为代理对象在构造时绑定)。

迷你面板

新增「迷你面板自动收起」

设置 → 启动 → 迷你面板自动收起。

可选:不自动收起(默认)/ 5 / 10 / 15 / 30 / 60 秒。

行为是「鼠标离开后计时」:

  • 鼠标停在面板上不计时
  • 移出面板开始倒计时
  • 倒计时中移回来立即取消
  • 打开节点下拉框时不收起,选完重新计时

说明

  • 「只测 TCP 延迟」量的是到节点入口的握手耗时,不能替代默认的 URL 测速。
    节点入口握手很快、实际转发很慢的情况完全存在。
  • 部分节点(如某些 NLB 入口)对并发连接敏感,批量测速时可能偶发超时,
    点它单独重测即可。这是节点侧限制,不是客户端问题。

产物下载

点击文件名即可下载。

合并版(自包含,解压即用,无需预装运行时)

文件 类型 大小 说明
Momomi-0.8.12-x64-setup.exe x64 安装包 45.8 MB 推荐。一键安装,可选开机自启与桌面快捷方式
Momomi-0.8.12-x64-portable.zip x64 便携版 67.2 MB 解压即用,无需安装
Momomi-0.8.12-x64-full-setup.exe x64 完整版 安装包 70.4 MB 内置内核 + 地理数据库,开箱即用
Momomi-0.8.12-x64-full.zip x64 完整版 便携包 107.1 MB 内置内核 + 地理数据库,解压即用
Momomi-0.8.12-arm64-portable.zip ARM64 便携版 65.9 MB ARM64 设备(如骁龙本)
Momomi-0.8.12-arm64-full.zip ARM64 完整版 便携包 103.7 MB ARM64 设备,内置内核 + 地理数据库

MSIX(x64)

文件 类型 大小 说明
Momomi-0.8.12.0-x64.msix x64 MSIX 包 66.4 MB MSIX 打包形态,功能与安装版一致;安装前需先信任证书
momomi-signing.cer 签名证书(公钥) 0.0 MB 自签名证书,安装 MSIX 前需导入「受信任人」存储

安装前先信任证书(会弹一次 UAC),再安装:

certutil -addstore -f TrustedPeople momomi-signing.cer
Add-AppxPackage .\Momomi-0.8.12.0-x64.msix

MSIX 版数据目录固定为 %LOCALAPPDATA%\Momomi,不支持应用内覆盖式自更新,升级请安装新的 MSIX 包。

分离版(框架依赖,体积最小,需预装运行时)

分离版仅提供 x64,须先安装运行环境方可运行,安装包在运行环境缺失时会给出下载提示。

文件 类型 大小 说明
Momomi-0.8.12-x64-sep-setup.exe x64 安装包 10.4 MB 一键安装;安装时检测运行环境并提示
Momomi-0.8.12-x64-sep.zip x64 便携版 13.9 MB 解压即用,需自备运行环境
Momomi-0.8.12-x64-full-sep-setup.exe x64 完整版 安装包 35.0 MB 内置内核 + 地理数据库,需自备运行环境
Momomi-0.8.12-x64-full-sep.zip x64 完整版 便携包 53.8 MB 内置内核 + 地理数据库,需自备运行环境

运行环境要求

须预先安装下列两个运行时,均为 x64 架构,缺一不可:

运行时 所需版本 下载地址
Windows App Runtime 2.4 或更高(2.x) WindowsAppRuntimeInstall-x64.exe
.NET 运行时 10.0 .NET 10 下载
  • 本应用基于 Windows App SDK 2.4 构建,Windows App Runtime 需 2.4 或更高的 2.x 版本,推荐直接安装上表的 2.4。
  • .NET 请选择 「.NET 运行时」(组件名 Microsoft.NETCore.App),而非「.NET 桌面运行时」或「ASP.NET Core 运行时」,版本 10.0.x。
  • 安装完成后可执行下列命令核对,两条均应有输出:
dotnet --list-runtimes | Select-String 'Microsoft.NETCore.App 10\.'
Get-AppxPackage Microsoft.WindowsAppRuntime.2 | Select-Object Name, Version

若运行环境已按上表装齐仍无法启动,建议改用合并版(自带全部运行时,无需预装)。

版本选择建议

使用场景 推荐版本
一般用户 合并版 x64 安装包(自带运行时,安装即用)
追求最小体积,且已装 .NET 10 与 Windows App Runtime 2.4 分离版(较合并版小约 100 MB)
网络可正常访问 GitHub 精简版(内核按需下载,体积更小)
访问 GitHub 不便 / 需开箱即用 完整版(内置 mihomo 内核与全部地理数据库)
ARM64 设备(如骁龙本) 合并版 ARM64 便携包

注意事项

  • 管理员权限:主程序以管理员身份运行以支持 TUN。UAC 为默认级别时,每次启动会弹出一次授权提示。
  • 分离版运行环境:须预先安装 Windows App Runtime 2.4(x64)与 .NET 运行时 10.0(x64),安装器会检测并在缺失时给出下载地址,详见上方「分离版」章节。
  • 端口 7890 冲突:若同时运行 clash-party 等占用 7890 端口的程序,Momomi 的混合端口将绑定失败,请在设置中改用其他端口(如 7897)。
  • 代码签名:安装包未做代码签名,Windows SmartScreen 可能提示「未知发布者」,选择「仍要运行」即可。

v0.8.11

Choose a tag to compare

@github-actions github-actions released this 23 Oct 13:21

更新机制重做

这一版把「检查更新」从一段写死的启动轮询,重做成一个带策略的调度器,
并补齐了缺失的几个关键选项。参考的是 BetterScene 的实现。

新增 UpdateCoordinator

把「什么时候查、查到后做什么」从 App.xaml.cs 的轮询循环里抽出来,集中管理:

  • 启动时检查一次(可关),之后按设定间隔复查
  • 记录上次检查时间,避免重启后立刻又打一次 GitHub API
  • 支持「跳过此版本」:跳过后后台检查不再提示该版本,手动检查仍会显示
  • 支持「自动下载并安装」:查到新版本直接更新并重启,不再询问
  • 支持「不显示通知」:只更新顶栏胶囊,不弹托盘气泡

原来的实现只支持「开关自动检查」,间隔写死 6 小时,也没有跳过版本与自动安装。

顶栏胶囊

  • 点击后的对话框现在会显示这一版的更新说明(自动截断到约 600 字,
    去掉产物下载表格那类与「要不要更新」无关的内容)
  • 新增「跳过此版本」按钮,跳过即收起胶囊
  • 自动安装失败时胶囊会恢复成可点击状态,不再永远卡在「正在更新到 vX」

托盘通知

发现新版本、自动安装开始时各弹一条气泡;开着专注助手时不打扰
(respectQuietTime)。「仅迷你面板」模式下没有主窗口可弹,状态会保留下来,
等主窗口打开时补显示。

设置页「版本与更新」新增

选项 说明
启动时检查 程序启动后立即查一次
自动下载并安装 查到就更新,不再询问
不显示通知 只更新胶囊,不弹气泡
检查频率 1 / 3 / 6 / 12 / 24 / 72 小时
跳过此版本 显示当前跳过的版本,可「跳过」或「恢复提示」

说明

  • 更新说明来自 GitHub Release 的 body,国内网络下如果取不到说明,
    对话框会退化为只显示版本号,不影响更新本身。
  • 「跳过此版本」记录在本地设置里,换版本号后会重新提示。
  • 自动下载并安装默认关闭;开启后更新期间代理会短暂中断。

产物下载

点击文件名即可下载。

合并版(自包含,解压即用,无需预装运行时)

文件 类型 大小 说明
Momomi-0.8.11-x64-setup.exe x64 安装包 45.8 MB 推荐。一键安装,可选开机自启与桌面快捷方式
Momomi-0.8.11-x64-portable.zip x64 便携版 67.2 MB 解压即用,无需安装
Momomi-0.8.11-x64-full-setup.exe x64 完整版 安装包 70.4 MB 内置内核 + 地理数据库,开箱即用
Momomi-0.8.11-x64-full.zip x64 完整版 便携包 107.1 MB 内置内核 + 地理数据库,解压即用
Momomi-0.8.11-arm64-portable.zip ARM64 便携版 65.9 MB ARM64 设备(如骁龙本)
Momomi-0.8.11-arm64-full.zip ARM64 完整版 便携包 103.6 MB ARM64 设备,内置内核 + 地理数据库

MSIX(x64)

文件 类型 大小 说明
Momomi-0.8.11.0-x64.msix x64 MSIX 包 66.4 MB MSIX 打包形态,功能与安装版一致;安装前需先信任证书
momomi-signing.cer 签名证书(公钥) 0.0 MB 自签名证书,安装 MSIX 前需导入「受信任人」存储

安装前先信任证书(会弹一次 UAC),再安装:

certutil -addstore -f TrustedPeople momomi-signing.cer
Add-AppxPackage .\Momomi-0.8.11.0-x64.msix

MSIX 版数据目录固定为 %LOCALAPPDATA%\Momomi,不支持应用内覆盖式自更新,升级请安装新的 MSIX 包。

分离版(框架依赖,体积最小,需预装运行时)

分离版仅提供 x64,须先安装运行环境方可运行,安装包在运行环境缺失时会给出下载提示。

文件 类型 大小 说明
Momomi-0.8.11-x64-sep-setup.exe x64 安装包 10.4 MB 一键安装;安装时检测运行环境并提示
Momomi-0.8.11-x64-sep.zip x64 便携版 13.9 MB 解压即用,需自备运行环境
Momomi-0.8.11-x64-full-sep-setup.exe x64 完整版 安装包 35.0 MB 内置内核 + 地理数据库,需自备运行环境
Momomi-0.8.11-x64-full-sep.zip x64 完整版 便携包 53.8 MB 内置内核 + 地理数据库,需自备运行环境

运行环境要求

须预先安装下列两个运行时,均为 x64 架构,缺一不可:

运行时 所需版本 下载地址
Windows App Runtime 2.4 或更高(2.x) WindowsAppRuntimeInstall-x64.exe
.NET 运行时 10.0 .NET 10 下载
  • 本应用基于 Windows App SDK 2.4 构建,Windows App Runtime 需 2.4 或更高的 2.x 版本,推荐直接安装上表的 2.4。
  • .NET 请选择 「.NET 运行时」(组件名 Microsoft.NETCore.App),而非「.NET 桌面运行时」或「ASP.NET Core 运行时」,版本 10.0.x。
  • 安装完成后可执行下列命令核对,两条均应有输出:
dotnet --list-runtimes | Select-String 'Microsoft.NETCore.App 10\.'
Get-AppxPackage Microsoft.WindowsAppRuntime.2 | Select-Object Name, Version

若运行环境已按上表装齐仍无法启动,建议改用合并版(自带全部运行时,无需预装)。

版本选择建议

使用场景 推荐版本
一般用户 合并版 x64 安装包(自带运行时,安装即用)
追求最小体积,且已装 .NET 10 与 Windows App Runtime 2.4 分离版(较合并版小约 100 MB)
网络可正常访问 GitHub 精简版(内核按需下载,体积更小)
访问 GitHub 不便 / 需开箱即用 完整版(内置 mihomo 内核与全部地理数据库)
ARM64 设备(如骁龙本) 合并版 ARM64 便携包

注意事项

  • 管理员权限:主程序以管理员身份运行以支持 TUN。UAC 为默认级别时,每次启动会弹出一次授权提示。
  • 分离版运行环境:须预先安装 Windows App Runtime 2.4(x64)与 .NET 运行时 10.0(x64),安装器会检测并在缺失时给出下载地址,详见上方「分离版」章节。
  • 端口 7890 冲突:若同时运行 clash-party 等占用 7890 端口的程序,Momomi 的混合端口将绑定失败,请在设置中改用其他端口(如 7897)。
  • 代码签名:安装包未做代码签名,Windows SmartScreen 可能提示「未知发布者」,选择「仍要运行」即可。

v0.8.10

Choose a tag to compare

@github-actions github-actions released this 23 Oct 09:55

优化

测速明显变快

原来的做法是每个节点固定测 3 次取最小值,并发只有 8。100 个节点的组最坏要排队十几轮,
每轮都可能等满 3 秒超时,用户得盯着转圈十几秒。

  • 每个节点只发一次请求,把省下的时间换成并发(默认 8 → 50,上限 128)。
    单点重测随时可以点,不影响「先快速扫一眼谁快」的主流程。
  • 只在「快速失败」时补测一次(耗时 < 500 ms)。瞬时连接失败——比如内核刚重载完
    连接被拒——仍能自动纠正,而真正挂掉的节点不会白等第二轮超时。
  • 给内核调用加了墙钟上限(超时 + 1 秒)。内核异常时不返回,不会一直占着并发名额
    把整批卡死。
  • 内核配置固定写 unified-delay: true:测速时扣掉 TCP/TLS 握手耗时,报出的数字
    更接近实际使用体验,也不再比其他客户端大一截。

实测(7 个节点,含 1 个超时节点):整批 3.09 秒完成,几乎全部耗时都来自那个
注定超时的节点。改造前同样的节点要 12 秒以上。

测速结果分批出现,界面不再卡顿

原来每个节点的结果都单独跨线程推一次 UI 更新,节点多时界面被这些更新拖住,
看起来比实际更慢。现在每 200 ms 合并一批写入,数字会陆续出现;
排序统一留到整批测完再做,列表不会每 200 ms 重排一次把节点甩来甩去。

后台常驻内存大幅下降

托盘常驻时工作集经常挂在一两百兆,但真正在用的只有几兆——差额几乎全是
WinUI / D3D 的原生内存:交换链后备缓冲、着色器缓存、字形与纹理。这些页
即使窗口已经隐藏也一直留在进程里,GC 完全碰不到。

  • 新增 WorkingSetTrimmer,在窗口隐藏、迷你面板收起后把工作集交还系统,
    再打开只多几次缺页,首帧无感。
  • 带活跃来源跟踪:主窗口、迷你面板各自独立登记,任一窗口在渲染时不会触发回收;
    窗口开着但静止超过 1 分钟同样允许回收。
  • 回收有 20 秒最小间隔,连续快速开合不会反复丢弃刚读回来的页。

实测记录(data/app.log):多次从 50–277 MB 回收到 1–6 MB。

说明

  • 测速默认并发从 8 提到 50。如果你的网络对大并发敏感(例如路由器连接数吃紧),
    可在「设置 → 延迟测试 → 并发数」调低。
  • 单次测量取代了「3 次取最小」,数字可能比之前略大几十毫秒。这属于正常的
    单次采样差异,不代表节点变差;点单个节点可立即重测。
  • 工作集回收发生在窗口隐藏之后约 1.2 秒,任务管理器里看到的内存下降会稍有延迟。

产物下载

点击文件名即可下载。

合并版(自包含,解压即用,无需预装运行时)

文件 类型 大小 说明
Momomi-0.8.10-x64-setup.exe x64 安装包 45.8 MB 推荐。一键安装,可选开机自启与桌面快捷方式
Momomi-0.8.10-x64-portable.zip x64 便携版 67.2 MB 解压即用,无需安装
Momomi-0.8.10-x64-full-setup.exe x64 完整版 安装包 70.4 MB 内置内核 + 地理数据库,开箱即用
Momomi-0.8.10-x64-full.zip x64 完整版 便携包 107.1 MB 内置内核 + 地理数据库,解压即用
Momomi-0.8.10-arm64-portable.zip ARM64 便携版 65.9 MB ARM64 设备(如骁龙本)
Momomi-0.8.10-arm64-full.zip ARM64 完整版 便携包 103.6 MB ARM64 设备,内置内核 + 地理数据库

MSIX(x64)

文件 类型 大小 说明
Momomi-0.8.10.0-x64.msix x64 MSIX 包 66.3 MB MSIX 打包形态,功能与安装版一致;安装前需先信任证书
momomi-signing.cer 签名证书(公钥) 0.0 MB 自签名证书,安装 MSIX 前需导入「受信任人」存储

安装前先信任证书(会弹一次 UAC),再安装:

certutil -addstore -f TrustedPeople momomi-signing.cer
Add-AppxPackage .\Momomi-0.8.10.0-x64.msix

MSIX 版数据目录固定为 %LOCALAPPDATA%\Momomi,不支持应用内覆盖式自更新,升级请安装新的 MSIX 包。

分离版(框架依赖,体积最小,需预装运行时)

分离版仅提供 x64,须先安装运行环境方可运行,安装包在运行环境缺失时会给出下载提示。

文件 类型 大小 说明
Momomi-0.8.10-x64-sep-setup.exe x64 安装包 10.4 MB 一键安装;安装时检测运行环境并提示
Momomi-0.8.10-x64-sep.zip x64 便携版 13.9 MB 解压即用,需自备运行环境
Momomi-0.8.10-x64-full-sep-setup.exe x64 完整版 安装包 35.0 MB 内置内核 + 地理数据库,需自备运行环境
Momomi-0.8.10-x64-full-sep.zip x64 完整版 便携包 53.8 MB 内置内核 + 地理数据库,需自备运行环境

运行环境要求

须预先安装下列两个运行时,均为 x64 架构,缺一不可:

运行时 所需版本 下载地址
Windows App Runtime 2.4 或更高(2.x) WindowsAppRuntimeInstall-x64.exe
.NET 运行时 10.0 .NET 10 下载
  • 本应用基于 Windows App SDK 2.4 构建,Windows App Runtime 需 2.4 或更高的 2.x 版本,推荐直接安装上表的 2.4。
  • .NET 请选择 「.NET 运行时」(组件名 Microsoft.NETCore.App),而非「.NET 桌面运行时」或「ASP.NET Core 运行时」,版本 10.0.x。
  • 安装完成后可执行下列命令核对,两条均应有输出:
dotnet --list-runtimes | Select-String 'Microsoft.NETCore.App 10\.'
Get-AppxPackage Microsoft.WindowsAppRuntime.2 | Select-Object Name, Version

若运行环境已按上表装齐仍无法启动,建议改用合并版(自带全部运行时,无需预装)。

版本选择建议

使用场景 推荐版本
一般用户 合并版 x64 安装包(自带运行时,安装即用)
追求最小体积,且已装 .NET 10 与 Windows App Runtime 2.4 分离版(较合并版小约 100 MB)
网络可正常访问 GitHub 精简版(内核按需下载,体积更小)
访问 GitHub 不便 / 需开箱即用 完整版(内置 mihomo 内核与全部地理数据库)
ARM64 设备(如骁龙本) 合并版 ARM64 便携包

注意事项

  • 管理员权限:主程序以管理员身份运行以支持 TUN。UAC 为默认级别时,每次启动会弹出一次授权提示。
  • 分离版运行环境:须预先安装 Windows App Runtime 2.4(x64)与 .NET 运行时 10.0(x64),安装器会检测并在缺失时给出下载地址,详见上方「分离版」章节。
  • 端口 7890 冲突:若同时运行 clash-party 等占用 7890 端口的程序,Momomi 的混合端口将绑定失败,请在设置中改用其他端口(如 7897)。
  • 代码签名:安装包未做代码签名,Windows SmartScreen 可能提示「未知发布者」,选择「仍要运行」即可。

v0.8.9

Choose a tag to compare

@github-actions github-actions released this 22 Oct 02:33

修复

  • 顶栏「可更新」胶囊的边框锯齿:胶囊此前把 Background 与 CornerRadius 直接设在 Button 上,而 Button 模板内部是 ContentPresenter 包一层 Border,背景与圆角落在不同 visual 上,圆角边缘就会出现接缝与毛刺(microsoft-ui-xaml#9454)。现在 Button 自身透明无边框、只作点击载体,圆角背景改由内部单个 Grid 承载,与项目里卡片容器的做法保持一致。
  • 胶囊文字颜色异常:下载过程中用了 IsEnabled = false 表示「进行中」,而 WinUI 的禁用态会由模板覆盖 Background 与文字前景色,胶囊因此变成灰底暗字,看起来像样式坏了。改为用代码里的进行中标志位拦截重复点击,不再动 IsEnabled。同时把前景色从 TextOnAccentFillColorPrimaryBrush 改为固定白色——该主题资源在部分主题组合下会解析成黑色,在 accent 底色上几乎不可读。
  • 胶囊被拉伸过宽:Button 在 StackPanel 中默认被拉伸,文字两侧出现大片留白。现在显式左对齐,宽度随内容收缩。
  • 下载进行中若再次触发更新检查广播,不再覆盖胶囊上的进度文案。

说明

这一版只调整顶栏胶囊的呈现与交互,不改变更新逻辑本身(启动后查一次、之后每 6 小时复查)。


产物下载

点击文件名即可下载。

合并版(自包含,解压即用,无需预装运行时)

文件 类型 大小 说明
Momomi-0.8.9-x64-setup.exe x64 安装包 45.8 MB 推荐。一键安装,可选开机自启与桌面快捷方式
Momomi-0.8.9-x64-portable.zip x64 便携版 67.2 MB 解压即用,无需安装
Momomi-0.8.9-x64-full-setup.exe x64 完整版 安装包 70.4 MB 内置内核 + 地理数据库,开箱即用
Momomi-0.8.9-x64-full.zip x64 完整版 便携包 107.1 MB 内置内核 + 地理数据库,解压即用
Momomi-0.8.9-arm64-portable.zip ARM64 便携版 65.9 MB ARM64 设备(如骁龙本)
Momomi-0.8.9-arm64-full.zip ARM64 完整版 便携包 103.6 MB ARM64 设备,内置内核 + 地理数据库

MSIX(x64)

文件 类型 大小 说明
Momomi-0.8.9.0-x64.msix x64 MSIX 包 66.3 MB MSIX 打包形态,功能与安装版一致;安装前需先信任证书
momomi-signing.cer 签名证书(公钥) 0.0 MB 自签名证书,安装 MSIX 前需导入「受信任人」存储

安装前先信任证书(会弹一次 UAC),再安装:

certutil -addstore -f TrustedPeople momomi-signing.cer
Add-AppxPackage .\Momomi-0.8.9.0-x64.msix

MSIX 版数据目录固定为 %LOCALAPPDATA%\Momomi,不支持应用内覆盖式自更新,升级请安装新的 MSIX 包。

分离版(框架依赖,体积最小,需预装运行时)

分离版仅提供 x64,须先安装运行环境方可运行,安装包在运行环境缺失时会给出下载提示。

文件 类型 大小 说明
Momomi-0.8.9-x64-sep-setup.exe x64 安装包 10.4 MB 一键安装;安装时检测运行环境并提示
Momomi-0.8.9-x64-sep.zip x64 便携版 13.9 MB 解压即用,需自备运行环境
Momomi-0.8.9-x64-full-sep-setup.exe x64 完整版 安装包 35.0 MB 内置内核 + 地理数据库,需自备运行环境
Momomi-0.8.9-x64-full-sep.zip x64 完整版 便携包 53.7 MB 内置内核 + 地理数据库,需自备运行环境

运行环境要求

须预先安装下列两个运行时,均为 x64 架构,缺一不可:

运行时 所需版本 下载地址
Windows App Runtime 2.4 或更高(2.x) WindowsAppRuntimeInstall-x64.exe
.NET 运行时 10.0 .NET 10 下载
  • 本应用基于 Windows App SDK 2.4 构建,Windows App Runtime 需 2.4 或更高的 2.x 版本,推荐直接安装上表的 2.4。
  • .NET 请选择 「.NET 运行时」(组件名 Microsoft.NETCore.App),而非「.NET 桌面运行时」或「ASP.NET Core 运行时」,版本 10.0.x。
  • 安装完成后可执行下列命令核对,两条均应有输出:
dotnet --list-runtimes | Select-String 'Microsoft.NETCore.App 10\.'
Get-AppxPackage Microsoft.WindowsAppRuntime.2 | Select-Object Name, Version

若运行环境已按上表装齐仍无法启动,建议改用合并版(自带全部运行时,无需预装)。

版本选择建议

使用场景 推荐版本
一般用户 合并版 x64 安装包(自带运行时,安装即用)
追求最小体积,且已装 .NET 10 与 Windows App Runtime 2.4 分离版(较合并版小约 100 MB)
网络可正常访问 GitHub 精简版(内核按需下载,体积更小)
访问 GitHub 不便 / 需开箱即用 完整版(内置 mihomo 内核与全部地理数据库)
ARM64 设备(如骁龙本) 合并版 ARM64 便携包

注意事项

  • 管理员权限:主程序以管理员身份运行以支持 TUN。UAC 为默认级别时,每次启动会弹出一次授权提示。
  • 分离版运行环境:须预先安装 Windows App Runtime 2.4(x64)与 .NET 运行时 10.0(x64),安装器会检测并在缺失时给出下载地址,详见上方「分离版」章节。
  • 端口 7890 冲突:若同时运行 clash-party 等占用 7890 端口的程序,Momomi 的混合端口将绑定失败,请在设置中改用其他端口(如 7897)。
  • 代码签名:安装包未做代码签名,Windows SmartScreen 可能提示「未知发布者」,选择「仍要运行」即可。

v0.8.8

Choose a tag to compare

@github-actions github-actions released this 22 Oct 02:03

fix: v0.8.8 修复编辑器保存后不关闭、订阅 YAML 里的 emoji 不显示

保存不退出编辑框

  • ProfilesViewModel.SaveEditorAsync 保存成功后只改了 StatusText,
    而 StatusText 显示在页面副标题上、被编辑弹窗整个盖住,
    用户看到的就是「点了保存毫无反应」
  • 现在:保存成功收起编辑器;保存失败/异常在弹窗内用 InfoBar 显示原因
    (原来的失败提示同样被弹窗遮住)
  • 覆写页的编辑器有同样的毛病(保存后不关闭),一并修复

emoji 不显示

  • 订阅文件里的 emoji 多为 "\U0001F1EC\U0001F1E7 伦敦" 形式
    (YAML 序列化产物),「原始配置」标签页直接原样显示成一串反斜杠
  • 显示层新增反转义(复用 YamlOverrideMerger.UnescapeUnicodeInDoubleQuoted,
    改为 public);「运行时配置」预览本来就会反转义,行为保持一致
  • 新增对称的 EscapeUnicodeInDoubleQuoted,保存时把 emoji 转回 \U 形式,
    避免「打开一次再保存」把整份订阅的转义全部改写、diff 一片红
  • 已用本机三个真实订阅验证:显示层出现真 emoji,回写后与原文件
    逐字节一致(8509 / 9394 / 7043 字节均未变化)

产物下载

点击文件名即可下载。

合并版(自包含,解压即用,无需预装运行时)

文件 类型 大小 说明
Momomi-0.8.8-x64-setup.exe x64 安装包 45.8 MB 推荐。一键安装,可选开机自启与桌面快捷方式
Momomi-0.8.8-x64-portable.zip x64 便携版 67.2 MB 解压即用,无需安装
Momomi-0.8.8-x64-full-setup.exe x64 完整版 安装包 70.4 MB 内置内核 + 地理数据库,开箱即用
Momomi-0.8.8-x64-full.zip x64 完整版 便携包 107.1 MB 内置内核 + 地理数据库,解压即用
Momomi-0.8.8-arm64-portable.zip ARM64 便携版 65.9 MB ARM64 设备(如骁龙本)
Momomi-0.8.8-arm64-full.zip ARM64 完整版 便携包 103.6 MB ARM64 设备,内置内核 + 地理数据库

MSIX(x64)

文件 类型 大小 说明
Momomi-0.8.8.0-x64.msix x64 MSIX 包 66.3 MB MSIX 打包形态,功能与安装版一致;安装前需先信任证书
momomi-signing.cer 签名证书(公钥) 0.0 MB 自签名证书,安装 MSIX 前需导入「受信任人」存储

安装前先信任证书(会弹一次 UAC),再安装:

certutil -addstore -f TrustedPeople momomi-signing.cer
Add-AppxPackage .\Momomi-0.8.8.0-x64.msix

MSIX 版数据目录固定为 %LOCALAPPDATA%\Momomi,不支持应用内覆盖式自更新,升级请安装新的 MSIX 包。

分离版(框架依赖,体积最小,需预装运行时)

分离版仅提供 x64,须先安装运行环境方可运行,安装包在运行环境缺失时会给出下载提示。

文件 类型 大小 说明
Momomi-0.8.8-x64-sep-setup.exe x64 安装包 10.4 MB 一键安装;安装时检测运行环境并提示
Momomi-0.8.8-x64-sep.zip x64 便携版 13.9 MB 解压即用,需自备运行环境
Momomi-0.8.8-x64-full-sep-setup.exe x64 完整版 安装包 35.0 MB 内置内核 + 地理数据库,需自备运行环境
Momomi-0.8.8-x64-full-sep.zip x64 完整版 便携包 53.7 MB 内置内核 + 地理数据库,需自备运行环境

运行环境要求

须预先安装下列两个运行时,均为 x64 架构,缺一不可:

运行时 所需版本 下载地址
Windows App Runtime 2.4 或更高(2.x) WindowsAppRuntimeInstall-x64.exe
.NET 运行时 10.0 .NET 10 下载
  • 本应用基于 Windows App SDK 2.4 构建,Windows App Runtime 需 2.4 或更高的 2.x 版本,推荐直接安装上表的 2.4。
  • .NET 请选择 「.NET 运行时」(组件名 Microsoft.NETCore.App),而非「.NET 桌面运行时」或「ASP.NET Core 运行时」,版本 10.0.x。
  • 安装完成后可执行下列命令核对,两条均应有输出:
dotnet --list-runtimes | Select-String 'Microsoft.NETCore.App 10\.'
Get-AppxPackage Microsoft.WindowsAppRuntime.2 | Select-Object Name, Version

若运行环境已按上表装齐仍无法启动,建议改用合并版(自带全部运行时,无需预装)。

版本选择建议

使用场景 推荐版本
一般用户 合并版 x64 安装包(自带运行时,安装即用)
追求最小体积,且已装 .NET 10 与 Windows App Runtime 2.4 分离版(较合并版小约 100 MB)
网络可正常访问 GitHub 精简版(内核按需下载,体积更小)
访问 GitHub 不便 / 需开箱即用 完整版(内置 mihomo 内核与全部地理数据库)
ARM64 设备(如骁龙本) 合并版 ARM64 便携包

注意事项

  • 管理员权限:主程序以管理员身份运行以支持 TUN。UAC 为默认级别时,每次启动会弹出一次授权提示。
  • 分离版运行环境:须预先安装 Windows App Runtime 2.4(x64)与 .NET 运行时 10.0(x64),安装器会检测并在缺失时给出下载地址,详见上方「分离版」章节。
  • 端口 7890 冲突:若同时运行 clash-party 等占用 7890 端口的程序,Momomi 的混合端口将绑定失败,请在设置中改用其他端口(如 7897)。
  • 代码签名:安装包未做代码签名,Windows SmartScreen 可能提示「未知发布者」,选择「仍要运行」即可。

v0.8.7

Choose a tag to compare

@github-actions github-actions released this 22 Oct 01:21

更新检查机制

之前

只在启动后 8 秒检查一次,而且结果只有设置页能读到:

  • 没有定时轮询:MomomiHost 那个每小时定时器跑的是订阅刷新,与应用更新无关;
  • 一直开着不关的用户,除非手动进设置页点「检查更新」,否则永远不知道有新版本;
  • 检查失败只写进 LastResult.Error,连日志都没有;
  • 一键更新只有设置页一个入口。

现在

启动后查一次,之后每 6 小时复查一次:

启动 → 延迟 8 秒(避开启动流量)
  → 检查
  → 等待 6 小时(可通过 ui.checkAppUpdateIntervalHours 调整,1–168)
  → 复查(每次复查前重读开关,关掉即停止)

GitHub API 未鉴权限额是 60 次/小时,每 6 小时一次完全在范围内。

顶栏「可更新」胶囊

版本号右边新增一个胶囊按钮,仅在有新版本时出现:

[🐱 Momomi] [v0.8.7] [● v0.8.8 可更新]        ← 点击弹确认框
  • 点击弹「发现新版本」确认框(显示当前版本、最新版本、以及"代理会短暂中断"的提示),
    确认后下载并在胶囊上显示进度百分比,完成后自动重启并拉起内核;
  • 选择「稍后」则关闭对话框,胶囊保留,下次复查仍会提示;
  • 顶栏整体是拖拽区,胶囊用 TitleBar.IsDragRegion="False" 排除,可以正常点击;
  • MSIX 形态不显示(该形态不支持应用内自更新,需装新包);
  • 设置页手动「检查更新」的结果也会同步到胶囊,两处不会不一致;
  • 在设置里关掉「自动检查更新」时,胶囊立即清除,避免挂着一个不再复查的旧结果。

注意

  • 便携版、安装版都支持一键更新(安装版走静默安装器,便携版走 robocopy 覆盖并排除 data\)。
  • 更新期间会先停内核、系统代理与 TUN,重启后按「系统代理意图」自动恢复(0.8.6 起)。
  • 若上次检查到更新后一直没升,胶囊会一直保留;升级完成后自然消失。

产物下载

点击文件名即可下载。

合并版(自包含,解压即用,无需预装运行时)

文件 类型 大小 说明
Momomi-0.8.7-x64-setup.exe x64 安装包 45.8 MB 推荐。一键安装,可选开机自启与桌面快捷方式
Momomi-0.8.7-x64-portable.zip x64 便携版 67.2 MB 解压即用,无需安装
Momomi-0.8.7-x64-full-setup.exe x64 完整版 安装包 70.4 MB 内置内核 + 地理数据库,开箱即用
Momomi-0.8.7-x64-full.zip x64 完整版 便携包 107.1 MB 内置内核 + 地理数据库,解压即用
Momomi-0.8.7-arm64-portable.zip ARM64 便携版 65.9 MB ARM64 设备(如骁龙本)
Momomi-0.8.7-arm64-full.zip ARM64 完整版 便携包 103.6 MB ARM64 设备,内置内核 + 地理数据库

MSIX(x64)

文件 类型 大小 说明
Momomi-0.8.7.0-x64.msix x64 MSIX 包 66.3 MB MSIX 打包形态,功能与安装版一致;安装前需先信任证书
momomi-signing.cer 签名证书(公钥) 0.0 MB 自签名证书,安装 MSIX 前需导入「受信任人」存储

安装前先信任证书(会弹一次 UAC),再安装:

certutil -addstore -f TrustedPeople momomi-signing.cer
Add-AppxPackage .\Momomi-0.8.7.0-x64.msix

MSIX 版数据目录固定为 %LOCALAPPDATA%\Momomi,不支持应用内覆盖式自更新,升级请安装新的 MSIX 包。

分离版(框架依赖,体积最小,需预装运行时)

分离版仅提供 x64,须先安装运行环境方可运行,安装包在运行环境缺失时会给出下载提示。

文件 类型 大小 说明
Momomi-0.8.7-x64-sep-setup.exe x64 安装包 10.4 MB 一键安装;安装时检测运行环境并提示
Momomi-0.8.7-x64-sep.zip x64 便携版 13.9 MB 解压即用,需自备运行环境
Momomi-0.8.7-x64-full-sep-setup.exe x64 完整版 安装包 35.0 MB 内置内核 + 地理数据库,需自备运行环境
Momomi-0.8.7-x64-full-sep.zip x64 完整版 便携包 53.7 MB 内置内核 + 地理数据库,需自备运行环境

运行环境要求

须预先安装下列两个运行时,均为 x64 架构,缺一不可:

运行时 所需版本 下载地址
Windows App Runtime 2.4 或更高(2.x) WindowsAppRuntimeInstall-x64.exe
.NET 运行时 10.0 .NET 10 下载
  • 本应用基于 Windows App SDK 2.4 构建,Windows App Runtime 需 2.4 或更高的 2.x 版本,推荐直接安装上表的 2.4。
  • .NET 请选择 「.NET 运行时」(组件名 Microsoft.NETCore.App),而非「.NET 桌面运行时」或「ASP.NET Core 运行时」,版本 10.0.x。
  • 安装完成后可执行下列命令核对,两条均应有输出:
dotnet --list-runtimes | Select-String 'Microsoft.NETCore.App 10\.'
Get-AppxPackage Microsoft.WindowsAppRuntime.2 | Select-Object Name, Version

若运行环境已按上表装齐仍无法启动,建议改用合并版(自带全部运行时,无需预装)。

版本选择建议

使用场景 推荐版本
一般用户 合并版 x64 安装包(自带运行时,安装即用)
追求最小体积,且已装 .NET 10 与 Windows App Runtime 2.4 分离版(较合并版小约 100 MB)
网络可正常访问 GitHub 精简版(内核按需下载,体积更小)
访问 GitHub 不便 / 需开箱即用 完整版(内置 mihomo 内核与全部地理数据库)
ARM64 设备(如骁龙本) 合并版 ARM64 便携包

注意事项

  • 管理员权限:主程序以管理员身份运行以支持 TUN。UAC 为默认级别时,每次启动会弹出一次授权提示。
  • 分离版运行环境:须预先安装 Windows App Runtime 2.4(x64)与 .NET 运行时 10.0(x64),安装器会检测并在缺失时给出下载地址,详见上方「分离版」章节。
  • 端口 7890 冲突:若同时运行 clash-party 等占用 7890 端口的程序,Momomi 的混合端口将绑定失败,请在设置中改用其他端口(如 7897)。
  • 代码签名:安装包未做代码签名,Windows SmartScreen 可能提示「未知发布者」,选择「仍要运行」即可。

v0.8.6

Choose a tag to compare

@github-actions github-actions released this 21 Oct 18:54

feat: v0.8.6 系统代理状态跨启动保留

TUN 一直能保留(core.tun 落库),但系统代理只有「同一进程内重启内核」会恢复,
跨进程一律丢失:退出时无条件关掉代理,重启/升级后要手动再开一次;
崩溃后注册表还会残留指向已死端口的代理,等于整机断网。

  • 新增 ui.systemProxyDesired 记录用户意图(与 core.tun 对称),
    所有开/关入口(ModeSelector、设置页、内核重启恢复)都写入
  • 启动内核【之前】处理:首次升级时按注册表现状补记意图,然后清掉
    「指向自己端口但内核未运行」的残留代理(这种状态只会断网)
  • 内核就绪【之后】按意图恢复:manual 写回 127.0.0.1:port,PAC 启动本地服务器
  • 关闭时只动「指向自己端口」的代理,绝不误关公司代理/其它客户端;
    新增 IsOwnProxy/ClearOwnProxy,兼容 127.0.0.1、localhost、IPv6 回环、
    http:// 前缀与 http=...;https=... 分协议写法
  • SSID 暂停只临时关代理,不改意图,离开该网络后仍会恢复
  • 顺带修复 SsidService 恢复时用错端口的问题(原用 DownloadProxy 端口,
    可能指向另一个客户端);改用 core.mixedPort

产物下载

点击文件名即可下载。

合并版(自包含,解压即用,无需预装运行时)

文件 类型 大小 说明
Momomi-0.8.6-x64-setup.exe x64 安装包 45.8 MB 推荐。一键安装,可选开机自启与桌面快捷方式
Momomi-0.8.6-x64-portable.zip x64 便携版 67.2 MB 解压即用,无需安装
Momomi-0.8.6-x64-full-setup.exe x64 完整版 安装包 70.4 MB 内置内核 + 地理数据库,开箱即用
Momomi-0.8.6-x64-full.zip x64 完整版 便携包 107.1 MB 内置内核 + 地理数据库,解压即用
Momomi-0.8.6-arm64-portable.zip ARM64 便携版 65.9 MB ARM64 设备(如骁龙本)
Momomi-0.8.6-arm64-full.zip ARM64 完整版 便携包 103.6 MB ARM64 设备,内置内核 + 地理数据库

MSIX(x64)

文件 类型 大小 说明
Momomi-0.8.6.0-x64.msix x64 MSIX 包 66.3 MB MSIX 打包形态,功能与安装版一致;安装前需先信任证书
momomi-signing.cer 签名证书(公钥) 0.0 MB 自签名证书,安装 MSIX 前需导入「受信任人」存储

安装前先信任证书(会弹一次 UAC),再安装:

certutil -addstore -f TrustedPeople momomi-signing.cer
Add-AppxPackage .\Momomi-0.8.6.0-x64.msix

MSIX 版数据目录固定为 %LOCALAPPDATA%\Momomi,不支持应用内覆盖式自更新,升级请安装新的 MSIX 包。

分离版(框架依赖,体积最小,需预装运行时)

分离版仅提供 x64,须先安装运行环境方可运行,安装包在运行环境缺失时会给出下载提示。

文件 类型 大小 说明
Momomi-0.8.6-x64-sep-setup.exe x64 安装包 10.4 MB 一键安装;安装时检测运行环境并提示
Momomi-0.8.6-x64-sep.zip x64 便携版 13.9 MB 解压即用,需自备运行环境
Momomi-0.8.6-x64-full-sep-setup.exe x64 完整版 安装包 35.0 MB 内置内核 + 地理数据库,需自备运行环境
Momomi-0.8.6-x64-full-sep.zip x64 完整版 便携包 53.7 MB 内置内核 + 地理数据库,需自备运行环境

运行环境要求

须预先安装下列两个运行时,均为 x64 架构,缺一不可:

运行时 所需版本 下载地址
Windows App Runtime 2.4 或更高(2.x) WindowsAppRuntimeInstall-x64.exe
.NET 运行时 10.0 .NET 10 下载
  • 本应用基于 Windows App SDK 2.4 构建,Windows App Runtime 需 2.4 或更高的 2.x 版本,推荐直接安装上表的 2.4。
  • .NET 请选择 「.NET 运行时」(组件名 Microsoft.NETCore.App),而非「.NET 桌面运行时」或「ASP.NET Core 运行时」,版本 10.0.x。
  • 安装完成后可执行下列命令核对,两条均应有输出:
dotnet --list-runtimes | Select-String 'Microsoft.NETCore.App 10\.'
Get-AppxPackage Microsoft.WindowsAppRuntime.2 | Select-Object Name, Version

若运行环境已按上表装齐仍无法启动,建议改用合并版(自带全部运行时,无需预装)。

版本选择建议

使用场景 推荐版本
一般用户 合并版 x64 安装包(自带运行时,安装即用)
追求最小体积,且已装 .NET 10 与 Windows App Runtime 2.4 分离版(较合并版小约 100 MB)
网络可正常访问 GitHub 精简版(内核按需下载,体积更小)
访问 GitHub 不便 / 需开箱即用 完整版(内置 mihomo 内核与全部地理数据库)
ARM64 设备(如骁龙本) 合并版 ARM64 便携包

注意事项

  • 管理员权限:主程序以管理员身份运行以支持 TUN。UAC 为默认级别时,每次启动会弹出一次授权提示。
  • 分离版运行环境:须预先安装 Windows App Runtime 2.4(x64)与 .NET 运行时 10.0(x64),安装器会检测并在缺失时给出下载地址,详见上方「分离版」章节。
  • 端口 7890 冲突:若同时运行 clash-party 等占用 7890 端口的程序,Momomi 的混合端口将绑定失败,请在设置中改用其他端口(如 7897)。
  • 代码签名:安装包未做代码签名,Windows SmartScreen 可能提示「未知发布者」,选择「仍要运行」即可。

v0.8.5

Choose a tag to compare

@github-actions github-actions released this 21 Oct 18:27

fix: v0.8.5 修复设置背景材质时的硬崩溃

本机 10-19(0.8.0)与 10-22(0.8.2)两次崩溃的 WER 报告完全一致:
combase.dll、异常码 0xc000027b(stowed exception)、偏移 0x5cf34。事件日志
里显示的 CoreMessagingXP.dll 只是宿主,真正的失败点是给 Window.SystemBackdrop
赋值——框架内部会去订阅 Content.ActualThemeChanged,而 Content 还没就绪时
(构造函数里、Activate 之前)会 E_INVALIDARG 并直接 RoFailFast,托管侧的
UnhandledException 完全接不到,所以 app-crash.log 里一个字都没有。
调用链与 microsoft-ui-xaml#8364 描述的一致。

  • SystemBackdrop 赋值前先确认 Content 是 FrameworkElement 且已 Loaded;
    未就绪时推迟,根元素 Loaded / Window Activated 时按「当前样式」重放
  • 重放的是样式而不是记下来的实例:期间设置页改过样式也不会被旧对象覆盖
  • 样式应用状态区分「已请求」与「已赋值成功」,被推迟时不会因样式相同而跳过
  • 旧的 ApplyBackdrop() 与 InitializeBackdropStyleAsync 会对同一窗口连续
    attach 两次 backdrop target,合并为单一入口
  • 迷你面板同理:Panel 未 Loaded 时推迟到 Loaded 再赋值
  • 赋值本身也包 try/catch,避免判断失误时异常冒到 UI 线程

产物下载

点击文件名即可下载。

合并版(自包含,解压即用,无需预装运行时)

文件 类型 大小 说明
Momomi-0.8.5-x64-setup.exe x64 安装包 45.8 MB 推荐。一键安装,可选开机自启与桌面快捷方式
Momomi-0.8.5-x64-portable.zip x64 便携版 67.2 MB 解压即用,无需安装
Momomi-0.8.5-x64-full-setup.exe x64 完整版 安装包 70.4 MB 内置内核 + 地理数据库,开箱即用
Momomi-0.8.5-x64-full.zip x64 完整版 便携包 107.1 MB 内置内核 + 地理数据库,解压即用
Momomi-0.8.5-arm64-portable.zip ARM64 便携版 65.9 MB ARM64 设备(如骁龙本)
Momomi-0.8.5-arm64-full.zip ARM64 完整版 便携包 103.6 MB ARM64 设备,内置内核 + 地理数据库

MSIX(x64)

文件 类型 大小 说明
Momomi-0.8.5.0-x64.msix x64 MSIX 包 66.3 MB MSIX 打包形态,功能与安装版一致;安装前需先信任证书
momomi-signing.cer 签名证书(公钥) 0.0 MB 自签名证书,安装 MSIX 前需导入「受信任人」存储

安装前先信任证书(会弹一次 UAC),再安装:

certutil -addstore -f TrustedPeople momomi-signing.cer
Add-AppxPackage .\Momomi-0.8.5.0-x64.msix

MSIX 版数据目录固定为 %LOCALAPPDATA%\Momomi,不支持应用内覆盖式自更新,升级请安装新的 MSIX 包。

分离版(框架依赖,体积最小,需预装运行时)

分离版仅提供 x64,须先安装运行环境方可运行,安装包在运行环境缺失时会给出下载提示。

文件 类型 大小 说明
Momomi-0.8.5-x64-sep-setup.exe x64 安装包 10.4 MB 一键安装;安装时检测运行环境并提示
Momomi-0.8.5-x64-sep.zip x64 便携版 13.9 MB 解压即用,需自备运行环境
Momomi-0.8.5-x64-full-sep-setup.exe x64 完整版 安装包 35.0 MB 内置内核 + 地理数据库,需自备运行环境
Momomi-0.8.5-x64-full-sep.zip x64 完整版 便携包 53.7 MB 内置内核 + 地理数据库,需自备运行环境

运行环境要求

须预先安装下列两个运行时,均为 x64 架构,缺一不可:

运行时 所需版本 下载地址
Windows App Runtime 2.4 或更高(2.x) WindowsAppRuntimeInstall-x64.exe
.NET 运行时 10.0 .NET 10 下载
  • 本应用基于 Windows App SDK 2.4 构建,Windows App Runtime 需 2.4 或更高的 2.x 版本,推荐直接安装上表的 2.4。
  • .NET 请选择 「.NET 运行时」(组件名 Microsoft.NETCore.App),而非「.NET 桌面运行时」或「ASP.NET Core 运行时」,版本 10.0.x。
  • 安装完成后可执行下列命令核对,两条均应有输出:
dotnet --list-runtimes | Select-String 'Microsoft.NETCore.App 10\.'
Get-AppxPackage Microsoft.WindowsAppRuntime.2 | Select-Object Name, Version

若运行环境已按上表装齐仍无法启动,建议改用合并版(自带全部运行时,无需预装)。

版本选择建议

使用场景 推荐版本
一般用户 合并版 x64 安装包(自带运行时,安装即用)
追求最小体积,且已装 .NET 10 与 Windows App Runtime 2.4 分离版(较合并版小约 100 MB)
网络可正常访问 GitHub 精简版(内核按需下载,体积更小)
访问 GitHub 不便 / 需开箱即用 完整版(内置 mihomo 内核与全部地理数据库)
ARM64 设备(如骁龙本) 合并版 ARM64 便携包

注意事项

  • 管理员权限:主程序以管理员身份运行以支持 TUN。UAC 为默认级别时,每次启动会弹出一次授权提示。
  • 分离版运行环境:须预先安装 Windows App Runtime 2.4(x64)与 .NET 运行时 10.0(x64),安装器会检测并在缺失时给出下载地址,详见上方「分离版」章节。
  • 端口 7890 冲突:若同时运行 clash-party 等占用 7890 端口的程序,Momomi 的混合端口将绑定失败,请在设置中改用其他端口(如 7897)。
  • 代码签名:安装包未做代码签名,Windows SmartScreen 可能提示「未知发布者」,选择「仍要运行」即可。

v0.8.4

Choose a tag to compare

@github-actions github-actions released this 21 Oct 16:21

修复

这一版集中处理上一轮排查出的崩溃与泄漏点,都是能在代码或日志里直接定位的问题。

崩溃

  • 内核启动失败时死锁,程序既起不来也退不掉:CoreManager.StartAsync 在持有启动锁的情况下又调用 StopAsync 去拿同一把锁(SemaphoreSlim 不可重入),内核进程起来了但 API 连不上时就会永久等待。表现是「启动中」不动、之后再也起不来内核,退出时同样卡在这把锁上。现在把清理逻辑抽成不取锁的 CleanupLockedAsync,两条路径复用。
  • 退出时界面卡死:退出流程在 UI 线程上无限期同步等待内核停止;若内核正卡在启动等待中,程序看起来就像死机,只能强制结束,结果系统代理/TUN 残留、下次开机断网。现在加了 8 秒上限。
  • 节点名含「旗帜 + 两个字素簇」时打开代理页即崩:SplitIcon 里 elements[3] 越界(🇺🇸 1 这类名字正好触发 IndexOutOfRangeException)。节点名来自订阅、完全不可控,因此定级为崩溃。
  • 节点名被错误拆分:同一处逻辑对任何名字都无条件剥掉第一个字素簇,导致 DIRECT 显示成图标 D + 名字 IRECT,中文节点名也会丢失首字。现在只有国旗与 emoji 才会被识别为图标。
  • 订阅 expire 越界导致崩溃:DateTimeOffset.FromUnixTimeSeconds 对超范围值直接抛 ArgumentOutOfRangeException,而该调用发生在 DispatcherQueue 回调里。现在统一走安全格式化,越界按「长期有效」处理。
  • 设置页跨线程改控件:DispatchReload 只保证进入时在 UI 线程,await LoadAsync() 之后续体回到线程池,随后的 SelectedIndex/IsOn 赋值就成了跨线程操作(工作机 app-crash.log 里有 6 次 0x8001010E 实证)。现在整段 Reload 都调度到 UI 线程。
  • 设置页读取失败直接崩:SettingsViewModel.LoadAsync 只有 try/finally 没有 catch,而调用方 OnNavigatedTo 是 async void。现在捕获并把原因显示在状态栏。
  • 数据层初始化失败时静默崩溃:数据目录不可写、数据库被占用、磁盘满时,AppHost 初始化失败后仍继续创建主窗口(构造函数第一件事就是取 Host),启动即崩且无任何提示。现在弹出原生消息框说明原因与日志路径后退出。
  • 异步弹窗重入崩溃:WinUI 同时只允许一个 ContentDialog,并发 ShowAsync 会抛异常,而调用点多为 async void。新增 DialogGuard 统一守卫。
  • 代理/规则页跨线程改绑定属性:StateChanged 多数来自线程池,而 LoadAsync 直接写 StatusText/IsBusy。现在统一回到 DispatcherQueue。
  • 启动时读取的主题设置从未生效:ApplyThemeFromSettingsAsync 在 ConfigureAwait(false) 之后访问 Window.Content/AppBar,异常被外层吞掉。现在调度回 UI 线程执行。

内存与资源

  • 最小化到托盘后 ViewModel 不解绑:NavFrame.Content = null 不会触发导航事件,各页 OnNavigatedFrom 里的 Detach 从未执行,每「呼出→收起」一次就多一份仍订阅着 TrafficUpdated/ProxiesChanged 的 ViewModel,继续每秒刷新、每次切节点重拉代理数据。新增 IPageLifecycle,释放内容前显式解绑。
  • 页面后退栈无界:界面上没有后退按钮,但 Frame 会把访问过的每个页面都压在 BackStack 里强引用整棵可视化树。现在导航后清空。
  • 每秒泄漏一份 JSON 缓冲:MihomoApiClient 的 8 个方法都拿到 JsonDocument 却不释放(/connections 是每秒轮询),池化缓冲无法归还。现在全部 using。
  • 进程图标流不释放:ProcessIconProvider 里 IRandomAccessStream 从未释放,且 SetSourceAsync 是 fire-and-forget,using 一退出流就没了,解码失败即空白图标。现在在 ImageOpened/ImageFailed 里统一收尾。
  • 迷你窗口切换动画可致后台线程崩溃:WindowSlider.Dispose 不幂等,且 Join 超时后仍释放信号量,工作线程若正卡在 WaitOne 上会在后台线程抛 ObjectDisposedException。现在幂等,并在 Join 超时时不释放。
  • 窗口子类化委托被回收:WindowChrome._subclassProc 是 static,迷你窗口重建时会覆盖旧委托,旧窗口若尚未销毁,原生回调可能打到已释放的 thunk。现在按窗口句柄各存一份,关闭前解挂。

数据与一致性

  • 没有覆写时 runtime.yaml 仍带 ... 结束标记:这条分支之前走 Normalize(为了差异视图特意保留结束标记),而 mihomo 会把 ... 当成「配置到此为止」,表现为内核不报错却没有任何代理。现在无条件走 Apply。
  • runtime.yaml 并发写:RewriteRuntimeConfigAsync(TUN 热切换)未参与串行化,会和订阅刷新同时整份重写同一文件。现在共用同一把门,并改为临时文件 + 替换的原子写。
  • SQLite 用共享缓存:共享缓存是表级锁,并发读写会立刻返回 SQLITE_LOCKED,而 busy_timeout 对它无效。改为默认私有缓存(WAL 下并发足够),并给写操作加了 BUSY/LOCKED 重试。
  • 流量历史无界增长且区间首分钟丢失:traffic_minute 每分钟一行、从不清理(工作机已 3 万行),且写入用分钟精度、查询用 "O" 格式,字符串比较会漏掉区间第一分钟——手动「清空历史」时更会因此把整表删光。现在保留 30 天并每天清理一次,两侧格式统一。
  • 订阅内容保存不做校验:编辑器里存进非法 YAML 后,之后任何一次「应用配置」都会抛异常,而部分调用方是 async void。现在保存前先校验,覆写预览也加了独立兜底。
  • 代理组顺序反复解析整份配置:ReadProxyGroupOrder 在代理页/首页/迷你面板每次重建时都要读并解析 runtime.yaml。现在按「路径 + 修改时间 + 长度」缓存,并在后台线程解析。

其他

  • 日志页的「级别」下拉没有设 SelectedValuePath,取到的是 ComboBoxItem 而非字符串,级别过滤实际上从未生效。

产物下载

点击文件名即可下载。

合并版(自包含,解压即用,无需预装运行时)

文件 类型 大小 说明
Momomi-0.8.4-x64-setup.exe x64 安装包 45.8 MB 推荐。一键安装,可选开机自启与桌面快捷方式
Momomi-0.8.4-x64-portable.zip x64 便携版 67.2 MB 解压即用,无需安装
Momomi-0.8.4-x64-full-setup.exe x64 完整版 安装包 70.4 MB 内置内核 + 地理数据库,开箱即用
Momomi-0.8.4-x64-full.zip x64 完整版 便携包 107.0 MB 内置内核 + 地理数据库,解压即用
Momomi-0.8.4-arm64-portable.zip ARM64 便携版 65.9 MB ARM64 设备(如骁龙本)
Momomi-0.8.4-arm64-full.zip ARM64 完整版 便携包 103.6 MB ARM64 设备,内置内核 + 地理数据库

MSIX(x64)

文件 类型 大小 说明
Momomi-0.8.4.0-x64.msix x64 MSIX 包 66.3 MB MSIX 打包形态,功能与安装版一致;安装前需先信任证书
momomi-signing.cer 签名证书(公钥) 0.0 MB 自签名证书,安装 MSIX 前需导入「受信任人」存储

安装前先信任证书(会弹一次 UAC),再安装:

certutil -addstore -f TrustedPeople momomi-signing.cer
Add-AppxPackage .\Momomi-0.8.4.0-x64.msix

MSIX 版数据目录固定为 %LOCALAPPDATA%\Momomi,不支持应用内覆盖式自更新,升级请安装新的 MSIX 包。

分离版(框架依赖,体积最小,需预装运行时)

分离版仅提供 x64,须先安装运行环境方可运行,安装包在运行环境缺失时会给出下载提示。

文件 类型 大小 说明
Momomi-0.8.4-x64-sep-setup.exe x64 安装包 10.4 MB 一键安装;安装时检测运行环境并提示
Momomi-0.8.4-x64-sep.zip x64 便携版 13.9 MB 解压即用,需自备运行环境
Momomi-0.8.4-x64-full-sep-setup.exe x64 完整版 安装包 34.9 MB 内置内核 + 地理数据库,需自备运行环境
Momomi-0.8.4-x64-full-sep.zip x64 完整版 便携包 53.7 MB 内置内核 + 地理数据库,需自备运行环境

运行环境要求

须预先安装下列两个运行时,均为 x64 架构,缺一不可:

运行时 所需版本 下载地址
Windows App Runtime 2.4 或更高(2.x) WindowsAppRuntimeInstall-x64.exe
.NET 运行时 10.0 .NET 10 下载
  • 本应用基于 Windows App SDK 2.4 构建,Windows App Runtime 需 2.4 或更高的 2.x 版本,推荐直接安装上表的 2.4。
  • .NET 请选择 「.NET 运行时」(组件名 Microsoft.NETCore.App),而非「.NET 桌面运行时」或「ASP.NET Core 运行时」,版本 10.0.x。
  • 安装完成后可执行下列命令核对,两条均应有输出:
dotnet --list-runtimes | Select-String 'Microsoft.NETCore.App 10\.'
Get-AppxPackage Microsoft.WindowsAppRuntime.2 | Select-Object Name, Version

若运行环境已按上表装齐仍无法启动,建议改用合并版(自带全部运行时,无需预装)。

版本选择建议

使用场景 推荐版本
一般用户 合并版 x64 安装包(自带运行时,安装即用)
追求最小体积,且已装 .NET 10 与 Windows App Runtime 2.4 分离版(较合并版小约 100 MB)
网络可正常访问 GitHub 精简版(内核按需下载,体积更小)
访问 GitHub 不便 / 需开箱即用 完整版(内置 mihomo 内核与全部地理数据库)
ARM64 设备(如骁龙本) 合并版 ARM64 便携包

注意事项

  • 管理员权限:主程序以管理员身份运行以支持 TUN。UAC 为默认级别时,每次启动会弹出一次授权提示。
  • 分离版运行环境:须预先安装 Windows App Runtime 2.4(x64)与 .NET 运行时 10.0(x64),安装器会检测并在缺失时给出下载地址,详见上方「分离版」章节。
  • 端口 7890 冲突:若同时运行 clash-party 等占用 7890 端口的程序,Momomi 的混合端口将绑定失败,请在设置中改用其他端口(如 7897)。
  • 代码签名:安装包未做代码签名,Windows SmartScreen 可能提示「未知发布者」,选择「仍要运行」即可。

v0.8.3

Choose a tag to compare

@github-actions github-actions released this 21 Oct 14:39

修复

  • 修复重启资源管理器后托盘图标不再出现:explorer 重启会清空通知区域,程序需要靠 TaskbarCreated 广播重新把图标加回去。但主程序以管理员权限运行(High 完整性),而 explorer 是中完整性,这条广播能不能送到并不确定;H.NotifyIcon 2.5.0-beta.3 内部也没有调用 ChangeWindowMessageFilterEx 放行该消息。现在两条路一起补上:
    • 托盘图标创建后显式放行 TaskbarCreated,让库自带的恢复逻辑能真正触发;
    • 增加与消息无关的兜底:每 3 秒比对 Shell_TrayWnd 的宿主进程,发现 explorer 换了就主动重建图标,并按当前状态把图标颜色、ToolTip 与菜单勾选一并恢复。
      之前只能重启程序才能找回图标,现在 explorer 重启后约 3 秒内自动恢复。

产物下载

点击文件名即可下载。

合并版(自包含,解压即用,无需预装运行时)

文件 类型 大小 说明
Momomi-0.8.3-x64-setup.exe x64 安装包 45.8 MB 推荐。一键安装,可选开机自启与桌面快捷方式
Momomi-0.8.3-x64-portable.zip x64 便携版 67.2 MB 解压即用,无需安装
Momomi-0.8.3-x64-full-setup.exe x64 完整版 安装包 70.4 MB 内置内核 + 地理数据库,开箱即用
Momomi-0.8.3-x64-full.zip x64 完整版 便携包 107.0 MB 内置内核 + 地理数据库,解压即用
Momomi-0.8.3-arm64-portable.zip ARM64 便携版 65.9 MB ARM64 设备(如骁龙本)
Momomi-0.8.3-arm64-full.zip ARM64 完整版 便携包 103.6 MB ARM64 设备,内置内核 + 地理数据库

MSIX(x64)

文件 类型 大小 说明
Momomi-0.8.3.0-x64.msix x64 MSIX 包 66.3 MB MSIX 打包形态,功能与安装版一致;安装前需先信任证书
momomi-signing.cer 签名证书(公钥) 0.0 MB 自签名证书,安装 MSIX 前需导入「受信任人」存储

安装前先信任证书(会弹一次 UAC),再安装:

certutil -addstore -f TrustedPeople momomi-signing.cer
Add-AppxPackage .\Momomi-0.8.3.0-x64.msix

MSIX 版数据目录固定为 %LOCALAPPDATA%\Momomi,不支持应用内覆盖式自更新,升级请安装新的 MSIX 包。

分离版(框架依赖,体积最小,需预装运行时)

分离版仅提供 x64,须先安装运行环境方可运行,安装包在运行环境缺失时会给出下载提示。

文件 类型 大小 说明
Momomi-0.8.3-x64-sep-setup.exe x64 安装包 10.4 MB 一键安装;安装时检测运行环境并提示
Momomi-0.8.3-x64-sep.zip x64 便携版 13.9 MB 解压即用,需自备运行环境
Momomi-0.8.3-x64-full-sep-setup.exe x64 完整版 安装包 34.9 MB 内置内核 + 地理数据库,需自备运行环境
Momomi-0.8.3-x64-full-sep.zip x64 完整版 便携包 53.7 MB 内置内核 + 地理数据库,需自备运行环境

运行环境要求

须预先安装下列两个运行时,均为 x64 架构,缺一不可:

运行时 所需版本 下载地址
Windows App Runtime 2.4 或更高(2.x) WindowsAppRuntimeInstall-x64.exe
.NET 运行时 10.0 .NET 10 下载
  • 本应用基于 Windows App SDK 2.4 构建,Windows App Runtime 需 2.4 或更高的 2.x 版本,推荐直接安装上表的 2.4。
  • .NET 请选择 「.NET 运行时」(组件名 Microsoft.NETCore.App),而非「.NET 桌面运行时」或「ASP.NET Core 运行时」,版本 10.0.x。
  • 安装完成后可执行下列命令核对,两条均应有输出:
dotnet --list-runtimes | Select-String 'Microsoft.NETCore.App 10\.'
Get-AppxPackage Microsoft.WindowsAppRuntime.2 | Select-Object Name, Version

若运行环境已按上表装齐仍无法启动,建议改用合并版(自带全部运行时,无需预装)。

版本选择建议

使用场景 推荐版本
一般用户 合并版 x64 安装包(自带运行时,安装即用)
追求最小体积,且已装 .NET 10 与 Windows App Runtime 2.4 分离版(较合并版小约 100 MB)
网络可正常访问 GitHub 精简版(内核按需下载,体积更小)
访问 GitHub 不便 / 需开箱即用 完整版(内置 mihomo 内核与全部地理数据库)
ARM64 设备(如骁龙本) 合并版 ARM64 便携包

注意事项

  • 管理员权限:主程序以管理员身份运行以支持 TUN。UAC 为默认级别时,每次启动会弹出一次授权提示。
  • 分离版运行环境:须预先安装 Windows App Runtime 2.4(x64)与 .NET 运行时 10.0(x64),安装器会检测并在缺失时给出下载地址,详见上方「分离版」章节。
  • 端口 7890 冲突:若同时运行 clash-party 等占用 7890 端口的程序,Momomi 的混合端口将绑定失败,请在设置中改用其他端口(如 7897)。
  • 代码签名:安装包未做代码签名,Windows SmartScreen 可能提示「未知发布者」,选择「仍要运行」即可。