Clear stale enabled state during plugin loader pruning

The plugin loader already pruned stale registry entries, but stale enabled state
could linger in settings.json after bundled or installed plugin discovery
cleaned up missing installs. This change removes those orphaned enabled flags
when stale registry entries are dropped so loader-managed state stays coherent.

Constraint: Commit only plugin loader/registry code in this pass
Rejected: Leave stale enabled flags in settings.json | state drift would survive loader self-healing
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Any future loader-side pruning should remove matching enabled state in the same code path
Tested: cargo fmt --all; cargo test -p plugins
Not-tested: Interactive CLI /plugins flows against manually edited settings.json
This commit is contained in:
Yeachan-Heo
2026-04-01 08:07:14 +00:00
parent 7f33569f3a
commit 0755a36811

View File

@@ -2570,6 +2570,9 @@ mod tests {
},
);
manager.store_registry(&registry).expect("store registry");
manager
.write_enabled_state("stale@bundled", Some(true))
.expect("seed bundled enabled state");
let installed = manager
.list_installed_plugins()
@@ -2627,6 +2630,9 @@ mod tests {
},
);
manager.store_registry(&registry).expect("store registry");
manager
.write_enabled_state("stale-external@external", Some(true))
.expect("seed stale external enabled state");
let installed = manager
.list_installed_plugins()