Follow-up from PR #638 review (#638 (comment)).
With accelerator-keyed bundle dirs (bundles/<id>/<version>/<accelerator>/), uninstalling the active variant removes only that variant's dir; previously-extracted sibling variants stay on disk as a reinstall cache (the installer's bundle_dir.exists() fast-path reuses them). remove_dir_if_empty reaps the <version>/<id> dirs once the last variant is gone, so there is no unbounded leak — but operators may be surprised that uninstall leaves extracted-but-inactive variant dirs behind.
Proposal: keep cache-by-default, add an opt-in prune (e.g. ?prune_variants=true on the uninstall endpoint or a config knob) that removes all variants of the plugin's version on uninstall.
Follow-up from PR #638 review (#638 (comment)).
With accelerator-keyed bundle dirs (
bundles/<id>/<version>/<accelerator>/), uninstalling the active variant removes only that variant's dir; previously-extracted sibling variants stay on disk as a reinstall cache (the installer'sbundle_dir.exists()fast-path reuses them).remove_dir_if_emptyreaps the<version>/<id>dirs once the last variant is gone, so there is no unbounded leak — but operators may be surprised that uninstall leaves extracted-but-inactive variant dirs behind.Proposal: keep cache-by-default, add an opt-in prune (e.g.
?prune_variants=trueon the uninstall endpoint or a config knob) that removes all variants of the plugin's version on uninstall.