Draggy文档
中文
draggy.org 下载

文档参考

构建与架构

从源码运行、代码的布局,以及两条边界。

从源码运行#

cd win
npm install
npm run electron:dev

Vite 和 Electron 一起跑,带热重载,端口 5173。如果残留的 Vite 进程占着这个端口,下次启动就会失败,所以先把它结束掉。

npm run check

类型检查、lint 和测试。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 MiB 时自动滚动,保留 3 份历史归档。要查看日志,请打开 设置 → 诊断 → 打开日志文件夹,或设置 LOG_LEVEL=DEBUG 或 DEBUG_LOG_LEVEL=DEBUG 获得最详细的输出。提交错误报告时,请使用 设置 → 诊断 → 导出诊断信息。

推理引擎#

Draggy 用内置引擎运行本地模型:

  • GGUF (llama.cpp):在端口 11435 上的后台隐藏 llama-server 子进程里 运行 .gguf 模型文件。macOS 上用 Metal。在 Windows 上,NVIDIA 显卡先试 CUDA,然后是 Vulkan,最后是 CPU。Linux 的顺序相同。AMD 显卡使用 Vulkan,除非你在设置 → 模型中打开 ROCm 版本。

CONTRIBUTING.md 里有其余的内容,而 SECURITY.md 讲的是怎么报告安全漏洞。

建议修改