Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 21 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,12 @@
# LuoWang

罗网(LuoWang)是一个独立部署的 AI 场景测试 Harness。当前仓库已完成 Phase 0–9,并已发布 v0.1.0:除了安全配置控制台、唯一 GitHub 目标仓库索引、Main → Runner → Reviewer → Main 的本地 Run、受控 Playwright MCP UI 执行、S3-compatible OSS 证据 Gateway、幂等归档和持久 FIFO 自动化队列,还支持长期场景生命周期、三种场景维护模式、陌生项目初始化,以及展示 Git 树标记、场景历史、Run 工件/证据/归档、当前执行、队列、后台任务、依赖健康和陈旧缓存恢复的完整运维控制台。Phase 9 已完成 34 个 AC 的全量验收;验收会创建隔离的样例仓库和样例 Web 应用,并在结束后清理临时资源
罗网(LuoWang)是一个独立部署的 AI 场景测试 Harness。当前仓库已发布 v0.1.0,并已实现 Phase 0–9 的主要模块:安全配置控制台、唯一 GitHub 目标仓库索引、Main → Runner → Reviewer → Main Run、受控 Playwright MCP UI 执行、S3-compatible OSS 证据 Gateway、幂等归档和持久 FIFO 自动化队列,以及长期场景生命周期、三种场景维护模式、陌生项目初始化和运维控制台

## 本地启动

需要 Node.js 24 和 npm。生产模式:

```bash
npm ci
npm run build
npm start
```
v0.1.0 的 Phase 9 验收已使用隔离的本地样例仓库、样例 Web 应用和 test doubles 完成 34 个 AC 的自动化回归;这证明的是 local 基线,不是生产闭环的 live 联合验收。当前尚未完成真实 Provider + Pi Agent + Playwright MCP + 私有 OSS + GitHub + 非生产应用的联合证明,因此不能把 v0.1.0 或当前 `develop` 视为下一版本的发布验收已经通过。

默认只监听 `127.0.0.1:3000`。打开 <http://127.0.0.1:3000/> 可查看控制台壳,健康检查地址为 <http://127.0.0.1:3000/health>。数据默认保存在 `/data`;本地开发可以设置 `LUOWANG_DATA_DIR` 到可写目录。执行 `npm run dev` 可以同时启动 Vite 和开发服务器。
## 本地启动

也可以使用 Docker Compose:
优先使用 Docker Compose 复现固定的 Node、原生依赖和 Chromium 环境

```bash
# 首次启动空数据卷前必须设置这两个值;不要把真实值提交到 Git。
Expand All @@ -25,15 +17,29 @@ curl --fail http://127.0.0.1:3000/health
docker compose down
```

执行 Phase 9 验收:
Compose 将数据保存到 `luowang-data` 卷,并把宿主机端口绑定到 `127.0.0.1`。管理员密码只在空数据库首次启动时读取;主密钥只用于进程内派生 Secret Store 密钥,二者都不会写入 SQLite。

如需直接在宿主机运行,需要 Node.js 24 和 npm 10 或更高版本。`better-sqlite3` 等依赖没有适用的预编译包时,`npm ci` 还需要系统已安装 `python3`、`make` 和 `g++`;缺少这些工具时请优先使用 Docker,不要跳过依赖安装或质量检查。

```bash
npm ci
npm run build
npm start
```

默认只监听 `127.0.0.1:3000`。打开 <http://127.0.0.1:3000/> 可查看控制台壳,健康检查地址为 <http://127.0.0.1:3000/health>。数据默认保存在 `/data`;本地开发可以设置 `LUOWANG_DATA_DIR` 到可写目录。执行 `npm run dev` 可以同时启动 Vite 和开发服务器。

## 验收状态

当前命令:

```bash
npm run test:acceptance
```

该命令会在隔离环境中运行公共质量命令,使用临时 Git bare 仓库、Cynos 官网登录/注册样例应用、SQLite、队列、归档和 headless Chromium 验证 34 个 AC,并在 `.cynos/acceptance/<timestamp>/` 保存不含凭据的 JSON/Markdown 报告。真实 GitHub、DeepSeek、OSS 和非生产测试环境 smoke 不会默认执行;如需运行已存在的 GitHub 只读 smoke,必须显式提供 `LUOWANG_ACCEPTANCE_LIVE=1`、`LUOWANG_SMOKE_REPOSITORY=https://github.com/cynos-ai/cynos-website` 和临时 `LUOWANG_SMOKE_GITHUB_TOKEN`
该命令当前只代表 **local acceptance**。它会运行公共质量命令,并使用临时 Git bare 仓库、Cynos 官网登录/注册样例应用、SQLite、队列、归档和 headless Chromium 回归 34 个 AC;报告保存在 `.cynos/acceptance/<timestamp>/`。其中 Agent Run 证明注入 `FixtureSessionFactory`,浏览器证明直接使用 Playwright;它们不能代替真实 `createAgentSession()`、模型 custom tool 循环和 Playwright MCP 联合路径。正式的 local/live/release 分层命令将在生产闭环 Closure Phase 6 提供

Compose 将数据保存到 `luowang-data` 卷,并把宿主机端口绑定到 `127.0.0.1`。管理员密码只在空数据库首次启动时读取;主密钥只用于进程内派生 Secret Store 密钥,二者都不会写入 SQLite
当前可选的 live 路径只包含有限的 GitHub smoke,不覆盖真实 Provider、Pi Agent、Playwright MCP、私有 OSS 和非生产应用联合验收。它不会默认执行;如需运行,必须显式提供 `LUOWANG_ACCEPTANCE_LIVE=1`、`LUOWANG_SMOKE_REPOSITORY=https://github.com/cynos-ai/cynos-website` 和临时 `LUOWANG_SMOKE_GITHUB_TOKEN`。即使该有限 smoke 通过,也不能视为 live 或 release 证明完成

打开 <http://127.0.0.1:3000/> 后使用管理员密码登录。登录后可以维护 Harness、仓库/测试环境、MCP 和 S3-compatible OSS 的普通配置;Provider Key、Git Token、测试账号和 OSS Access Key 等 Secret 只能覆盖或显式删除,页面只显示“已配置”和固定掩码。v0.1.0 提供 GitHub 仓库读取、场景测试分支写入、PR/Issue 权限检查、场景/报告同步、场景 patch 校验、三种场景维护模式、直接/PR 发布、陌生项目初始化、归档和自动化队列接口,并注册 Provider、Playwright MCP 与 OSS 的独立连通性检查。启用 MCP 后,Runner 使用 headless、isolated 浏览器上下文和 accessibility snapshot/ref;截图等证据上传到 OSS,私有 bucket 使用登录后的 `/api/evidence/<id>` 稳定地址。后台默认每 60 秒轮询 Git、每 10 秒扫描归档、每 5 分钟兜底索引和保留清理;队列、调度游标和恢复状态保存在 SQLite。

Expand Down
Loading