Skip to content

Commit 29d3f16

Browse files
author
André Lange
committed
fix: respect per-skill version in Capacium sync, not force pyproject.toml version
build_bundle_capabilities() now reads each skill's own version from its capability.yaml instead of blindly applying the pyproject.toml version. normalize_manifest() preserves a skill's existing version instead of overwriting it. This fixes the bug where adding a new skill with a different version (e.g. skillweave-council v0.8.0 when pyproject is 0.7.0) would cause a permanent sync conflict.
1 parent 3842a50 commit 29d3f16

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

src/skillweave/github_integration/capability_sync.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,12 @@ def build_bundle_capabilities(self, version: str) -> list[dict[str, str]]:
8585
for path in self.skill_manifest_paths():
8686
manifest = self.load_manifest(path)
8787
name = manifest.get("name") or path.parent.name
88+
own_version = manifest.get("version", version)
8889
capabilities.append(
8990
{
9091
"name": name,
9192
"source": f"./skills/{path.parent.name}",
92-
"version": version,
93+
"version": own_version,
9394
}
9495
)
9596
return capabilities
@@ -135,7 +136,7 @@ def normalize_manifest(self, path: Path, version: str) -> dict[str, Any]:
135136
normalized = {
136137
"kind": "skill",
137138
"name": current.get("name", path.parent.name),
138-
"version": version,
139+
"version": current.get("version", version),
139140
"description": current.get("description", ""),
140141
"author": DEFAULT_AUTHOR,
141142
"license": DEFAULT_LICENSE,

0 commit comments

Comments
 (0)