fix(skills): prevent skills loading crash

This commit is contained in:
Peter Steinberger
2025-12-20 11:49:24 +00:00
parent f0ebad3f21
commit 0e2993a6c8
5 changed files with 143 additions and 12 deletions

View File

@@ -35,6 +35,16 @@ ${body ?? `# ${name}\n`}
}
describe("buildWorkspaceSkillsPrompt", () => {
it("returns empty prompt when skills dirs are missing", async () => {
const workspaceDir = await fs.mkdtemp(path.join(os.tmpdir(), "clawdis-"));
const prompt = buildWorkspaceSkillsPrompt(workspaceDir, {
managedSkillsDir: path.join(workspaceDir, ".managed"),
});
expect(prompt).toBe("");
});
it("loads skills from workspace skills/", async () => {
const workspaceDir = await fs.mkdtemp(path.join(os.tmpdir(), "clawdis-"));
const skillDir = path.join(workspaceDir, "skills", "demo-skill");
@@ -196,6 +206,19 @@ describe("buildWorkspaceSkillsPrompt", () => {
});
});
describe("buildWorkspaceSkillSnapshot", () => {
it("returns an empty snapshot when skills dirs are missing", async () => {
const workspaceDir = await fs.mkdtemp(path.join(os.tmpdir(), "clawdis-"));
const snapshot = buildWorkspaceSkillSnapshot(workspaceDir, {
managedSkillsDir: path.join(workspaceDir, ".managed"),
});
expect(snapshot.prompt).toBe("");
expect(snapshot.skills).toEqual([]);
});
});
describe("applySkillEnvOverrides", () => {
it("sets and restores env vars", async () => {
const workspaceDir = await fs.mkdtemp(path.join(os.tmpdir(), "clawdis-"));