> ## Documentation Index
> Fetch the complete documentation index at: https://vibex.peatboy.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 構建與測試

> 選擇合適的 Vibex 檢查、smoke test 和釋出構建命令。

所有命令都在倉庫根目錄執行。指令碼定義在根 `package.json` 中，如果這裡的命令與實際不符，以 `package.json` 為準。

## 常規檢查

```bash theme={null}
pnpm check
```

它依次執行 `check:rust`、`check:frontend` 和 `check:licenses`，覆蓋 Rust 質量門禁、前端型別與 lint、第三方許可證。

單個子命令：

| 命令 | 作用 |
| - | - |
| `pnpm check:rust` | Rust 格式、clippy、測試和工具鏈固定檢查。 |
| `pnpm check:frontend` | 各包 typecheck 加 ESLint。 |
| `pnpm check:licenses` | 校驗依賴許可證策略。 |
| `pnpm check:release` | 校驗釋出身份與版本一致性。 |
| `pnpm check:mobile-native` | 行動端 crate 與原生專案契約。 |
| `pnpm check:native-content-package` | 檢查原生內容執行階段的打包結果。 |

## 構建門禁

```bash theme={null}
pnpm release:build-smoke
```

校驗桌面端、行動端和 Relay 的構建圖。它**不等於**簽名釋出包。

桌面端針對性檢查：

```bash theme={null}
cargo check -p vibex-desktop --locked
cargo test -p vibex-desktop --locked
pnpm smoke:first-frame
pnpm check:mobile-native
```

## Smoke 測試

倉庫提供大量確定性 smoke 指令碼：

| 命令 | 覆蓋範圍 |
| - | - |
| `pnpm smoke:agents` | ACP 橋接契約 + Codex + Claude，等於 `smoke:acp:bridge-contract` + `smoke:codex` + `smoke:claude`。 |
| `pnpm smoke:acp:bridge-contract` | ACP 橋接協議契約。 |
| `pnpm smoke:acp:opencode` | OpenCode ACP 整合。 |
| `pnpm smoke:files` | 檔案服務。 |
| `pnpm smoke:git` | Git 服務。 |
| `pnpm smoke:pty` | 終端機 PTY。 |
| `pnpm smoke:db` | SQLite 層。 |
| `pnpm smoke:backup` | 備份與恢復。 |
| `pnpm smoke:browser` | 瀏覽器頁面標籤與面板工具。 |
| `pnpm smoke:computer` | 電腦操作 helper 與平台探測。 |
| `pnpm smoke:first-frame` | 桌面端首幀啟動探針。 |
| `pnpm smoke:diagnostics` | 診斷包生成。 |
| `pnpm smoke:relay:local` | 本地 Relay 端到端。 |
| `cargo test -p vibex-tui --test contracts` | TUI 依賴邊界、鍵位表、語言覆蓋和敏感資訊複製。 |
| `scripts/e2e-ssh-docker.sh` | SSH 配置、解除安裝、升級與回滾的 Docker 端到端驗證（需要當前原始碼構建的服務端產物）。 |
| `pnpm e2e:regression` | 端到端迴歸 harness。 |
| `pnpm baseline:performance` | 效能基線。 |

> [!NOTE]
>
> 過去文件裡出現過的 `pnpm check:acp`、`pnpm check:code-workbench`、`pnpm check:terminal` 和 `pnpm check:all` **都不存在**。ACP、程式碼工作台和終端機分別由上面的 `smoke:*` 指令碼覆蓋。

## 釋出構建

```bash theme={null}
pnpm release:preflight      # 校驗釋出身份，並寫出 preflight 記錄
pnpm release:build-smoke
pnpm package:preview        # 或 package:rc / package:stable
```

打 tag 後由 `.github/workflows/release.yml` 構建全部平台的產物。釋出前請閱讀倉庫中的 `docs/operations/release.md` 和 `docs/operations/release-packaging-matrix.md`。

## 執行測試時關注的契約

* 權限不足必須返回結構化錯誤，不能由 UI 猜測成功。
* cursor / generation 間隙必須觸發 `resync_required`。
* 檔案寫入使用內容修訂 / CAS，避免覆蓋外部修改。
* 終端機和附件流必須在授權後建立，並在撤銷時關閉。
* 重啟、斷線和 stale 狀態必須可重複驗證。

## 提交前

命令可能生成本地證據或捕獲檔案。檢查 `.gitignore` 和指令碼說明，不要提交包含憑據、提示詞、路徑、diff 或終端機內容的產物。

安裝包、執行階段二進位制、Release APK 和簽名資料屬於構建或釋出產物，不要當作原始碼提交。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.