mirror of
https://github.com/penpot/penpot.git
synced 2026-11-12 13:00:37 +00:00
Plugins with global scope or a management permission (allow:global, manage:projects, manage:teams, manage:delete) keep running outside a file and can drive the management API. That feature is still in progress, so only the bundled MCP plugin and plugins served from localhost, 127.0.0.1 or [::1] get it. The host check ignores letter case and a trailing dot. The check runs at three points: - parse-manifest throws global-not-allowed, so the plugin manager and the dashboard install link refuse remote global plugins with a specific message. Opening an installed plugin fetches its manifest again, so plugins stored before this change are refused too. - start-plugin! and load-plugin! refuse to run such a plugin and warn the user; this also covers bundled plugins without a URL. - has-permission? withholds the global permissions from stored remote plugins, so the management API rejects them. AI-assisted-by: claude-opus-5-5