From 566b6629bddfa266bec1ae495c016d5c1177c1b2 Mon Sep 17 00:00:00 2001 From: CalamitousFelicitousness Date: Mon, 25 May 2026 02:05:37 +0100 Subject: [PATCH] fix(styles): key style dict by prefixed name to prevent nested collisions Styles in nested subfolders that shared a base JSON name were being overwritten because load_style keyed self.styles by the raw style["name"] while the Style object stored the prefixed name. The extra networks page iterates dict keys, so only one card per name surfaced. Key the dict by the same prefixed name, and warn when a true duplicate (same prefix and same name) is still detected. --- modules/styles.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/styles.py b/modules/styles.py index a9d048302..930ff6a41 100644 --- a/modules/styles.py +++ b/modules/styles.py @@ -331,7 +331,11 @@ class StyleDatabase: filename=fn, mtime=os.path.getmtime(fn), ) - self.styles[style["name"]] = new_style + # key by the prefixed name so styles with the same base name in different + # subfolders do not collide and overwrite each other + if name in self.styles: + log.warning(f'Style duplicate name: name="{name}" file="{fn}" existing="{self.styles[name].filename}"') + self.styles[name] = new_style except Exception as e: log.error(f'Failed to load style: file="{fn}" error={e}') return new_style