fix: shared tool-count constant + vscode marketplace dedupe - #33
Merged
Conversation
Closes #27, #32. #27 tool-count drift: adds src/tools-meta.ts as the single source of truth for the display tool roster (TOOL_NAMES, TOOL_COUNT=17, excludes the shared ~/.agents/skills Global directory). The web imports it (synced into the web tree by a prebuild step, since Next's turbopack root cannot reach ../../src), so hero, OG, and description counts move with the code. README cannot import, so scripts/check-tool-count.ts greps it and a new ci.yml fails the PR on mismatch. All the stale 12s are now 17, and the Supported tools table gains the 6 agents from #28 plus Windsurf's skills dir. #32 marketplace dedupe: rich-extension.ts carried its own skills.sh search, install, uninstall, popular fetch, runner detection and exec helpers. Those now delegate to src/marketplace (searchSkills, getPopularSkills, installSkillAsync, removeSkillAsync); the only local logic kept is the disk-cache-with-background-refresh wrapper over getPopularSkills. Net -132 lines, one marketplace implementation. Verified: plugin build + eslint clean; web builds and renders 17 everywhere (zero '12' in output); check-tool-count passes; vscode tsc strict clean; shared marketplace functions return live data through the shim (20 popular, 30 search results with installed flags); vsix reinstalled into VS Code and Cursor.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Railly
added a commit
that referenced
this pull request
Jul 24, 2026
…OpenHands, Goose) (#34) Bumps manifest, package, and versions.json to 0.8.0. Minor release: since 0.7.5 the plugin gained six new agents and Windsurf's skills dir (#28); the other merged PRs (#29-#31, #33) are the VS Code extension and shared-constant work that don't change plugin runtime. Tagging 0.8.0 triggers the release workflow (build + attestation + GitHub release with main.js, manifest.json, styles.css).
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.
Closes #27, closes #32.
#27 — tool count drift
The
12 toolsnumber was hardcoded in README, layout.tsx, page.tsx, and drifted from the 18-entrytool-configs.ts(17 tools + the shared Global dir). This addssrc/tools-meta.tsas the display source of truth (TOOL_NAMES,TOOL_COUNT = 17).TOOL_COUNT. Next'sturbopack.rootpins the web package so it can't reach../../src; a prebuild step (web/scripts/sync-tools-meta.ts, wired intodev/build) copies the constant intoweb/app/tools-meta.generated.ts(gitignored). Hero, OG, and description counts now track the code.scripts/check-tool-count.tsgreps it and a newci.ymlfails the PR on any count that isn'tTOOL_COUNT.12is now17; the Supported tools table gains the 6 agents from feat: support 6 new agents matching skillkit's 14 connectors #28 (Cline, Roo, Kilo, Continue, OpenHands, Goose) and Windsurf's skills dir.#32 — marketplace dedupe
vscode/src/rich-extension.ts(from the rescued 0.0.1 experiment) carried its own skills.sh search, install, uninstall, popular fetch, runner detection, and exec helpers, parallel tosrc/marketplace.ts. Those handlers now delegate to the shared exports (searchSkills,getPopularSkills,installSkillAsync,removeSkillAsync). The only rich-only logic kept is the disk-cache-with-background-refresh wrapper overgetPopularSkills. Net -132 lines, one marketplace implementation for both frontends.Not touched
#26 (Rules management) is a product feature needing UX shaping, not a drive-by fix; left open.
Verification
17everywhere and zero12tool referencescheck-tool-count.tspasses; ci.yml addedinstalledflags)