From 233b9da95a298989133d29740dae5d0f3f5ed3b2 Mon Sep 17 00:00:00 2001 From: ChuckBuilds Date: Thu, 26 Mar 2026 10:57:20 -0400 Subject: [PATCH] fix: skip backup dirs in plugin discovery and fix HTMX event syntax MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - plugin_manager.py: skip directories containing '.standalone-backup-' during discovery scan, matching state_reconciliation.py behavior and preventing backup manifests from overwriting live plugin entries - base.html: fix hx-on::htmx:response-error → hx-on::response-error (the :: shorthand already adds the htmx: prefix, so the original syntax resolved to htmx:htmx:response-error making the handler dead) Skipped findings: - web-ui-info in _SYSTEM_CONFIG_KEYS: it's a real plugin with manifest.json and config entry, not a system key - store_manager config key migration: valid feature request for handling ledmatrix- prefix rename, but new functionality outside this PR scope Co-Authored-By: Claude Opus 4.6 (1M context) --- src/plugin_system/plugin_manager.py | 3 +++ web_interface/templates/v3/base.html | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/plugin_system/plugin_manager.py b/src/plugin_system/plugin_manager.py index f0518399..406f8d69 100644 --- a/src/plugin_system/plugin_manager.py +++ b/src/plugin_system/plugin_manager.py @@ -119,6 +119,9 @@ class PluginManager: for item in directory.iterdir(): if not item.is_dir(): continue + # Skip backup directories so they don't overwrite live entries + if '.standalone-backup-' in item.name: + continue manifest_path = item / "manifest.json" if manifest_path.exists(): diff --git a/web_interface/templates/v3/base.html b/web_interface/templates/v3/base.html index f4a588f7..557f82c6 100644 --- a/web_interface/templates/v3/base.html +++ b/web_interface/templates/v3/base.html @@ -1169,7 +1169,7 @@
+ hx-on::response-error="loadPluginsDirect()">