diff --git a/CHANGELOG.md b/CHANGELOG.md
index d270f783..4a77195e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,10 +1,15 @@
-## [Unreleased]
-
-### Changes
-
-- *No changes*
-
-## [1.2.0] (2026-06-05)
+## [Unreleased]
+
+### Changes
+
+* **Breaking changes:** `plugin-konfeature` переведён на публичную библиотеку [`konfeature-ui`][konfeature-ui]. Собственная реализация экрана, `ViewModel`, диалога редактирования и `JsonConverter` удалены — UI, состояние и хранение переопределений теперь предоставляет `konfeature-ui`. См. [migration guide](docs/migration_guide.md).
+* **Breaking changes:** Удалён `KonfeatureDebugPanelInterceptor`. Вместо него используется `KonfeatureDebugPanelConfig`, который объединяет хранилище переопределений (DataStore) и интерцептор. Создайте конфиг через `KonfeatureDebugPanelConfig.create(context)`, подключите его к `Konfeature` через `applyDebugPanelConfig(config)` и передайте тот же конфиг в `KonfeaturePlugin(konfeature, config)`.
+* **Breaking changes:** Изменена сигнатура конструктора `KonfeaturePlugin`: параметр `debugPanelInterceptor` заменён на `config: KonfeatureDebugPanelConfig`.
+* Изменено поведение переопределения значений: в панели инлайн-переключаются только `Boolean`-тогглы, значения остальных типов отображаются только для чтения.
+* Обновлён каталог версий зависимостей (2026.02.23 → 2026.07.10).
+* Gradle обновлён с 9.1.0 до 9.4.1.
+
+## [1.2.0] (2026-06-05)
### Changes
@@ -139,3 +144,4 @@
* Исправлены мелкие баги.
[migration-guide]: migration_guide.md
+[konfeature-ui]: https://github.com/RedMadRobot/Konfeature
diff --git a/README.md b/README.md
index 7497194c..02209eda 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,9 @@
Библиотека предоставляет встроенную отладочную панель для Android-приложений, предназначенную для использования в debug и QA-сборках.
-
+
[](https://central.sonatype.com/search?namespace=com.redmadrobot.debug)
[][license]
@@ -46,7 +48,7 @@ dependencies {
// Плагин для работы с remote config на основе Konfeature
debugImplementation("com.redmadrobot.debug:plugin-konfeature:${debug_panel_version}")
// Так же необходимо подключить саму библиотеку konfeature
- debugImplementation("com.redmadrobot.konfeature:konfeature:${konfeature_version}")
+ implementation("com.redmadrobot.konfeature:konfeature:${konfeature_version}")
// Плагин для отображения информации о приложении
debugImplementation("com.redmadrobot.debug:plugin-about-app:${debug_panel_version}")
@@ -97,6 +99,9 @@ fun openDebugPanel() {
## Работа с плагинами
### ServersPlugin
+
+
+
Используется для работы с тестовыми серверами
Доступна возможность задать список предустановленных серверов
@@ -168,29 +173,35 @@ val selectedServer = getPlugin().getSelectedServer()
### Konfeature Plugin
+
+
В основе плагина лежит библиотека [Konfeature][konfeature], которая позволяет:
- отображать конфигурации feature, используемые в Konfeature
- просматривать источник каждого элемента конфигурации (Default, Firebase, AppGallery и др.)
-- переопределять значения элементов конфигурации с типами Boolean, String, Long, Double
+- переопределять значения тогглов типа `Boolean` прямо в панели (значения остальных типов отображаются только для чтения)
+
+Экран, список фич и хранение переопределений (DataStore) предоставляет библиотека [`konfeature-ui`][konfeature]. Плагин лишь встраивает её экран в дебаг-панель. Переопределённые значения сохраняются между перезапусками приложения.
-Для подключения плагина необходимо передать объект класса `KonfeatureDebugPanelInterceptor` и экземпляр `Konfeature`
+Для подключения нужно создать `KonfeatureDebugPanelConfig`, подключить его к экземпляру `Konfeature` через `applyDebugPanelConfig(...)` и передать тот же самый конфиг в `KonfeaturePlugin`:
```kotlin
-val debugPanelInterceptor = KonfeatureDebugPanelInterceptor(context)
+// создаётся один раз на старте приложения; create() — suspend-функция
+val config = KonfeatureDebugPanelConfig.create(context)
val konfeatureInstance = konfeature {
- if (isDebug) {
- addInterceptor(debugPanelInterceptor)
- }
+ register(MyFeatureConfig())
+ applyDebugPanelConfig(config)
}
KonfeaturePlugin(
- debugPanelInterceptor = debugPanelInterceptor,
konfeature = konfeatureInstance,
+ config = config,
)
```
+> Важно: в `KonfeaturePlugin` необходимо передать тот же самый `config`, который был подключён к `Konfeature` через `applyDebugPanelConfig(...)`. Если конфиг не был подключён, конструктор плагина упадёт с ошибкой, так как панель показывала бы значения, которые не может переопределить.
+
В builder Konfeature доступны следующие настройки:
- добавление конфигурации конкретной фичи — `register(FeatureConfigN())`
@@ -199,6 +210,8 @@ KonfeaturePlugin(
### AboutApp Plugin
+
+
Предназначен для отображения информации о приложении: версии, номера сборки и других произвольных данных.
Для подключения плагина необходимо передать список объектов `AboutAppInfo`, содержащий хотя бы один элемент:
diff --git a/docs/migration_guide.md b/docs/migration_guide.md
index e86c56a1..ded76ca0 100644
--- a/docs/migration_guide.md
+++ b/docs/migration_guide.md
@@ -1,5 +1,46 @@
# Миграция
+## Миграция на версию 1.3.0
+
+### Переход plugin-konfeature на библиотеку konfeature-ui
+
+`plugin-konfeature` переведён на публичную библиотеку [`konfeature-ui`][konfeature]: экран, список фич и хранение переопределений (DataStore) теперь предоставляет она. Собственный `KonfeatureDebugPanelInterceptor`, экран, `ViewModel` и диалог редактирования удалены.
+
+Вместо `KonfeatureDebugPanelInterceptor` используется `KonfeatureDebugPanelConfig` — он объединяет хранилище переопределений и интерцептор, гарантируя, что панель и `Konfeature` работают с одним и тем же store.
+
+> Миграция хранимых значений не предусмотрена: ранее переопределённые значения после обновления сбрасываются к значениям из источников.
+
+#### Инициализация
+
+`KonfeatureDebugPanelConfig.create(...)` — `suspend`-функция, вызовите её на старте приложения из подходящего scope. Тот же `config` необходимо подключить к `Konfeature` через `applyDebugPanelConfig(...)` и передать в `KonfeaturePlugin`.
+
+```diff
+- val debugPanelInterceptor = KonfeatureDebugPanelInterceptor(context)
+- val konfeatureInstance = konfeature {
+- addInterceptor(debugPanelInterceptor)
+- }
+- KonfeaturePlugin(
+- debugPanelInterceptor = debugPanelInterceptor,
+- konfeature = konfeatureInstance,
+- )
+
++ val config = KonfeatureDebugPanelConfig.create(context)
++ val konfeatureInstance = konfeature {
++ register(MyFeatureConfig())
++ applyDebugPanelConfig(config)
++ }
++ KonfeaturePlugin(
++ konfeature = konfeatureInstance,
++ config = config,
++ )
+```
+
+> Конструктор `KonfeaturePlugin` упадёт с ошибкой, если переданный `config` не был подключён к `Konfeature` через `applyDebugPanelConfig(...)`.
+
+#### Переопределение значений
+
+Инлайн-переопределение в панели теперь доступно только для тогглов типа `Boolean`. Значения остальных типов отображаются только для чтения.
+
## Миграция на версию 1.0.0
### Миграция с FlipperPlugin на KonfeaturePlugin
@@ -255,4 +296,5 @@ VariablePlugin позволял изменять значения перемен
Планируется развивать и улучшать KonfeaturePlugin, так что следите за обновлениями.
-[readme]: /README.md
\ No newline at end of file
+[readme]: /README.md
+[konfeature]: https://github.com/RedMadRobot/Konfeature
\ No newline at end of file