
Thunderbolt社区参与指南如何向Mozilla资助的开源AI客户端提交PR【免费下载链接】thunderboltAI You Control: Choose your models. Own your data. Eliminate vendor lock-in.项目地址: https://gitcode.com/GitHub_Trending/thund/thunderboltThunderbolt是一个由 Mozilla 资助grant的开源、跨平台 AI 客户端你可以自由选择模型、完全掌控自己的数据并彻底摆脱供应商锁定AI You Control。它支持 Web、macOS、Windows、Linux、iOS 与 Android可以完全自托管在本地服务器上采用 Mozilla Public License 2.0 许可证。无论你是第一次接触开源协作的新手还是想体验一个真实生产级项目的完整 CI/CD 流程这份指南都能帮你从克隆仓库一路走到提交第一个 PR。为什么值得参与 Thunderbolt 社区Thunderbolt 由 Mozilla 旗下实体 MZLA Technologies 开发通过 Mozilla 的资助计划支持详见 docs/faq.md 中How is Thunderbolt funded?。它目前正处于活跃开发期、安全审计和面向企业生产的准备阶段官方明确表示欢迎所有人的贡献。对新手来说这个仓库有几个很友好的地方文档完备快速上手、测试规范、架构说明一应俱全见 docs/development/quick-start.md自动化齐全make doctor会检查你的环境并打印缺失工具的确切安装命令大幅降低环境配置门槛规范清晰AGENTS.md 中详细写明了代码风格、React 模式与测试约定照着做即可流程可预期PR 标题有自动化校验CI 会自动跑类型检查、lint 和测试反馈透明先认识一下项目结构在动手前花十分钟了解目录布局能帮你快速找到要改的代码目录/文件说明src/前端应用Vite React Tauri聊天、设置、组件都在这里backend/Node/Bun 后端 API 服务含 Drizzle 数据库迁移cli/终端 CLI内置 Agent、认证、AI 运行时shared/前后端共享模块含agent-core浏览器内 Agent 适配器src-tauri/Rust 桌面/移动端壳Taurie2e/Playwright 端到端测试docs/架构、开发、自托管文档deploy/Docker Compose / Kubernetes / Pulumi 部署配置一键安装步骤搭建本地开发环境环境搭建是整个流程中最容易卡住新手的环节而 Thunderbolt 把这件事做得很省心——一切从 Makefile 开始。1. 克隆仓库git clone https://gitcode.com/GitHub_Trending/thund/thunderbolt cd thunderbolt make doctormake doctor会检查你的机器并打印缺失工具如Bun 1.2、Rust 工具链、Docker的确切安装命令。2. 安装依赖与配置make setup # 安装前端后端依赖配置 agent 软链接 cp .env.example .env cp backend/.env.example backend/.env make doctor # 自动生成 BETTER_AUTH_SECRET 等密钥你还需要至少一个 AI 提供商的 API KeyAnthropic、OpenAI 等或使用本地 Ollama / llama.cpp 作为免费推理端点。3. 启动服务make up # Docker 启动 Postgres(:5433) PowerSync(:8080) make run # 启动后端(:8000) 前端(:1420)打开http://localhost:1420注册账号、发一条消息跑通了就说明环境就绪 ✅小贴士常用命令还有make status查看容器状态、make down/make nuke停止/清空容器、make check类型检查 lint 格式检查、make format统一格式化前后端与 Rust 代码。完整说明见 Makefile。读懂代码规范动笔前先对齐Thunderbolt 将工程规范集中写在 AGENTS.mdCLAUDE.md是其软链接贡献前值得通读一遍。核心要点包括TypeScript 风格永远不用any优先type而非interface优先箭头函数、const而非let、提前 return 而非深层嵌套用bun代替npm用bun test代替vitest架构原则偏向简洁优雅的解决方案避免过度设计前端数据一律软删除设置deletedAt不硬删除网络请求使用应用内置的HttpClient数据库迁移用bun db generate生成不手写 SQL 迁移文件React 纪律useEffect被视为代码异味除非确有正当理由DOM 事件、订阅、测量等状态逻辑抽成use[Component]State()hooks与展示逻辑分离便于测试测试与质量检查提交PR前的必经之路提交 PR 前确保 CI 会做的检查你本地都已通过命令作用make check类型检查 lint 格式检查CI 的准入线bun run test前端测试src/shared/约 15 秒跑完bun run test:backend后端测试bun run test:agent-core共享agent-core模块的独立测试bun run e2ePlaywright 端到端测试⚠️新手最常见的坑不要在仓库根目录直接运行裸的bun test——它会发现所有测试文件包括需要真实服务的后端测试导致卡死。一定要用带作用域的bun run test。测试写法上docs/development/testing.md 强调优先依赖注入而非 mockmock 模块会跨测试文件泄漏是 CI 里单独能跑、合起来就挂的头号原因测试文件以file.test.ts放在源码旁。如何写出能一次通过的 PR标题与流程PR 标题必须遵循 Conventional Commits这是新手最容易忽略的细节。CI 中的Lint PR Title工作流.github/workflows/lint-pr-title.yml会严格校验 PR 标题格式不合规会直接阻止合并feat: 为设置页新增导出按钮 fix(cli): 修复认证刷新后掉线的问题 chore(deps): 升级 tauri-apps/api 到 2.11.0允许的 type 包括feat、fix、chore、docs、refactor、perf、test、ci、build、style。由于仓库使用 squash-mergePR 标题就是合入main的提交信息并直接驱动自动化 Changelog 生成——所以标题写得规范Changelog 就漂亮。详细规则见 RELEASE.md 的 PR Title Convention 一节。提交后会发生什么打开 PR 后CI.github/workflows/ci.yml会自动检测变更文件按 Rust / agent-core / CLI / 国际化等维度智能跳过无关构建提速明显跑质量门禁类型检查、lint、单元测试生成预览环境preview-deploy.yml方便审查者体验你的改动收集 PR 指标pr-metrics.yml用于复盘负责任地参与行为准则与安全报告社区氛围和代码质量同样重要行为准则CODE_OF_CONDUCT.md 要求批评事不批评人、在公开渠道讨论、不修改不属于自己的 issue 标签。所有参与者同时承诺遵守 Mozilla 社区参与准则安全漏洞切勿在公开 issue 中报告请通过仓库的私有漏洞报告表单负责任地披露见 SECURITY.md遥测隐私项目对数据收集有完整说明改动涉及遥测时请阅读 TELEMETRY.md贡献渠道清单从Issue到PR发现问题 / 有想法先提交一个 issue描述清楚复现步骤——很多社区贡献正是从好 issue 开始的认领开发浏览 docs/development/quick-start.md 跑通本地环境从小而完整的改动入手文案、文档、单个 bug 修复都是好起点提交 PR遵循 Conventional Commits 标题附上改动说明与如适用截图持续跟进关注 CI 反馈及时响应审查意见保持 PR 更新写在最后参与 Thunderbolt 的贡献流程本质上就是一次真实的现代软件工程实战Makefile 驱动的环境自检、Conventional Commits 治理的提交历史、按文件维度优化的 CI、预览环境部署以及清晰的架构文档。第一次 PR 被拒或被要求修改都很正常——这正是学习最快的时候。从 docs/development/quick-start.md 开始跑通本地环境然后选一个小 issue 动手吧。你的第一个 PR可能就从make run之后看到的那次改动开始。⚡核心文档速查开发快速上手 · 测试指南 · 发布与PR规范 · 架构文档 · 自托管指南【免费下载链接】thunderboltAI You Control: Choose your models. Own your data. Eliminate vendor lock-in.项目地址: https://gitcode.com/GitHub_Trending/thund/thunderbolt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考