- addMarketplace reads registry before fetching; if the fetched catalog name collides with an existing entry, cleans up the clone and throws before any cache corruption occurs - installPlugin rejects relative string sources when the marketplace was added via URL (only marketplace.json is cached, not the plugin tree)