fix(skills): retarget stale plugin skill symlinks (#86719) · openclaw/openclaw@39328ed
stevenepalme
·
2026-06-19
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -474,6 +474,23 @@ describe("publishPluginSkills", () => {
|
474 | 474 | expect(fsSync.readlinkSync(path.join(managedDir, "my-skill"))).toBe(dir2); |
475 | 475 | }); |
476 | 476 | |
| 477 | +it("replaces owned generated symlinks when the previous target disappeared", async () => { |
| 478 | +const staleParent = await tempDirs.make("plugin-skills-stale-"); |
| 479 | +const currentParent = await tempDirs.make("plugin-skills-current-"); |
| 480 | +const managedDir = await tempDirs.make("managed-skills-"); |
| 481 | + |
| 482 | +const staleDir = await writeSkillDir(staleParent, "my-skill", "old"); |
| 483 | +const currentDir = await writeSkillDir(currentParent, "my-skill", "new"); |
| 484 | +const linkPath = path.join(managedDir, "my-skill"); |
| 485 | + |
| 486 | +fsSync.symlinkSync(staleDir, linkPath, "dir"); |
| 487 | +await fs.rm(staleParent, { recursive: true, force: true }); |
| 488 | + |
| 489 | +publishPluginSkills([currentDir], { pluginSkillsDir: managedDir }); |
| 490 | + |
| 491 | +expect(fsSync.readlinkSync(linkPath)).toBe(currentDir); |
| 492 | +}); |
| 493 | + |
477 | 494 | it("replaces generated Windows directory entries before publishing a current skill", async () => { |
478 | 495 | const skillParent = await tempDirs.make("plugin-skills-"); |
479 | 496 | const managedDir = await tempDirs.make("managed-skills-"); |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。