From 3610559cc7ba49ebf16f29897eb7847d128877c1 Mon Sep 17 00:00:00 2001 From: "Pawla Abdul (Bot)" Date: Mon, 13 Apr 2026 00:03:17 +0000 Subject: [PATCH] fix(skills): emit warning for all pruned skills, not just agent-attached ones Previously, skills pruned during re-scan only emitted a warning when they were attached to agents. Skills with no agent references were deleted silently. Now every pruned skill emits a warning in the scan result so the deletion is always visible to the caller. Co-Authored-By: Paperclip --- server/src/__tests__/company-skills-prune.test.ts | 5 ++++- server/src/services/company-skills.ts | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/server/src/__tests__/company-skills-prune.test.ts b/server/src/__tests__/company-skills-prune.test.ts index 87834039..a75ab072 100644 --- a/server/src/__tests__/company-skills-prune.test.ts +++ b/server/src/__tests__/company-skills-prune.test.ts @@ -250,7 +250,10 @@ describeEmbeddedPostgres("scanProjectWorkspaces prune path", () => { expect(remainingSlugs).toContain("keep-skill"); expect(remainingSlugs).not.toContain("prune-skill"); - // No warnings about agent detachment since no agents used it + // A deletion warning should still be emitted (no detachment, but deletion is confirmed) + const deleteWarnings = result.warnings.filter((w) => w.includes("prune-skill") && w.includes("deleted")); + expect(deleteWarnings).toHaveLength(1); + // No agent-detachment warning since no agents used it const detachWarnings = result.warnings.filter((w) => w.includes("prune-skill") && w.includes("detached")); expect(detachWarnings).toHaveLength(0); }); diff --git a/server/src/services/company-skills.ts b/server/src/services/company-skills.ts index b232d6cc..d1fea3d9 100644 --- a/server/src/services/company-skills.ts +++ b/server/src/services/company-skills.ts @@ -2061,6 +2061,10 @@ export function companySkillService(db: Db) { warnings.push( `Skill "${skill.slug}" was removed from ${sourceLocator} and detached from ${usedByAgents.map((a) => a.name).join(", ")}.`, ); + } else { + warnings.push( + `Skill "${skill.slug}" was removed from ${sourceLocator} and deleted.`, + ); } await deleteSkill(companyId, skill.id); }