Parent
Part of #414
Problem
Folder watcher debounce → loadAvailableThemes → full loadThemeDefinitions + LocalExtensionRegistry.reload() + read/parse every theme JSON + FNV hash of full content. Parsed theme LRU exists for loadTheme, not for definition scanning.
Evidence
lib/core/theme/theme_registry_service.dart
lib/core/theme/theme_folder_watcher.dart
lib/core/theme/theme_controller.dart
Acceptance
Suggested fix
Incremental scan by mtime/contentHash; keep definition index; avoid full extension reload for theme-only events.
Parent
Part of #414
Problem
Folder watcher debounce →
loadAvailableThemes→ fullloadThemeDefinitions+LocalExtensionRegistry.reload()+ read/parse every theme JSON + FNV hash of full content. Parsed theme LRU exists forloadTheme, not for definition scanning.Evidence
lib/core/theme/theme_registry_service.dartlib/core/theme/theme_folder_watcher.dartlib/core/theme/theme_controller.dartAcceptance
Suggested fix
Incremental scan by mtime/contentHash; keep definition index; avoid full extension reload for theme-only events.