From 4e13bbba5e653f1305a920cf873f49bda2b86f4c Mon Sep 17 00:00:00 2001 From: jianf <2198972886@qq.com> Date: Sun, 19 Jul 2026 12:12:11 +0800 Subject: [PATCH] fix: use platformBinaries for bundle skip (keep main.lua/SKILL.md) --- internal/plugins/pluginmgr/plugin.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/internal/plugins/pluginmgr/plugin.go b/internal/plugins/pluginmgr/plugin.go index 8c2d429..da4f0de 100644 --- a/internal/plugins/pluginmgr/plugin.go +++ b/internal/plugins/pluginmgr/plugin.go @@ -37,7 +37,7 @@ func platformBinary() (zipName, canonicalName string) { } } -// validBinaries 是 .hmap 中所有可识别的平台二进制文件名。 +// validBinaries 是 .hmap 中所有可识别的文件入口(平台二进制或脚本)。 var validBinaries = map[string]bool{ "plugin.so": true, "plugin.dylib": true, @@ -46,6 +46,13 @@ var validBinaries = map[string]bool{ "SKILL.md": true, } +// platformBinaries 是平台特定的二进制,bundle 模式下仅当前平台的被解压。 +var platformBinaries = map[string]bool{ + "plugin.so": true, + "plugin.dylib": true, + "plugin.dll": true, +} + var downloadClient = &http.Client{ Timeout: 30 * time.Second, CheckRedirect: func(req *http.Request, via []*http.Request) error { @@ -647,8 +654,8 @@ func extractPackage(data []byte, pluginDir string) error { continue } - // bundle mode: skip other platforms' binaries, keep only current OS - if isBundle && validBinaries[f.Name] && f.Name != zipBin { + // bundle mode: skip other platforms' platform-specific binaries + if isBundle && platformBinaries[f.Name] && f.Name != zipBin { continue }