Skill syncing now rejects broken or repo-shaped skill archives and repairs a symlinked skills folder.
What's wrong with this entry?
The background sync that installs skills was reworked to survive bad downloads and crashed runs. A downloaded skill archive is rejected if it has no usable SKILL.md or if it looks like a git repository, and if the folder skills sync into turns out to be a symlink it is deleted and recreated.
- New log entries:
skills_sync_extracted_zip_unusablefor a rejected archive,skills_sync_root_symlink_removedfor the symlinked root, and a hard error "synced skills root is not a directory" if it cannot be made one. - Directories that cannot be deleted are moved to a trash directory instead of blocking the sync.
- The record of installed skills gained lists of stale directories and pending claims; a claim carries the owning process id and its start time, so a half-installed directory left by a crashed run is reclaimed by the next one.
- An older record layout is migrated or repaired at startup, logged as
skills_sync_legacy_layout_migratedandskills_sync_legacy_manifest_repaired.
skills_sync_extracted_zip_unusable
Strings lifted out of the shipped bundle, so the claim above can be checked against them.