{"version":"2.1.238","anchor":"plugin-installs-distinguish-what-you-asked-for-from-what-was","canonical_anchor":"plugin-installs-distinguish-what-you-asked-for-from-what-was","heading":"Plugin installs distinguish what you asked for from what was pulled in","tier":"notice","area":"Plugins","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.238\/e\/plugin-installs-distinguish-what-you-asked-for-from-what-was","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.238","markdown":"### Plugin installs distinguish what you asked for from what was pulled in\n\nPlugin installs now distinguish what you asked for from dependencies, and explain pin blocks.\n\n**What**\n\nPlugin installs now carry a flag saying whether you asked for the plugin directly or it came in as a dependency, along with consent state passed down from the caller. Updates blocked by a version pin now report the reason as `pinner_blocked` rather than failing silently, and a plugin that cannot be found raises a specific error instead of quietly becoming nothing.\n\n**Details**\n\n- Callers pass `explicitInstall` and `consented`; installs done to satisfy a dependency are marked as not explicit.\n- Two new in-memory caches were added to plugin state for marketplace helper lookups and directory-scoped marketplaces.\n\n**Evidence**\n\n`skipReason: \"pinner_blocked\",`\n\n- Area: Plugins\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 2\/5"}