github runkids/skillshare v0.13.1

latest releases: v0.18.7, v0.18.6, v0.18.5...
one month ago

skillshare v0.13.1 Release Notes

Release date: 2026-02-16

TL;DR

After data migration (XDG or Windows path relocation), sync left orphan symlinks in target directories because they pointed to old paths. Users had to manually delete them from every target. This release fixes it automatically.

The Problem

v0.13.0 introduced XDG Base Directory support and Windows path migration. After migration:

  1. Target symlinks still pointed to the old source path (e.g. ~/.config/skillshare/skills/my-skill)
  2. PruneOrphanLinks() classified these as "external symlinks" (not under the new source directory)
  3. External symlinks were always preserved with a warning — even with --force
  4. --force was never passed to PruneOrphanLinks() in the first place

Users had to manually visit each target directory and delete stale symlinks.

The Fix

PruneOrphanLinks() now uses a three-tier decision for external symlinks:

Condition Action Rationale
Broken (target doesn't exist) Auto-remove Safe — nothing points to a valid location
Valid + --force Remove User explicitly requested cleanup
Valid + no force Preserve + warn Backward compatible — may be intentional

Additional fixes:

  • --force flag is now passed through to PruneOrphanLinks() from CLI, Web UI sync, and git pull handlers
  • Path prefix comparison uses utils.PathHasPrefix() for Windows case-insensitive matching (was strings.HasPrefix)

Upgrade Path

# After upgrading, just run sync — broken external symlinks are cleaned up automatically
skillshare sync

# To also remove valid external symlinks (if any)
skillshare sync --force

No manual cleanup is needed.

Verification

Covered by:

  • TestSync_Pruning_RemovesBrokenExternalSymlinks — simulates post-migration broken symlink, verifies auto-removal
  • TestSync_Pruning_ForceRemovesExternalSymlinks — verifies valid external symlinks preserved without force, removed with --force
  • Full suite (make test) passing

Changelog

  • 4bd5f82 fix: avoid GitHub API rate limit in PowerShell install script
  • 684cd5b fix: compare skill version instead of file existence in upgrade
  • c2c52c8 fix: enable TLS 1.2 in PowerShell install script
  • 76e1f6e fix: prune broken external symlinks after data migration (#28)

Don't miss a new skillshare release

NewReleases is sending notifications on new releases.