[BUG] Desktop plugin browser: personal marketplace git URL silently ignores #branch fragment — displays it, syncs default branch
Summary
The desktop app's plugin browser accepts a git URL with a branch fragment (https://github.com/<owner>/<repo>.git#my-branch) when adding a personal marketplace, displays the fragment as part of the marketplace name — and then silently ignores it, syncing the repository's default branch instead.
Environment
- Claude Desktop 1.20186.0, macOS 26.5.1
- Personal marketplace added via Cowork → Customize → Browse Plugins → Personal → + → git URL
Steps to reproduce
- Have a repo whose default branch (
master) and a feature branch (my-branch) point at different commits. - In the desktop plugin browser, add a personal marketplace with the URL
https://github.com/<owner>/<repo>.git#my-branch. - Open the marketplace's ⋯ menu and note the Synced commit.
Observed
- The marketplace tile is named
<repo>.git#my-branch— the fragment is retained in the display name. - Synced commit shows the default branch's tip, not the branch's. Verified by comparing the displayed short SHA against
git rev-parse origin/master(match) andgit rev-parse origin/my-branch(no match; the commit isn't on the branch at all). - "Check for updates" continues to sync the default branch.
Expected
Either honor the #branch fragment (Claude Code CLI's claude plugin marketplace add <url>#<branch> does exactly this), or reject the URL with a clear "branch pinning not supported" error. Accepting it, displaying it, and syncing something else is the worst combination — it looks pinned while serving different code, which is nasty for release-candidate testing and has supply-chain-ish implications (you believe you're running reviewed branch X; you're running whatever lands on the default branch).
Related
- #76287 — marketplace clone wedged after a default-branch rename (adjacent default-branch coupling).
- #73907 — personal marketplace "Update" reports latest while the repo is versions ahead (adjacent sync-trust issue).