Skills grid: dedup a skill installed under a different source than the catalog lists it - #135
Merged
Conversation
…e catalog A skill installed via one source (e.g. paste-a-URL → key `url-<hash>__x`) and the SAME skill listed in a catalog (key `webtigers-skills__x`) have different install keys, so the datatable merge showed BOTH — one "Installed", one "Available". Dedup by canonical identity (repo + path) in addition to the install key: a skill is the same wherever it was installed from. The matched row shows as installed, carries the catalog's provenance, and its actions target the ACTUAL installed key (so toggle/remove hit the real dir). Tiger_Agent_Skills::installed() now returns `path` for the match. Test: install a skill under `url__widget`, list the same repo+path in a catalog under `catalog-x`, assert ONE row, installed, keyed to the real install dir. Verified live on dev: ui-ux-pro-max-php collapses from 2 rows to 1. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Symptom
ui-ux-pro-max-phpshowed twice in the grid — once Installed (source "From github.com/WebTigers/Skills/…") and once Available (source "WebTigers Skills").Cause
It was installed via the paste-a-URL flow, which keys the install by the URL-derived source id (
url-<hash>__ui-ux-pro-max-php). The catalog lists the same skill underwebtigers-skills__ui-ux-pro-max-php. The datatable merge matched installed↔catalog only by install key, so the two didn't reconcile → two rows.Fix
Dedup by the skill's canonical identity (repo + path) as well as the install key — a skill is the same wherever it was installed from. The reconciled row:
Tiger_Agent_Skills::installed()now returnspathso the merge can match on it.Verified
url__widget, list the same repo+path in a catalog undercatalog-x→ asserts one row, installed, keyed to the real dir. 10/10 SkillsTest green.ui-ux-pro-max-phpcollapses from 2 rows to 1.🤖 Generated with Claude Code