Skip to content
Merged
Show file tree
Hide file tree
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
5 changes: 4 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
.git
.github
.github/*
!.github/workflows
.github/workflows/*
!.github/workflows/quality.yml
.cache
.cynos
.env
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
quality:
name: quality
runs-on: ubuntu-latest
timeout-minutes: 30
timeout-minutes: 60
env:
NODE_IMAGE: docker.m.daocloud.io/library/node:24.14.1-bookworm-slim@sha256:b506e7321f176aae77317f99d67a24b272c1f09f1d10f1761f2773447d8da26c
NPM_REGISTRY: https://registry.npmmirror.com
Expand Down
12 changes: 6 additions & 6 deletions docs/changes/luowang-v07-production-closure/intent.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 罗网 v0.7 生产闭环补齐 Intent

- 状态:Approved v0.3
- 状态:Approved v0.4
- 关联规格:[spec.md](./spec.md)
- 实现计划:[plan.md](./plan.md)
- 上游基线:[罗网 Harness MVP](../luowang-harness-mvp/intent.md)
Expand All @@ -13,7 +13,7 @@
但当前代码和发布说明把“本地 fixture 回归通过”表述成了“34 个 AC 全量验收完成”,而真实外部 smoke 仍为 blocked;同时,生产路径存在几项会阻止 v0.7 闭环成立的缺口:

1. 角色方法全部硬编码在 Orchestrator 长提示词中,同一内容还同时作为 system prompt 和用户消息发送;Pi Skills 已被安全禁用,但罗网也没有版本化、按角色隔离的内置角色指令资源;
2. 用户指定 branch/tag/SHA 时,merge 和测试是两个独立动作,普通 Run API 还允许直接传任意 target,可能绕开固定 `scenario-testing` 分支;
2. 用户指定 branch/tag/SHA 时,merge 和测试是两个独立动作,普通 Run API 还允许直接传任意 target,可能绕开固定 `scenario-testing` 分支;首次创建该分支的同步接口也与初始化 Run 分离,没有进入 prepared/resolved、唯一 Run 和重启恢复闭环;
3. 生产默认测试数据管理器只能登记数据,没有“Runner 已通过 UI/API 删除并确认”的路径;只要登记数据且没有注入测试适配器,Run 就会被强制 blocked;
4. 当前场景和执行进度只在 Run 创建时初始化为 `null`、`0/0`,真实 Runner 不会上报变化;
5. Main · 规划只得到 Git 正式报告摘要和 GitHub Issues,无法查询 SQLite 中特殊 blocked、interrupted、场景 PR 和归档失败等详细历史 Run;
Expand All @@ -28,7 +28,7 @@

1. Main · 规划、Runner、Reviewer、Main · 最终汇总和初始化方法成为罗网自身版本化的 Built-in Role Instructions(内置角色指令),由应用按 Session 确定性加载并完整注入;它们是发布物中的固定 Markdown 资源,不是 Pi Skills;目标仓库、宿主机和用户目录中的 Skills 仍不会被发现或执行;
2. 固定方法、安全边界、动态 Run 上下文和本次请求分层传递,不再重复注入同一长提示词;不同角色只看到自己需要的动态事实;
3. 人工 merge 请求进入现有 SQLite FIFO,在轮到它时生成可跨重启恢复的 prepared merge,完成 `non-force push → 固定 resolved target → Run`;prepared commit 在本地持久 Git 仓库中保持可达,普通人工测试不能直接绕开场景测试分支
3. 人工 merge 请求进入现有 SQLite FIFO,在轮到它时生成可跨重启恢复的 prepared commit,完成 `non-force push → 固定 resolved target → Run`;远端场景测试分支不存在时,同一 `manual-merge-source + initialization=true` 请求从用户指定 commit 安全创建分支并且只创建一个初始化 Run;prepared commit 在本地持久 Git 仓库中保持可达,普通人工测试和首次建分支都不能绕开队列
4. Runner 可以登记测试数据并通过 UI/API 删除,但 Runner 的清理声明或自填文本不能直接变成完成事实;只有受控 adapter 独立核验,或 Reviewer 读取由 Harness 直接捕获的工具/adapter 输出或 Playwright 截图后确认,数据才视为已清理,任何未确认残留仍可靠地使结果 blocked;
5. 网站在真实执行中显示总场景数、已完成数、当前场景和脱敏活动,而不是只依赖 UI fixture;
6. Main · 规划可以按需查询有限、只读、相关的历史 Run 摘要;Main · 最终汇总先从本次 `draft-report.md` 和 `review.md` 形成 Bug 候选,再通过受限只读工具查询可能相同的历史 Issue/Run 并决定 create/link;Runner 和 Reviewer 均不获得历史查询工具;
Expand Down Expand Up @@ -58,7 +58,7 @@

- v0.7 PDF 是本变更的产品与架构权威;本变更只细化其生产闭环,不增加相反设计;
- 保留单实例、单租户、单目标仓库、单场景测试分支、单测试环境、单 active Run 和 FIFO;
- 不引入多阶段 checkpoint、通用工作流引擎、发布 gate、多 worker、复杂 worktree 或新的长期状态文件;
- 不引入多阶段 checkpoint、通用工作流引擎、发布 gate、多 worker、复杂 worktree 或新的长期状态文件;首次建场景分支复用 `manual-merge-source` 和既有 `initialization` 字段,不增加第四种请求;
- 继续使用 `passed | failed | blocked`,不照搬其他项目的五状态、三轴结论或复杂聚合模型;
- 罗网始终只有 `agents.main`、`agents.runner`、`agents.reviewer` 三组 Agent 配置;正常 Run 创建 Main · 规划、Runner、Reviewer、Main · 最终汇总四个互相隔离的 Session,不增加 Planner/Finalizer 配置;
- 内置角色指令只规定工作方法,不提供权限;所有读取、写入、Secret 和副作用权限继续由代码中的 custom tools、Secret Store、adapter、writer、路径 allowlist 和 patch 校验强制执行;
Expand Down Expand Up @@ -88,7 +88,7 @@

除最后的真实联合验收外,其余实现阶段不得因缺少外部 Secret 而停工。进入真实验收前,项目负责人必须提供或确认:

1. **测试项目**:默认继续使用 `https://github.com/cynos-ai/cynos-website`;确认它是可信、允许写入测试资产和创建测试 PR/Issue 的独立目标,而不是罗网仓库;如需更换,必须在验收开始前明确新 URL
1. **测试项目**:默认继续使用 `https://github.com/cynos-ai/cynos-website`;确认它是可信、允许写入测试资产和创建测试 PR/Issue 的独立目标,而不是罗网仓库;live 首次建分支验收开始时,该目标的已配置 `scenario-testing` 必须不存在且可由指定初始 commit 创建,若默认项目不能安全提供该前置条件则必须换用新的独立测试仓库
2. **GitHub 权限**:仅授予该测试仓库的临时或专用 Token,允许 Metadata 读取、Contents 读写、Pull Requests 读写和 Issues 读写;不授予组织管理、Actions 管理或其他仓库权限;
3. **非生产应用**:可访问的测试/预发布 Base URL、环境说明、允许验证的 API/UI 流程、可控的 passed/failed/blocked 条件,以及确认不会触碰生产数据;
4. **测试账号和清理能力**:专用账号及角色、测试数据命名约束、通过 UI/API 删除本次数据的方式,以及可独立证明数据已不存在的脱敏查询/截图/API 证据;如果环境不能删除或不能验证临时数据已清理,则不能完成 live 验收;
Expand All @@ -105,7 +105,7 @@
本变更成功不以“新增了多少文件或测试”为标准,而以以下事实同时成立为准:

- 已知生产路径缺口均有用户可观察的修复和自动回归;
- 实际 Pi SDK Session 而非 FixtureSessionFactory 分别证明正常四 Session Run、初始化直接新增场景的六 Session 流程,以及需要场景 PR 时立即结束的三 Session 特殊 blocked 流程,覆盖模型消息、受控工具循环、Session 隔离与 dispose;
- 本地与 live 均从目标仓库尚无 `scenario-testing` 开始,证明 `manual-merge-source + initialization=true` 经 internal ref、prepared/resolved 和唯一 Run 创建分支并进入陌生项目初始化;实际 Pi SDK Session 而非 FixtureSessionFactory 分别证明正常四 Session Run、初始化直接新增场景的六 Session 流程,以及需要场景 PR 时立即结束的三 Session 特殊 blocked 流程,覆盖模型消息、受控工具循环、Session 隔离与 dispose;
- 真实联合 Run 在独立非生产项目上完成并可由 Run、commit、报告、截图、OSS object、PR/Issues 和清理结果复核;
- 本地与 live 结果被准确区分,缺少任何 live 前置条件时明确 blocked 且不能发布;
- 没有通过补复杂状态机、放宽安全边界或增加未来架构来“解决”问题。
Expand Down
Loading
Loading