Derive installed plugins from this machine, not a snapshot - #11
Conversation
- installed = present in ~/.cursor/plugins/cache or ~/.cursor/plugins/local; the catalog only supplies copy, category and ids. Drops the author's data/installed-index.json, which made every clone show one person's plugins. - Scan plugins/local/<name>/ (hand-installed plugins) alongside the cache. - Plugins with no catalog row get a synthetic <marketplace>:<slug> id. - Guard test: data/ carries no sandbox or machine paths. - Restore the picker screenshots with a fictional gbot roster. - README rewritten around what actually ships; install test reads the version. - 0.4.0
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 01c6ef1c4b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const hit = findLocalPlugin(id, cat.name, cacheHint(cat)); | ||
| const local = hit && !claimed.has(hit.key) ? hit : null; |
There was a problem hiding this comment.
Disambiguate catalog rows before claiming cached plugins
When multiple catalog rows resolve to the same cache key, this first-come claim assigns the installed files to whichever row appears first. The shipped catalog contains IDs 3579817 and 48677658 both pointing to cursor-public/github, with 3579817 first even though both rows' liveInstalled.plugin_id identifies 48677658; therefore a machine with GitHub installed reports the legacy ID as installed while the actual ID remains in the marketplace with no readable local contents. Choose the authoritative row before marking the key claimed rather than relying on catalog order.
Useful? React with 👍 / 👎.
the catalog only supplies copy, category and ids. Drops the author's
data/installed-index.json, which made every clone show one person's plugins.
Verified:
npm run checkgreen locally (validate, tsc, build, 20 tests, artifact validate, packed-install smoke). Screenshots regenerated with a stub roster; no real fleet data in the repo.