Skip to content

enhancement(marketplace): driver installation writes manifest without code execution or runtime integration #269

Description

@ZhuchkaTriplesix

Summary / Описание проблемы

В окне управления расширениями (Edit -> Extensions...) можно просматривать и устанавливать расширения, в том числе сторонние драйверы баз данных (тип ExtensionType.databaseDriver, например ClickHouse Driver или Redis Driver).
Однако в настоящее время установка расширения через MockMarketplaceRepository сводится к имитации прогресса скачивания (for (int i = 1; i <= 10; i++) ...) и сохранению на локальный диск только файла manifest.json. Реальный исполняемый код расширений (указанный как main: 'index.js' или плагин) не загружается, в Dart/Node не исполняется, а архитектура динамического подключения внешних драйверов отсутствует — все драйверы (PostgreSQL, MySQL, SQLite, Redis, MongoDB) жёстко скомпилированы внутри приложения на этапе сборки.

Scope & Component

  • Scope: desktop
  • Component: Marketplace / Extensions
  • Kind: enhancement
  • Severity: medium
  • Detected in version: dev / 0.5.0

Местоположение в коде

  • Файлы:
    • lib/core/market/marketplace_repository.dart (строки ~174-200, метод install)
    • lib/features/extensions/presentation/pages/extension_manager_dialog.dart (строки ~65-87)

Шаги воспроизведения

  1. Открыть Edit -> Extensions....
  2. Найти расширение с типом Database Driver (например, ClickHouse Driver или Redis Driver).
  3. Нажать кнопку Install.
  4. Проверить директорию установленных расширений (~/.gemini/antigravity-cli/... или ~/.config/querya/extensions/).
  5. Фактический результат: Создаётся папка с единственным файлом manifest.json. Никакого функционала драйвер в клиент не добавляет.
  6. Ожидаемый результат: Реализовать контракт динамической загрузки драйверов/плагинов (через FFI, изоляты или IPC/Node-сайдкар) либо четко пометить маркетплейс драйверов как Mock / Preview, чтобы пользователь понимал текущие ограничения.

Acceptance Criteria / Критерии приемки

  • Спроектировать и задокументировать механизм подключения внешних плагинов-драйверов (или связать с Marketplace API из Obsidian дорожной карты).
  • Заменить MockMarketplaceRepository на реальный клиент Marketplace API (или явно отделить установку тем от драйверов, где темы работают полноценно через theme.json, а драйверы имеют статус Preview).
  • Добавить обработку ошибок установки при отсутствии реального бинарного файла драйвера в архиве расширения.

Metadata

Metadata

Labels

coreCore library logic and servicesenhancementNew feature or requestmarketplaceExtensions marketplace, ExtensionManifest

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions