diff --git a/agent/skills/manager.py b/agent/skills/manager.py index 5cf5735..69e3b34 100644 --- a/agent/skills/manager.py +++ b/agent/skills/manager.py @@ -100,6 +100,7 @@ class SkillManager: "description": skill.description, "source": skill.source, "enabled": prev.get("enabled", True), + **( {"category": prev["category"]} if "category" in prev else {} ), } self.skills_config = merged diff --git a/agent/skills/service.py b/agent/skills/service.py index 8aa6ca0..730449e 100644 --- a/agent/skills/service.py +++ b/agent/skills/service.py @@ -94,6 +94,13 @@ class SkillService: # Reload to pick up the new skill and sync config self.manager.refresh_skills() + + # Persist category from payload into skills_config only when provided + category = payload.get("category") + if category and name in self.manager.skills_config: + self.manager.skills_config[name]["category"] = category + self.manager._save_skills_config() + logger.info(f"[SkillService] add: skill '{name}' installed ({len(files)} files)") # ------------------------------------------------------------------