{"version":"2.1.248","anchor":"plugin-sync-cleans-up-per-plugin-group-instead-of-one-global","canonical_anchor":"plugin-sync-cleans-up-per-plugin-group-instead-of-one-global","heading":"Plugin sync cleans up per plugin group instead of one global directory","tier":"notice","area":"Plugins","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.248\/e\/plugin-sync-cleans-up-per-plugin-group-instead-of-one-global","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.248","markdown":"### Plugin sync cleans up per plugin group instead of one global directory\n\nPlugin sync prunes per group and trashes stray directories under the plugins root.\n\n**What**\n\nPlugin synchronisation now resolves a group for the session, walks the directories belonging to it, and prunes each separately. Anything under the plugins root that is neither a recognised group nor a known file is moved to the trash as a stray. New events report the outcomes: `plugins_sync_bucket_unresolved`, `plugins_sync_stray_entry_trashed`, `plugins_sync_orphan_dir_deferred` and `plugins_sync_deferred_removals_completed` with `moved` and `retained` counts.\n\n**Details**\n\n- In some conditions an orphaned plugin directory is recorded as stale and removed by a later pass instead of immediately; the condition that triggers this deferral is decided by an internal check that the build does not spell out.\n\n**Evidence**\n\n`plugins_sync_deferred_removals_completed`\n\n- Area: Plugins\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 3\/5"}