feat(release): add make package-desktop for claude.ai desktop plugin upload - #149
Conversation
The Claude desktop app installs plugins from a claude.ai marketplace, which can only sync from git. This repo is intentionally non-installable from git (npm-only: the vendored Reflexio runtime and marketplace manifest are gitignored), so the desktop app cannot track npm releases. Add scripts/build-desktop-plugin.sh and a package-desktop make target that build an uploadable plugin zip from the npm tarball's vetted file set, plus a DEVELOPER.md release-flow section documenting the manual upload path.
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 33 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
Comment |
What
Adds a one-command, leak-proof way to update the Claude desktop app to a new claude-smart release.
scripts/build-desktop-plugin.sh— builds an uploadable plugin.zipfrom the npm tarball's vetted file set, so it matches exactly what npm ships (no.venv/node_modules/ build-cache leakage). Prints the artifact path on stdout, instructions on stderr. Flags:--skip-build(reuse newest existing tarball),--output PATH. Self-checks that the manifest is at the zip root and no runtime caches slipped in.make package-desktop— depends onpackage(fresh tarball), then runs the script →dist/claude-smart-desktop-<version>.zip. Added to.PHONYandmake help.DEVELOPER.md— new "Desktop app (claude.ai) — manual plugin upload" section under Release flow, plus a pre-release checklist bullet.Why
The Claude desktop app (Cowork / "local agent mode") installs plugins from a claude.ai marketplace, and a marketplace can only sync from git. This repo is deliberately non-installable from git — npm-only distribution, with the vendored Reflexio runtime (
plugin/vendor/reflexio) and the marketplace manifest gitignored and generated at pack time. So the desktop app cannot track npm releases automatically; updating it is a manual Upload plugin of a built bundle. Producing that bundle by hand is error-prone (zippingplugin/in place sweeps in.venv+node_modules+.next, ballooning to hundreds of MB). This makes it a single, correct command.Testing
make package-desktopwiring verified; the script produces a ~2.6 MB zip with.claude-plugin/plugin.jsonat the archive root, the Reflexio runtime vendored in, and no.venv/node_modules.--help,--skip-build, and--outputexercised;make helplists the new target.dist/; no new ignore rules needed.