Skip to content

开发与构建

zhenhun edited this page Sep 4, 2026 · 2 revisions

中文 | English

本地开发

前置:Node.js、Rust 工具链、Tauri 系统依赖。

npm install          # 安装前端依赖
npm run tauri dev    # 开发模式(热更新)
npm run tauri build  # 构建 release(NSIS / MSI / dmg / AppImage / deb)

项目结构

src/               React 前端
  pages/           对话 / AI 设置 / 工具 / 技能 / 记忆 / 审计 / 远程
  components/      Markdown、工具卡片、标题栏、图标等
src-tauri/         Tauri (Rust) 后端
  src/             ai(协议与流式)、agent(编排)、registry(工具注册)、
                   mcp、http_api(远程 API)、update(自动更新)、audit …
e2e/               E2E 测试(mock-ai、tui、update、remote 等)
.github/workflows/ CI:release / e2e / auto-release / mirror-pages / sync-gitee
packaging/         flatpak、exotic(loongarch64/riscv64)打包脚本

测试

套件 命令 覆盖
单元测试 cargo test(src-tauri 下) 协议解析、模糊识别、SSE 流、MCP 等 70+ 用例
TUI E2E node e2e/tui.cjs(先起 node e2e/mock-ai.cjs) 28 个场景:对话/工具/会话/记忆/非法输入/超长行/多语言/损坏配置/连接失败/风暴输入/变体格式/AI 行为自纠/流式边界
更新 E2E node e2e/update.cjs mock 更新源:检测/下载/幂等缓存/状态/无更新/启动自动下载
远程 E2E node e2e/remote-default.cjs 默认关闭/开启监听/凭据拦截

mock AI 服务器:node e2e/mock-ai.cjs,监听 127.0.0.1:9901,内置几十种场景标记(如 E2E-AI-RETRY、E2E-STREAM-MULTIBYTE),见文件内注释。

CI 在每次 push 时于 Ubuntu(xvfb) / Windows / macOS 三平台运行 E2E。

发布流程(auto-release)

全自动,无需手工改版本:

  1. GitHub → Actions → auto-release → Run workflow
  2. 填 bump(patch/minor/major)或显式 version(如 0.5.0)
  3. 工作流自动完成:
    • 校验新版本号 > 当前且 tag 不存在
    • 统一改 4 个版本文件(package.json / tauri.conf.json / Cargo.toml / Cargo.lock)
    • 提交并打 tag(chore(release): vX.Y.Z)
    • dispatch release(全平台构建:Windows×2 架构、macOS×2、Linux×3 包格式、loongarch64/riscv64 QEMU 交叉编译)
    • dispatch e2e(三平台 E2E)
    • dispatch sync-gitee(Gitee 全量镜像)
  4. release 收尾(finalize):生成 latest.json(含 6 平台资产映射)上传 Release,并刷新 GitHub Pages 镜像(yxpil.github.io/bit/)
  5. QEMU 架构构建失败不阻塞发布,成功后自动补传

镜像与分发

目标 机制
GitHub Pages 镜像 mirror-pages:Release 资产同步到 yxpil.github.io/bit/(Fastly CDN 直链)
osbt.space 官网,引用 Pages 镜像
Gitee 镜像 sync-gitee:push main / tag 后全量同步(凭据走 GitHub Secrets)
APT / DNF / pacman 源 yxpil.github.io/apt-repo / dnf-repo / pacman-repo
winget 手动提交 PR(validation 工作流先本地预检)
Homebrew / Scoop / npm 独立 tap / bucket / bit-agent 包

约定

  • 模型可见字符串(工具描述、参数 schema、工具报错、结果包装)一律英文,兼容旧模型
  • 用户可见 UI 文案为中文
  • MCP 集成测试依赖 BIT_FAKE_MCP_URL;更新测试依赖 BIT_FAKE_UPDATE_URL(e2e 注入)

Clone this wiki locally