fix(installer): detect same-metadata content updates

This commit is contained in:
2026-08-22 08:53:46 +09:30
parent 3b38deb078
commit 4e6ae9036a
2 changed files with 4 additions and 1 deletions
+1 -1
View File
@@ -365,7 +365,7 @@ install_plugin() {
else else
mkdir -p "$dst_dir" mkdir -p "$dst_dir"
# rsync resolved source (handles nested skills/ structures) # rsync resolved source (handles nested skills/ structures)
rsync -a --delete "$src_dir/" "$dst_dir/" rsync -a --checksum --delete "$src_dir/" "$dst_dir/"
state_set "$install_name" "$version" "$effective_install_type" "$source_digest" state_set "$install_name" "$version" "$effective_install_type" "$source_digest"
ok "$install_name → skill (v$version)" ok "$install_name → skill (v$version)"
INSTALL_ACTION=true INSTALL_ACTION=true
+3
View File
@@ -42,6 +42,9 @@ description: Installer fixture version two.
--- ---
version two version two
EOF EOF
# Reproduce rsync's quick-check edge case: changed content with identical size
# and mtime must still replace the recorded, unmodified installation.
touch -r "$TEST_HOME/.agents/skills/example/SKILL.md" "$FIXTURE_REPO/skills-dev/example-plugin/skills/SKILL.md"
HOME="$TEST_HOME" "$FIXTURE_REPO/install-skills.sh" >/dev/null HOME="$TEST_HOME" "$FIXTURE_REPO/install-skills.sh" >/dev/null
grep -q 'version two' "$TEST_HOME/.agents/skills/example/SKILL.md" grep -q 'version two' "$TEST_HOME/.agents/skills/example/SKILL.md"
grep -q '"version": "2.0.0"' "$TEST_HOME/.agents/.ai-proj-helper-installed-skills.json" grep -q '"version": "2.0.0"' "$TEST_HOME/.agents/.ai-proj-helper-installed-skills.json"