diff --git a/system/src/Grav/Common/Service/ConfigServiceProvider.php b/system/src/Grav/Common/Service/ConfigServiceProvider.php index 2e17b4cef..749222eae 100644 --- a/system/src/Grav/Common/Service/ConfigServiceProvider.php +++ b/system/src/Grav/Common/Service/ConfigServiceProvider.php @@ -322,6 +322,13 @@ class ConfigServiceProvider implements ServiceProviderInterface foreach ($basePaths as $path) { if (is_dir($path)) { $directories[$path] = filemtime($path); + // Also track config subdirectories for granular invalidation (e.g., plugins/, themes/) + $iterator = new DirectoryIterator($path); + foreach ($iterator as $dir) { + if ($dir->isDir() && !$dir->isDot()) { + $directories[$dir->getPathname()] = $dir->getMTime(); + } + } } } } elseif ($type === 'blueprints') {