В методе ThemeRegistryService._migrateLegacyThemesToExtensions нет проверки на коллизии definition.id с уже существующими расширениями (в отличие от importThemeFile, где добавляется суффикс -2).
Если у пользователя в старой папке лежат две разные темы с одинаковым внутренним id, они обе попадут в разные папки (т.к. slug имени отличается), но получат одинаковый manifest.id.
Это приведет к дублированию ID в _availableThemes, и пользователь не сможет выбрать вторую тему. Это редкий edge case (т.к. миграция разовая), но логику разрешения конфликтов ID желательно переиспользовать.
В методе
ThemeRegistryService._migrateLegacyThemesToExtensionsнет проверки на коллизииdefinition.idс уже существующими расширениями (в отличие отimportThemeFile, где добавляется суффикс-2).Если у пользователя в старой папке лежат две разные темы с одинаковым внутренним
id, они обе попадут в разные папки (т.к. slug имени отличается), но получат одинаковыйmanifest.id.Это приведет к дублированию ID в
_availableThemes, и пользователь не сможет выбрать вторую тему. Это редкий edge case (т.к. миграция разовая), но логику разрешения конфликтов ID желательно переиспользовать.