docs: official first-party plugin research - #563
Conversation
Inventory of desktop plugin install/load, #547 gaps, and a ranked editor/GFM list of next official packs. Docs only — no marketplace, no plugin code. Co-authored-by: Tomás Maritano <tomymaritano@gmail.com>
|
Warning Review limit reached
Next review available in: 15 minutes Limit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?Wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (9)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Settings Browse sent dripnex-vim-mode to GET /plugins/:slug (404). The working spec is dripnex/plugin-vim. Merge the fallback catalog so Vim stays visible, and add a first-party registry row that points at the v1.2.0 tarball. Documents #562 on the research write-up.
tomymaritano
left a comment
There was a problem hiding this comment.
Looked at the #562 slug path, not the research ranking.
Install via repository (dripnex/plugin-vim) + merge-instead-of-replace is the right desktop fix. installSpecFor / mergeFallbackCatalog tests match the packaged repro. First-party API row is the Worker side of the same bug (needs deploy to help live GET /plugins/dripnex-vim-mode).
Nit, not blocking: if the live registry later lists dripnex-vim-mode without repositoryUrl, merge will not add the fallback and Install falls back to the slug again. Keep repositoryUrl on that row.
Still open for #547 (this PR does not claim them): CLI vs packaged userData on Linux/Windows (Dripnex missing from candidates), and CLI install refusing an already-installed pack.
Docs ranking (emacs → footnotes → source task toggle) is the tree-checked one. Fine that emoji/tables dropped. No new packs until vim Install actually works.
Draft + CI still running — not merging yet.
A live dripnex-vim-mode row without repositoryUrl used to skip the fallback merge and installFromSpec fell back to the slug. Overlay dripnex/plugin-vim from the first-party catalog and cover it in tests.
tomymaritano
left a comment
There was a problem hiding this comment.
Nit landed. Live dripnex-vim-mode without repositoryUrl now overlays dripnex/plugin-vim in merge + installSpecFor, and the unit test covers that path. Still waiting on CI; still draft. Remaining #547 (CLI userData) stays out.
) <!-- CURSOR_AGENT_PR_BODY_BEGIN --> ## Summary Packaged users can enable Vim (and mermaid/math) from Settings → Plugins without cloning a repo. Official slugs resolve to GitHub `owner/repo`, Browse keeps fallback cards when the live registry omits them, Updates match id **or** repository, and the CLI writes to the same `Dripnex` userData folder as the packaged app. No marketplace. Official first-party packs only. AuthGate untouched. ## Type of Change - [x] Bug fix - [ ] New feature - [ ] Breaking change - [x] Documentation update ## Related Issues Closes #547 Closes #562 ## What changed 1. **Install spec** — `dripnex-vim-mode` and `dripnex/plugin-vim` both resolve to `dripnex/plugin-vim` (same for mermaid/math). `GET /plugins/:slug` 404 no longer blocks Install. Decision: [`docs/plugins/install-path.md`](docs/plugins/install-path.md). 2. **Browse** — already merged fallback catalog (#563). This PR also lists mermaid/math in `COMMUNITY_CATALOG` so they stay visible if the API drops them. 3. **Updates** — `matchRemoteForInstalled` matches `scan().id` to registry slug **or** the same GitHub repository (and the fallback catalog). 4. **userData (#562 addendum)** — `resolveUserDataRoot` includes packaged `productName` `Dripnex` on Linux/Windows/macOS, prefers a root that already has `dripnex.db` / `plugins/`, and defaults to `Dripnex` so `dripnex-plugin install` lands in the folder the packaged app scans. ## Checklist - [x] I've read [CONTRIBUTING.md](../CONTRIBUTING.md) - [x] Targeted unit tests pass (`storage-core` data-paths, `plugin-cli` installSpec, desktop `githubInstall` + `communityCatalog`) - [x] Typecheck: storage-core, plugin-cli, desktop main + renderer - [ ] Full `pnpm test` / `pnpm build` (not required for this path-only change) - [x] PR targets `develop` branch (not `main`) ## Test plan - [ ] Settings → Plugins → Browse still shows Vim when the registry lists it **and** when it is omitted (fallback merge) - [ ] Install `dripnex-vim-mode` and `dripnex/plugin-vim` both land `dripnex-vim-mode-1.2.0.tar.gz` in packaged userData `plugins/` - [ ] Updates lists vim when a newer registry/repo version exists - [ ] CLI and packaged app resolve the same userData root for productName `Dripnex` (Linux `~/.config/Dripnex`, Windows `%APPDATA%/Dripnex`, macOS `~/Library/Application Support/Dripnex`) - [x] Unit tests: `githubInstall`, `installSpec`, `communityCatalog`, `data-paths` - [ ] No store UI, no clipper/graph/AI-notetaker, no `dripnex/ios` / Psynth / Linear PSY <!-- CURSOR_AGENT_PR_BODY_END --> <div><a href="https://cursor.com/agents/bc-587e59ae-ed45-498d-aa39-a0238536b441?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a> <a href="https://cursor.com/background-agent?bcId=bc-587e59ae-ed45-498d-aa39-a0238536b441&cursor_ref=pr_footer&cursor_cta=open_in_cursor"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a> </div> Co-authored-by: Cursor Agent <cursoragent@cursor.com>
|
🎉 This PR is included in version 0.16.1 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Research-only write-up for official first-party desktop plugins, plus a small verified slug fix for #562. No marketplace, no new install system, no iOS.
Parent context: #547 (vim/math/mermaid install that actually works), #542, #562.
Summary
Adds
docs/plugins/and a pointer fromdocs/PLUGIN_SYSTEM.md.The write-up covers:
plugin-api, scanner, CLI vs Settings, update matching).#562 — slug vs repo vs manifest id
Verified in
dripnex/plugin-vim:scan().iddripnex-vim-modedripnex/plugin-vimGET /plugins/dripnex-vim-mode404BrowseTab used to replace the fallback catalog and call
installFromSpec('dripnex-vim-mode'). That is why Vim vanished from Install/Updates. Workaround on packaged 0.16.0: Other package →dripnex/plugin-vim.Small fix in this PR (not a marketplace):
COMMUNITY_CATALOGinto the live registry list so Vim stays visible.dripnex-vim-modewithoutrepositoryUrl, merge fillsdripnex/plugin-vimandinstallSpecForuses that repo — never the slug.FIRST_PARTY_PACKAGESadds slugdripnex-vim-modewithrepositoryUrlhttps://github.com/dripnex/plugin-vimpointing at the real v1.2.0 tarball.Ranked next official packs (after #547)
dripnex/plugin-emacs) — only missing editor keymap; same shape as vim. No product-shape decision.remark-gfm; pack would add insert/jump, not a second renderer.registerCodeBlockRenderer; lower value because GFM tables already exist.Hunches discarded: tables (already built-in
dripnex-tables), footnotes-as-renderer (preview done), task-list as greenfield (mostly built-in), mermaid/math renderers as new satellites (built-in; existing satellites only insert a fence).Out of scope
Marketplace, clipper, graph, AI-notetaker, wikilinks-as-pack, iOS plugins, extracting built-in mermaid/math/tables (#339–#342 icebox). CLI vs packaged userData remains #547 remainder — not this PR.
Test plan
Docs review plus the small slug-fix unit tests.
docs/plugins/README.mdthendocs/plugins/official-first-party.md— Vim Mode install is broken in packaged 0.16.0 (registry slug, not GitHub repo) #562 table names slug vs repo vs manifest idBrowseTab.tsx,communityCatalog.ts,FIRST_PARTY_PACKAGES)dripnex/plugin-vim, notdripnex-vim-modedripnex-vim-moderow with norepositoryUrlstill installs viadripnex/plugin-vimpnpm --filter @dripnex/api test -- tests/plugins.test.tspnpm --filter @dripnex/desktop exec vitest run src/renderer/pages/settings/sections/plugins/__tests__/communityCatalog.test.tsdripnex/ioschangesType of Change