{"version":"2.1.269","anchor":"installed-pluginsjson-sync-now-checks-policy-before-treatin","canonical_anchor":"installed-pluginsjson-sync-now-checks-policy-before-treatin","heading":"installed_plugins.json sync now checks policy before treating plugins as already-installed","tier":"notice","area":"Plugins","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.269\/e\/installed-pluginsjson-sync-now-checks-policy-before-treatin","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.269","markdown":"### installed_plugins.json sync now checks policy before treating plugins as already-installed\n\nPlugin settings migration now checks policy before assuming an already-installed plugin can be skipped\n\n**What**\n\nWhen migrating plugin settings, Claude Code previously took a fast path that skipped migration entirely if all plugins already appeared to exist. Now it also cross-checks each managed-scope entry against policy rules (such as managed MCP or marketplace source restrictions). If a plugin is blocked by policy, Claude Code no longer writes a record for it and logs a short message: \"Skipping [name]: blocked by policy, not writing a record.\"\n\n**Why**\n\nThis prevents a plugin that policy would otherwise disallow from being treated as validly installed just because a record already existed.\n\n- Area: Plugins\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 2\/5"}