🏷️ Priorité : MOYENNE | Type : Bug
Problème
Dans install.sh, la logique de nettoyage avant création de symlink utilise rm -rf sans vérifier que la cible est un symlink :
# Lignes 44, 49 :
[ -e "$SKILL_DST" ] || [ -L "$SKILL_DST" ] && rm -rf "$SKILL_DST"
Si $SKILL_DST est un vrai répertoire (ex: l'utilisateur a manuellement créé ~/.claude/skills/index-sessions/), rm -rf supprime tout le contenu du répertoire.
Localisation
Fichier : apps/claude_code_data/install.sh, lignes 44 et 49
Comment reproduire
- Créer manuellement le répertoire :
mkdir -p ~/.claude/skills/index-sessions
- Y mettre des fichiers :
echo "data" > ~/.claude/skills/index-sessions/important.txt
- Exécuter
bash apps/claude_code_data/install.sh
- → Le répertoire et son contenu sont supprimés par
rm -rf
Correction attendue
# AVANT (dangereux) :
[ -e "$SKILL_DST" ] || [ -L "$SKILL_DST" ] && rm -rf "$SKILL_DST"
# APRÈS (safe) :
if [ -L "$SKILL_DST" ]; then
rm "$SKILL_DST" # Supprime seulement le symlink
elif [ -e "$SKILL_DST" ]; then
die "Destination exists and is not a symlink: $SKILL_DST — remove it manually"
fi
Même correction pour $HOOK_DST (ligne 49).
Critères de succès
🏷️ Priorité : MOYENNE | Type : Bug
Problème
Dans
install.sh, la logique de nettoyage avant création de symlink utiliserm -rfsans vérifier que la cible est un symlink :Si
$SKILL_DSTest un vrai répertoire (ex: l'utilisateur a manuellement créé~/.claude/skills/index-sessions/),rm -rfsupprime tout le contenu du répertoire.Localisation
Fichier :
apps/claude_code_data/install.sh, lignes 44 et 49Comment reproduire
mkdir -p ~/.claude/skills/index-sessionsecho "data" > ~/.claude/skills/index-sessions/important.txtbash apps/claude_code_data/install.shrm -rfCorrection attendue
Même correction pour
$HOOK_DST(ligne 49).Critères de succès