mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-26 02:00:52 +01:00
The prune treated any symlink at a manifest-named path as lane-owned, so it could delete a user's own replacement link. It also reported a removal as done even when fs.rm failed, so a failed entry dropped out of the manifest and a later prune could not retry it. The manifest now records each managed skill's resolved source path. The prune compares a symlink's current target against that source before removal, and only reports a removal after fs.rm succeeds. An entry the removal fails on stays in the manifest for a later retry. Co-authored-by: Paperclip <noreply@paperclip.ing>