Compare commits

...

2 Commits

Author SHA1 Message Date
zhi
cd0ce6a910 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
2026-03-03 18:23:01 +00:00
zhi
a177150554 fix(install): uninstall always deletes plugin entry
- For uninstall, always delete plugins.entries.dirigent
- Don't try to restore old config (which may fail validation due to missing required fields)
- Provider restoration still works (replaced providers are restored)
2026-03-03 18:20:48 +00:00

View File

@@ -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,15 +315,7 @@ else {
} }
} }
// ── Handle REPLACED entries: restore old value ─────────────────────── // ── Handle REPLACED provider: restore old value ───────────────────────
if (delta.replaced[PATH_PLUGIN_ENTRY] !== undefined) {
const plugins = getJson("plugins") || {};
plugins.entries = plugins.entries || {};
plugins.entries.dirigent = delta.replaced[PATH_PLUGIN_ENTRY];
setJson("plugins", plugins);
console.log("[dirigent] restored previous plugins.entries.dirigent");
}
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];