DraggyДокументация
Русский
draggy.org Скачать

ДокументацияСправка

Сборка и архитектура

Запуск из исходников, структура кода и две границы.

Запуск из исходного кода#

cd win
npm install
npm run electron:dev

Vite и Electron работают вместе с горячей перезагрузкой на порту 5173. Если устаревший процесс Vite занимает порт, следующий запуск завершится ошибкой, поэтому сначала остановите его.

npm run check

Проверка типов, линтинг и тесты. CI запускает ту же команду. npm run electron:build записывает установщик в dist-electron/.

Структура#

Папка Содержит
core/ Общее ядро на Rust: состояние сессий, политику URL, маршрутизацию MCP, провайдеры и парсер документов
win/ Приложение Windows на Electron (electron/ для главного процесса и src/ для фронтенда на React)
macos/ Нативное приложение для macOS на SwiftUI
linux/ Нативное приложение для Linux на GTK 4 и libadwaita
shared/ Общие фикстуры, списки хостов и иконки приложения

Две границы#

electron/preload.cjs отвечает за безопасность. У рендерера нет доступа к Node, и он обращается к файловой системе, сети и базе данных только через то, что там открыто. Добавить функцию — осознанное решение.

Вторая граница — разделение сессий. Окно самого Draggy работает под строгой CSP, а каждая внешняя страница работает в отдельном разделе без нашей политики. Если их объединить, наша политика применится к чужим сайтам и сломает их.

Журналы и диагностика#

Draggy хранит два ротируемых журнала в папке данных приложения (logs/):

  • app.log: события жизненного цикла, управление моделями и ошибки. Запросы и ответы сводятся к хешам и длинам, а секреты удаляются.
  • debug.log: более подробная трассировка. Потоковый вывод записывается по длине, а не по тексту.

Журналы ротируются при 5 МиБ и хранят три архива. Чтобы их открыть, выберите Settings → Diagnostics → Open log folder, или задайте LOG_LEVEL=DEBUG либо DEBUG_LOG_LEVEL=DEBUG для самых подробных записей. Для отчёта об ошибке используйте Settings → Diagnostics → Export diagnostics.

Движок вывода#

Draggy запускает локальные модели встроенным движком:

  • GGUF (llama.cpp): запускает файлы моделей .gguf в скрытом дочернем процессе llama-server на порту 11435. На macOS используется Metal. В Windows сначала пробуется CUDA для карт NVIDIA, затем Vulkan, затем CPU. В Linux порядок тот же. Карты AMD используют Vulkan, если вы не включите сборку ROCm в Settings → Models.

Остальное описано в CONTRIBUTING.md, а сообщить об уязвимости можно по инструкции в SECURITY.md.

Предложить правку