fix(install): use unsetPath for plugin entry removal
- Use openclaw config unset instead of get-modify-set - Avoids triggering full plugins config validation - Handles both added and replaced entries uniformly
This commit is contained in:
@@ -280,11 +280,8 @@ else {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
// ── Handle ADDED entries: remove them ─────────────────────────────────
|
// ── Handle ADDED entries: remove them ─────────────────────────────────
|
||||||
if (delta.added[PATH_PLUGIN_ENTRY] !== undefined) {
|
if (delta.added[PATH_PLUGIN_ENTRY] !== undefined || delta.replaced[PATH_PLUGIN_ENTRY] !== undefined) {
|
||||||
const plugins = getJson("plugins") || {};
|
unsetPath(PATH_PLUGIN_ENTRY);
|
||||||
plugins.entries = plugins.entries || {};
|
|
||||||
delete plugins.entries.dirigent;
|
|
||||||
setJson("plugins", plugins);
|
|
||||||
console.log("[dirigent] removed plugins.entries.dirigent");
|
console.log("[dirigent] removed plugins.entries.dirigent");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -318,16 +315,7 @@ else {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ── Handle REPLACED entries: for uninstall, we still delete (not restore)
|
// ── Handle REPLACED provider: restore old value ───────────────────────
|
||||||
// because the user wants to remove the plugin, not restore the old broken config
|
|
||||||
if (delta.replaced[PATH_PLUGIN_ENTRY] !== undefined) {
|
|
||||||
const plugins = getJson("plugins") || {};
|
|
||||||
plugins.entries = plugins.entries || {};
|
|
||||||
delete plugins.entries.dirigent;
|
|
||||||
setJson("plugins", plugins);
|
|
||||||
console.log("[dirigent] removed plugins.entries.dirigent (had replaced previous config)");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (delta.replaced[PATH_PROVIDER_ENTRY] !== undefined) {
|
if (delta.replaced[PATH_PROVIDER_ENTRY] !== undefined) {
|
||||||
const providers = getJson(PATH_PROVIDERS) || {};
|
const providers = getJson(PATH_PROVIDERS) || {};
|
||||||
providers[NO_REPLY_PROVIDER_ID] = delta.replaced[PATH_PROVIDER_ENTRY];
|
providers[NO_REPLY_PROVIDER_ID] = delta.replaced[PATH_PROVIDER_ENTRY];
|
||||||
|
|||||||
Reference in New Issue
Block a user