diff --git a/package.json b/package.json index a4edf2f0..a3cd1a5b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "impro", - "version": "0.14.140", + "version": "0.14.141", "type": "module", "scripts": { "start": "rm -rf build && NODE_ENV=development eleventy --serve", diff --git a/src/js/plugins/pluginService.js b/src/js/plugins/pluginService.js index b083148e..50bee98c 100644 --- a/src/js/plugins/pluginService.js +++ b/src/js/plugins/pluginService.js @@ -333,12 +333,6 @@ export class PluginService extends ReactiveStore { showToast(`Failed to load plugin(s): ${failedPluginIds.join(", ")}`, { style: "error", }); - // Disable plugins that failed to load - await Promise.all( - failedPluginIds.map((pluginId) => - this.prefManager.setPluginDisabled(pluginId), - ), - ); } // Reconcile against all installed plugins (not just enabled) so disabled // plugins keep their cached assets on re-enable diff --git a/tests/unit/specs/plugins/pluginService.test.js b/tests/unit/specs/plugins/pluginService.test.js index 6192ab4d..1b71ae0c 100644 --- a/tests/unit/specs/plugins/pluginService.test.js +++ b/tests/unit/specs/plugins/pluginService.test.js @@ -468,7 +468,7 @@ t.describe("loadEnabledPlugins", (it) => { ); }); - it("disables plugins reported as errored by the bridge", async () => { + it("keeps plugins enabled when the bridge reports they errored", async () => { const { service, state } = makeService(); state.installedPlugins = [ { id: "a", version: "1.0.0", repo: "ow/a", enabled: true }, @@ -481,7 +481,7 @@ t.describe("loadEnabledPlugins", (it) => { await service.loadEnabledPlugins(); assertEquals( state.installedPlugins.find((entry) => entry.id === "b").enabled, - false, + true, ); assertEquals( state.installedPlugins.find((entry) => entry.id === "a").enabled,