diff --git a/todo/todo.html b/todo/todo.html index b23fc9c..c6db74c 100644 --- a/todo/todo.html +++ b/todo/todo.html @@ -327,12 +327,12 @@ header .header-meta{color:var(--fg-soft)} feature+windows — 项目 TODO - 生成于 2026-08-08 · 真相源 todo/todo.json + 生成于 2026-08-09 · 真相源 todo/todo.json 29全部 - 16待开始 + 15待开始 0开发中 - 5待验收 + 6待验收 8已验收 @@ -376,43 +376,12 @@ header .header-meta{color:var(--fg-soft)} - 📋 待开始 16 + 📋 待开始 15 ▴ 收起 - - - #28 - 修复 macOS PacketTunnel 系统扩展 App Group 不一致导致装不上 - - 待开始 - 高优 · 紧急 - 二级 - - - - - - 根因:scripts/ci/compile-macos.sh 第 221 行把 sysext 的 application-groups 硬编码成 iOS 风格的 group.com.pangolin.pangolin,且第 195-210 行生成的 app.entitlements 完全没有 application-groups 键。二者与扩展 Info.plist 里的 NEMachServiceName(BYL4KQHMTN.com.pangolin.pangolin.PacketTunnel)对不上前缀 —— nesessionmanager 报 NetworkExtensionErrorDomain Code=6,sysextd 校验失败当场卸载刚 staging 的新扩展;VpnChannel.start() 的 step1 activateSystemExtensionIfNeeded 抛 code=9,永远走不到 step2 的 loadOrCreateManager,NETunnelProviderManager 配置建不出来,scutil --nc list 里没有 Pangolin,客户端一个包都发不到服务器(服务端侧该 Mac 出口 IP 的握手尝试数为 0)。这违反了 CLAUDE.md 第 152 行已写明的铁律。注意这两个 entitlements 是 codesign --force 最终覆盖签名用的,仓库里的 .entitlements 源文件只在 Xcode 编译阶段生效,所以线上包坏而本地 all 流程正常。修复:compile-macos.sh 两处改用脚本第 99 行已定义的 APP_GROUP 变量,app.entitlements 补 application-groups。scripts/local_test.sh 的同款硬编码本次已修,并新增 verify_app_group 一致性闸(读最终产物签名,比对两端 App Group 与 NEMachServiceName 前缀)和 macos 一条龙子命令。建议把同样的闸加进 .gitea/workflows/ci.yml。改完需重新构建+公证+替换 api.yanmeiai.com/downloads/pangolin-macos-x64.zip。附带:受影响机器会堆积多个 terminated waiting to uninstall on reboot 的旧扩展(本机 13 个,已 38 天未重启),建议重启清理。 - - - - - - 🔍 待验收 5 + 🔍 待验收 6 ▴ 收起 + + + #28 + 修复 macOS PacketTunnel 系统扩展 App Group 不一致导致装不上 + + 待验收 + 高优 · 紧急 + 二级 + + 拒绝验收 + + + + 根因:scripts/ci/compile-macos.sh 第 221 行把 sysext 的 application-groups 硬编码成 iOS 风格的 group.com.pangolin.pangolin,且第 195-210 行生成的 app.entitlements 完全没有 application-groups 键。二者与扩展 Info.plist 里的 NEMachServiceName(BYL4KQHMTN.com.pangolin.pangolin.PacketTunnel)对不上前缀 —— nesessionmanager 报 NetworkExtensionErrorDomain Code=6,sysextd 校验失败当场卸载刚 staging 的新扩展;VpnChannel.start() 的 step1 activateSystemExtensionIfNeeded 抛 code=9,永远走不到 step2 的 loadOrCreateManager,NETunnelProviderManager 配置建不出来,scutil --nc list 里没有 Pangolin,客户端一个包都发不到服务器(服务端侧该 Mac 出口 IP 的握手尝试数为 0)。这违反了 CLAUDE.md 第 152 行已写明的铁律。注意这两个 entitlements 是 codesign --force 最终覆盖签名用的,仓库里的 .entitlements 源文件只在 Xcode 编译阶段生效,所以线上包坏而本地 all 流程正常。修复:compile-macos.sh 两处改用脚本第 99 行已定义的 APP_GROUP 变量,app.entitlements 补 application-groups。scripts/local_test.sh 的同款硬编码本次已修,并新增 verify_app_group 一致性闸(读最终产物签名,比对两端 App Group 与 NEMachServiceName 前缀)和 macos 一条龙子命令。建议把同样的闸加进 .gitea/workflows/ci.yml。改完需重新构建+公证+替换 api.yanmeiai.com/downloads/pangolin-macos-x64.zip。附带:受影响机器会堆积多个 terminated waiting to uninstall on reboot 的旧扩展(本机 13 个,已 38 天未重启),建议重启清理。 + + + + +