From d134da8536487362a3b5bb52ac1b44d2f86d5966 Mon Sep 17 00:00:00 2001 From: "guokexin.02" <264159873+Tantanz20020918@users.noreply.github.com> Date: Tue, 7 Jul 2026 12:56:23 +0800 Subject: [PATCH] fix: use vfs recursion for suite skill copy --- internal/skillscheck/layout.go | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/internal/skillscheck/layout.go b/internal/skillscheck/layout.go index dfe001523..ae15a56f6 100644 --- a/internal/skillscheck/layout.go +++ b/internal/skillscheck/layout.go @@ -341,20 +341,31 @@ func copyDir(src, dst string) error { if err := vfs.RemoveAll(dst); err != nil { return err } - return filepath.WalkDir(src, func(path string, entry os.DirEntry, walkErr error) error { - if walkErr != nil { - return walkErr + return copyDirEntries(src, dst) +} + +func copyDirEntries(src, dst string) error { + if err := vfs.MkdirAll(dst, 0o755); err != nil { + return err + } + entries, err := vfs.ReadDir(src) + if err != nil { + return err + } + for _, entry := range entries { + srcPath := filepath.Join(src, entry.Name()) + dstPath := filepath.Join(dst, entry.Name()) + if entry.IsDir() { + if err := copyDirEntries(srcPath, dstPath); err != nil { + return err + } + continue } - rel, err := filepath.Rel(src, path) - if err != nil { + if err := copyFile(srcPath, dstPath); err != nil { return err } - target := filepath.Join(dst, rel) - if entry.IsDir() { - return vfs.MkdirAll(target, 0o755) - } - return copyFile(path, target) - }) + } + return nil } func copyFile(src, dst string) error {