Skip to content

EasySkills 2.1.0 - Link-Health Diagnostics

Choose a tag to compare

@RunhuaHuang RunhuaHuang released this 24 Jun 15:42
· 25 commits to main since this release

EasySkills 2.1.0

Link-Health Diagnostics (new)

A broken (dangling) symlink in the central skill library — its target removed
by the user — used to be invisible to EasySkills and, worse, could be forwarded
into every agent's skills directory. Some agents (e.g. older Run builds) abort
their entire skill scan the moment they stat a dead link, silently dropping
every skill sorted after it. This release makes that whole failure mode visible
and self-healing.

  • Auto-prune dangling links on sync. deploy.sh / deploy.ps1 now scan the
    central directory before mapping and automatically remove any symlink whose
    target no longer exists, with a clear log line per pruned link and a summary
    count. Dangling links are dead data (their target is gone), so pruning is
    loss-free and stops the broken link from ever reaching an agent.
  • Flag external-link skills as fragile. A skill that is itself a valid
    external symlink is still forwarded (backward compatible) but is now flagged
    with a warning and surfaced in the sync summary, nudging you to convert it to
    a real directory so a single target deletion can't cascade across agents.
  • --status link-health snapshot. The status command now reports a read-only
    Link health: N dangling (run sync to prune), M external line, so problems
    can be previewed without running a sync.

WebUI

  • Skills that are external symlinks now show a ⚠ External Link warning badge
    (amber accent) on the Skills tab, with the card border and icon recoloured.
  • The dashboard shows a link-health advisory banner whenever the central library
    has dangling or external-link skills, with a one-line summary and a pointer to
    the Skills tab.

API

  • GET /api/status now includes dangling_count and external_link_count
    (both macOS/Linux and Windows backends).
  • GET /api/skills now includes an is_external_link boolean per skill
    (both backends). The frontend degrades gracefully if an older backend omits it.

Validation

  • Add 5 new regression tests covering link-health semantics: external-link
    detection and dangling exclusion in get_skills(), dangling/external counting
    in get_central_dir_warnings(), missing-central-dir handling, cross-backend
    field-name contracts, and that the sync logic prunes dangling symlinks.