Skip to content

feat: allow removing built-in marketplace#1230

Merged
lewis617 merged 1 commit into
mainfrom
worktree-long-short-storm
Jun 16, 2026
Merged

feat: allow removing built-in marketplace#1230
lewis617 merged 1 commit into
mainfrom
worktree-long-short-storm

Conversation

@lewis617

Copy link
Copy Markdown
Collaborator

Summary

Allow users to permanently delete the built-in wave-plugins-official marketplace, matching Claude Code's non-hardcoded list pattern.

Changes

MarketplaceService.ts

  • removeMarketplace() — removed the throw "Cannot remove built-in marketplace"; when scope is "builtin", skips removeMarketplaceFromScope() but still calls removeFromCache()
  • listMarketplaces() — removed hardcoded result.push(BUILTIN_MARKETPLACE) and both if (name === BUILTIN_MARKETPLACE.name) continue; guards; builtin now appears naturally from cache if present
  • getKnownMarketplaces() — returns empty list when no cache file, no longer injects builtin
  • getMarketplaceDeclaringSource() — moved builtin name check after scope checks (fallback to "builtin" only if not in any scope's settings)

Test Updates

  • Replaced "should throw when trying to remove builtin marketplace" with "should remove builtin marketplace from cache"
  • Updated tests that depended on hardcoded builtin in listMarketplaces()

Behavior

  • Built-in marketplace can be permanently deleted
  • No auto-restore on startup
  • User can manually restore via wave plugin marketplace add netease-lcap/wave-plugins-official
  • UI layer already has "Remove marketplace" option, no changes needed

Testing

  • All 3080 agent-sdk tests pass
  • E2E verified: list → remove → list (empty) → verify cache

Remove the hardcoded protection that prevented deletion of the
wave-plugins-official marketplace. The built-in marketplace is now
treated like any other cache entry:

- removeMarketplace() no longer throws for builtin scope
- listMarketplaces() no longer hardcodes builtin injection
- getKnownMarketplaces() returns empty list when no cache exists
- getMarketplaceDeclaringSource() checks scopes before fallback to builtin

Deletion is permanent — no auto-restore on startup. Users can manually
restore via wave plugin marketplace add netease-lcap/wave-plugins-official.
@lewis617 lewis617 merged commit 5f4008a into main Jun 16, 2026
1 check passed
@lewis617 lewis617 deleted the worktree-long-short-storm branch June 16, 2026 02:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant