@godv61/dsh-task-engine 0.29.3 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.adaptive-test.mjs +380 -185
- package/.codex-project-test.mjs +18 -18
- package/.evidence-test.mjs +14 -1
- package/.hook-test.mjs +19 -19
- package/.resource-test.mjs +17 -0
- package/.roundtrip-test.mjs +8 -3
- package/.sonar-credential-test.mjs +38 -0
- package/.sonarlint-local-test.mjs +71 -0
- package/.workflow-test.mjs +56 -9
- package/README.md +35 -112
- package/docs/development.md +45 -53
- package/docs/manual.html +140 -84
- package/hooks/commit-msg +19 -1
- package/lib/adaptive.js +1 -1
- package/lib/adaptive.js.map +1 -1
- package/lib/client.js +297 -9
- package/lib/client.js.map +1 -1
- package/lib/controller.d.ts +44 -0
- package/lib/controller.js +73 -0
- package/lib/controller.js.map +1 -1
- package/lib/dev-task.d.ts +2 -0
- package/lib/dev-task.js +342 -42
- package/lib/dev-task.js.map +1 -1
- package/lib/engine.d.ts +5 -1
- package/lib/engine.js +6 -0
- package/lib/engine.js.map +1 -1
- package/lib/hook.js +3 -3
- package/lib/hook.js.map +1 -1
- package/lib/project-init.d.ts +4 -0
- package/lib/project-init.js +21 -2
- package/lib/project-init.js.map +1 -1
- package/lib/skill-audit.js +9 -1
- package/lib/skill-audit.js.map +1 -1
- package/lib/sonar-credential.d.ts +17 -0
- package/lib/sonar-credential.js +17 -0
- package/lib/sonar-credential.js.map +1 -0
- package/lib/sonar-report.d.ts +4 -0
- package/lib/sonar-report.js +53 -0
- package/lib/sonar-report.js.map +1 -0
- package/lib/sonar.d.ts +35 -2
- package/lib/sonar.js +63 -4
- package/lib/sonar.js.map +1 -1
- package/lib/sonarlint-local.d.ts +17 -0
- package/lib/sonarlint-local.js +317 -0
- package/lib/sonarlint-local.js.map +1 -0
- package/lib/verification-tests.d.ts +10 -0
- package/lib/verification-tests.js +15 -0
- package/lib/verification-tests.js.map +1 -0
- package/package.json +6 -4
- package/preset/enable.mjs +2 -2
- package/preset/persona.md +4 -4
- package/scripts/verify-dsh-compat.mjs +14 -14
- package/scripts/verify-package.mjs +10 -8
- package/skills/architecture-design/SKILL.md +11 -11
- package/skills/code-development/SKILL.md +11 -11
- package/skills/code-review/SKILL.md +12 -10
- package/skills/eng-delivery/SKILL.md +10 -7
- package/skills/requirements-analysis/SKILL.md +11 -11
- package/skills/task-orchestration/SKILL.md +11 -11
- package/skills/test-validation/SKILL.md +11 -9
- package/docs/BRIEF-FOR-REVIEW.md +0 -163
- package/docs/CHANGELOG.md +0 -407
- package/docs/README.md +0 -42
- package/docs/adaptive-workflows.md +0 -76
- package/docs/assets/workflow-banner.svg +0 -29
- package/docs/configuration.md +0 -80
- package/docs/faq.md +0 -59
- package/docs/getting-started.md +0 -55
- package/docs/listing/godv61__dsh-task-engine.yml +0 -6
- package/docs/listing/submission.md +0 -84
- package/docs/manual-legacy.html +0 -380
- package/docs/releases/0.23.0.md +0 -32
- package/docs/releases/0.23.1.md +0 -58
- package/docs/releases/0.23.2.md +0 -21
- package/docs/resource-install.md +0 -64
- package/docs/roadmap.md +0 -33
- package/docs/testing/0.23.0//346/265/213/350/257/225/346/211/247/350/241/214/350/256/260/345/275/225.md +0 -189
- package/docs/testing/0.23.0//346/265/213/350/257/225/346/212/245/345/221/212.md +0 -42
- package/docs/testing/0.23.1//346/265/213/350/257/225/346/212/245/345/221/212.md +0 -34
- package/docs/testing/0.23.1//350/207/252/345/212/250/345/214/226/346/265/213/350/257/225/346/230/216/347/273/206.md +0 -41
- package/docs/testing/0.23.2/R02/344/270/232/345/212/241/346/265/213/350/257/225/346/230/216/347/273/206.md +0 -56
- package/docs/testing/0.23.2/R03/344/270/232/345/212/241/346/265/213/350/257/225/346/230/216/347/273/206.md +0 -38
- package/docs/testing/0.23.2//346/265/213/350/257/225/346/212/245/345/221/212.md +0 -65
- package/docs/testing/0.23.2//350/207/252/345/212/250/345/214/226/346/265/213/350/257/225/346/230/216/347/273/206.md +0 -43
- package/docs/workflow-regression.md +0 -36
package/docs/roadmap.md
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# 功能规划
|
|
2
|
-
|
|
3
|
-
[← 文档导航](README.md)
|
|
4
|
-
|
|
5
|
-
本页记录已发布能力与后续方向;任务级流程见[自适应工程任务](adaptive-workflows.md)。
|
|
6
|
-
已发布的能力与版本变化见[更新日志](CHANGELOG.md)。
|
|
7
|
-
|
|
8
|
-
## 当前能力边界
|
|
9
|
-
|
|
10
|
-
| 能力 | 状态 |
|
|
11
|
-
| :--- | :--- |
|
|
12
|
-
| 三个内置流程(`standard`、`agile`、`minimal`) | ✅ 已发布,开箱即用 |
|
|
13
|
-
| 阶段选择技能、规则归属技能 | ✅ 已发布 |
|
|
14
|
-
| 任务台账、验证与审核回执、提交门禁 | ✅ 已发布 |
|
|
15
|
-
| 项目级与个人级资源安装、来源保留 | ✅ 已发布 |
|
|
16
|
-
| 四档任务级流程、元技能、项目扫描 init、可选审核期 SonarQube CI 接入 | ✅ 0.29.0 |
|
|
17
|
-
| **自由编辑流程阶段与条件** | ❌ **不在计划内** |
|
|
18
|
-
|
|
19
|
-
**关于自定义流程**:让使用者自行设计阶段、条件与提交流程曾被评估,结论是**不列入计划**——
|
|
20
|
-
任务级四档流程覆盖常见开发复杂度,用户可挂载项目技能;自由编辑状态机仍不在当前范围。
|
|
21
|
-
|
|
22
|
-
旧任务继续读取 `.dsh/eng.json`;新任务用 `.dsh/meta.json` 管理元技能挂载,复杂度在任务创建时确定。
|
|
23
|
-
|
|
24
|
-
## 后续体验方向
|
|
25
|
-
|
|
26
|
-
- 资源导入:文件选择取消、大包进度、分块上传与取消。
|
|
27
|
-
- 资源维护:来源与版本记录、升级差异预览、备份和恢复。
|
|
28
|
-
- 工作台:未保存内容保护、台账扩展、语言与可访问性完善。
|
|
29
|
-
- 项目展示:真实工作台截图、案例和收录信息。
|
|
30
|
-
|
|
31
|
-
## 产品范围
|
|
32
|
-
|
|
33
|
-
本项目服务本机与团队分支开发中的个人会话。多用户服务器的会话权限架构不列为当前版本的必修项。日常改进优先解决工作区目标清晰、文件误操作、任务连续性和操作反馈。
|
|
@@ -1,189 +0,0 @@
|
|
|
1
|
-
# 0.23.0 测试执行记录
|
|
2
|
-
|
|
3
|
-
日期:2026-09-15。Windows,Node 22.22.3,npm 10.9.8;插件基线 7f13fc6 加本次改动;Harness 源码 d347e70390(0.1.3-alpha.1),web profile,Codex 内置 Chromium 浏览器。
|
|
4
|
-
|
|
5
|
-
## 执行命令
|
|
6
|
-
|
|
7
|
-
`npm run build`、`npm run typecheck`、`npm test` 均通过。为生成逐条记录,执行 `$env:DSH_TEST_DETAILS='1'; node .p0-test.mjs` 以及 `node --test .resource-test.mjs`;以下表由这次输出生成。
|
|
8
|
-
|
|
9
|
-
`npm run verify:package` 通过:npm pack、解包、8 个必备文件、排除源码与构建脚本、干净项目 npm 安装、主入口导入、客户端 ModuleLoader 注册、包内 P0 与资源测试、CLI 语法,共 18 个检查点。包内测试与源码测试重复覆盖,不另计为独立用例。该脚本的 CLI 检查仅检查语法,不能替代实际 CLI 启用流程。
|
|
10
|
-
|
|
11
|
-
## 实机记录
|
|
12
|
-
|
|
13
|
-
| 编号 | 操作/测试数据 | 实际结果 | 状态 |
|
|
14
|
-
|---|---|---|---|
|
|
15
|
-
| UI-01 | 最终 tarball 经 dsh plugin --profile web add 安装并重启 3080 | 工作台加载,主机注册工作区读取成功 | 通过 |
|
|
16
|
-
| UI-02 | 安装 codex-ui-review-skill 目录 | 系统 filechooser 接收目录,预览 2 文件/162 B,正文不含 frontmatter | 通过 |
|
|
17
|
-
| UI-03 | 预览后、确认前检查目标 | Test-Path 为 False;预览没有落盘 | 通过 |
|
|
18
|
-
| UI-04 | 确认项目技能安装 | 成功提示与列表更新,附件 SHA-256 与源相同 | 通过 |
|
|
19
|
-
| UI-05 | 重复选择同名技能 | 冲突提示出现,确认安装按钮 disabled | 通过 |
|
|
20
|
-
| UI-06 | 安装 codex-ui-review-rule.md,切换个人范围 | 预览目标切换为个人规则目录,1 文件/26 B,确认后落盘并显示个人来源 | 通过 |
|
|
21
|
-
| UI-07 | 搜索测试技能,打开删除框后选择保留 | 匹配结果正确,目标/永久删除说明可见,取消未删除 | 通过(本次早期同版构建) |
|
|
22
|
-
| UI-08 | 安装弹窗按 Escape | 弹窗关闭,返回工作台 | 通过 |
|
|
23
|
-
| UI-09 | 台账读取既有任务,选择高风险 | 显示任务验证/审核结果;无匹配时显示调整筛选提示 | 通过 |
|
|
24
|
-
| UI-10 | 420×850 视口查看技能页 | 卡片单列、标签与工作区选择换行、按钮可见,随后恢复视口 | 通过 |
|
|
25
|
-
| UI-11 | 流程配置页读取 | 显示有效标准预设与绑定,不改写用户配置 | 通过 |
|
|
26
|
-
|
|
27
|
-
## 自动化明细
|
|
28
|
-
|
|
29
|
-
P0 是 125 条验收断言,包含部分历史源码文本断言,不等同于 125 个独立端到端场景。资源集合包含 18 个 Node test 用例。P0 没有每条耗时记录;未伪造时间。
|
|
30
|
-
|
|
31
|
-
| 用例标识 | 状态 | 耗时 | 失败/错误原因 | 证据 |
|
|
32
|
-
|---|---|---:|---|---|
|
|
33
|
-
| P0-1:standard satisfies high-risk capabilities | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
34
|
-
| P0-2:agile lacks a high-risk capability | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
35
|
-
| P0-3:minimal lacks a high-risk capability | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
36
|
-
| P0-4:preset carries a version | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
37
|
-
| P0-5:unknown flow returns UNKNOWN_FLOW | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
38
|
-
| P0-6:known flow list is surfaced | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
39
|
-
| P0-7:emptying a stage override keeps the core rule | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
40
|
-
| P0-8:newTask stores the frozen snapshot | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
41
|
-
| P0-9:newTask starts at the frozen start stage | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
42
|
-
| P0-10:high_risk on minimal is rejected (got: high_risk task cannot run on flow "minimal" — it lacks the required capabilities (verification_gate, file_scope, review_gate). Use the standard flow or lower the task risk.) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
43
|
-
| P0-11:standard create starts at 需求评审 | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
44
|
-
| P0-12:status re-reads the frozen snapshot | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
45
|
-
| P0-13:gates come from the frozen standard flow, not the live minimal flow | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
46
|
-
| P0-14:create on an unknown flow fails closed (got: invalid .dsh/eng.json — fix the project config first: | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
47
|
-
| P0-15:eng.json without a flow field is a config error (got: invalid .dsh/eng.json — fix the project config first: | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
48
|
-
| P0-16:inspect on empty project prompts a scan | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
49
|
-
| P0-17:propose previews without writing | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
50
|
-
| P0-18:propose writes nothing | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
51
|
-
| P0-19:apply writes the file | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
52
|
-
| P0-20:apply persisted the draft | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
53
|
-
| P0-21:propose returns the existing-file hash when the file exists | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
54
|
-
| P0-22:apply without existing_hash on an existing file is rejected (got: init apply requires existing_hash returned by propose when AGENTS.md exists — re-propose to obtain it) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
55
|
-
| P0-23:apply with a stale existing_hash is rejected (TOCTOU) (got: AGENTS.md changed since propose (existing_hash mismatch) — re-inspect and re-propose before overwriting) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
56
|
-
| P0-24:apply without overwrite on an existing file is rejected (got: AGENTS.md already exists (2 lines) and is protected. Inspect via init phase=inspect, merge, then resubmit with phase=apply plus overwrite: true (human approval).) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
57
|
-
| P0-25:overwrite requires an approval service (got: overwriting the protected AGENTS.md requires human approval, but the approval service is unavailable) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
58
|
-
| P0-26:apply without expected_hash is rejected (got: init apply requires expected_hash returned by propose — re-propose to obtain it) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
59
|
-
| P0-27:bundled security-redlines exists as expected | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
60
|
-
| P0-28:security-redlines is disclosed at the start stage | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
61
|
-
| P0-29:a project shadow of a core rule is ignored | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
62
|
-
| P0-30:the bundled core rule body wins over a shadow | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
63
|
-
| P0-31:inspect reads the session workspace AGENTS.md | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
64
|
-
| P0-32:inspect does not read the harness repo AGENTS.md | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
65
|
-
| P0-33:task record lands in the session workspace | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
66
|
-
| P0-34:task record does not land in the backend base | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
67
|
-
| P0-35:cross-stage duplicate artifact id is rejected | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
68
|
-
| P0-36:recording an artifact at a non-owning stage is rejected (got: artifact "design" belongs to stage "设计", but the task is at "需求评审" — record it at its owning stage) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
69
|
-
| P0-37:high_risk with text-only evidence is blocked (no command receipt) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
70
|
-
| P0-38:high_risk with an exit-0 receipt passes the verified gate | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
71
|
-
| P0-39:high_risk with a non-zero exit receipt is blocked | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
72
|
-
| P0-40:high_risk with a timed-out receipt is blocked | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
73
|
-
| P0-41:high_risk with an aborted receipt is blocked | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
74
|
-
| P0-42:standard summary yields its task id | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
75
|
-
| P0-43:item-label summary yields its task id | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
76
|
-
| P0-44:non-matching summary yields no task id | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
77
|
-
| P0-45:pattern-less flow yields no task id | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
78
|
-
| P0-46:task record and eng.json do not violate file scope | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
79
|
-
| P0-47:an out-of-scope code file is still flagged | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
80
|
-
| P0-48:hook disables git octal path quoting | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
81
|
-
| P0-49:hook reads NUL-separated raw-byte paths | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
82
|
-
| P0-50:hook includes deletions and type changes in the scope check | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
83
|
-
| P0-51:hook checks the task frozen flow snapshot | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
84
|
-
| P0-52:hook extracts the task id independent of the live config | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
85
|
-
| P0-53:hook bundles the single source (workflows.ts), not a hand mirror | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
86
|
-
| P0-54:workbench writeInit refuses to overwrite without an explicit intent | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
87
|
-
| P0-55:writeInit request carries an overwrite field | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
88
|
-
| P0-56:node marker resolves to node | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
89
|
-
| P0-57:root discovery climbs to the package.json directory | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
90
|
-
| P0-58:pom.xml resolves to java | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
91
|
-
| P0-59:go.mod resolves to go | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
92
|
-
| P0-60:Cargo.toml resolves to rust | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
93
|
-
| P0-61:requirements.txt resolves to python | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
94
|
-
| P0-62:empty tree reports unknown type | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
95
|
-
| P0-63:root discovery falls back to the start directory | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
96
|
-
| P0-64:mixed tree reports unknown, never a silent single-language guess | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
97
|
-
| P0-65:root discovery stops at the git repository | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
98
|
-
| P0-66:node default verify command | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
99
|
-
| P0-67:java default verify command | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
100
|
-
| P0-68:go default verify command | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
101
|
-
| P0-69:unknown type has no default command | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
102
|
-
| P0-70:governance files are recognized as present | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
103
|
-
| P0-71:absent governance files are not listed | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
104
|
-
| P0-72:init write escaping the root is rejected (got: write target D:\outside.txt escapes the project root D:\repo) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
105
|
-
| P0-73:absolute target outside the root is rejected (got: write target C:\elsewhere\x.txt escapes the project root D:\repo) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
106
|
-
| P0-74:hook bundles the risk policy table (single source) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
107
|
-
| P0-75:hook requires high_risk before touching sensitive paths | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
108
|
-
| P0-76:project rules list from .dsh/rules/*.md | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
109
|
-
| P0-77:project skills list only dirs carrying SKILL.md | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
110
|
-
| P0-78:hashConfig is a deterministic sha256 | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
111
|
-
| P0-79:editing the frozen config changes the hash | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
112
|
-
| P0-80:status on a tampered snapshot is rejected (got: task "HASH-1" snapshot hash mismatch — the frozen workflow config was edited after creation. Restore the original record or recreate the task; the gate refuses to run on a tampered snapshot.) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
113
|
-
| P0-81:hook reuses the single hashConfig source | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
114
|
-
| P0-82:hook bundles the sha256 snapshot check | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
115
|
-
| P0-83:verify_hook reports an absent hook | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
116
|
-
| P0-84:verify_hook passes on the bundled hook | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
117
|
-
| P0-85:verify_hook rejects a tampered hook (got: hook integrity FAILED — .git/hooks/commit-msg differs from the bundled gate; reinstall with install_hook) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
118
|
-
| P0-86:downgrade without an approval service is rejected (got: downgrading a high_risk task requires human approval, but the approval service is unavailable) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
119
|
-
| P0-87:same-risk set_risk is a no-op | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
120
|
-
| P0-88:approved downgrade succeeds | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
121
|
-
| P0-89:downgrade is recorded in the audit trail | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
122
|
-
| P0-90:fresh task shows no bindings drift | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
123
|
-
| P0-91:create records the bundled-rules fingerprint | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
124
|
-
| P0-92:verify falls back to the eng.json command and fails loud without a shell service (got: verify 带 command 需要 host 提供 shell 服务(用于跑真实验证命令),但当前未挂载) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
125
|
-
| P0-93:verify falls back to the language default (node → npm test) and fails loud without a shell service (got: verify 带 command 需要 host 提供 shell 服务(用于跑真实验证命令),但当前未挂载) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
126
|
-
| P0-94:unknown-type verify keeps the legacy self-reported path | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
127
|
-
| P0-95:two tasks in one repo advance independently | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
128
|
-
| P0-96:propose returns the content hash | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
129
|
-
| P0-97:apply with a mismatched hash is rejected (got: init content changed since propose (expected_hash mismatch) — resubmit the identical proposed content) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
130
|
-
| P0-98:apply with the matching hash writes the file | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
131
|
-
| P0-99:project binding dir (.dsh/rules, .dsh/skills) stays committable by normal tasks | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
132
|
-
| P0-100:env files remain sensitive | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
133
|
-
| P0-101:dev_task writes carry the sandbox mode (default workspace-write) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
134
|
-
| P0-102:dev_task writes carry the session workspace root so in-workspace paths are never misjudged as out-of-root | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
135
|
-
| P0-103:escalation without a justification is rejected (got: invalid escalation: sandbox_permissions requires a justification) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
136
|
-
| P0-104:approved escalation upgrades the per-call write mode | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
137
|
-
| P0-105:escalation without an approval service fails closed (got: sandbox escalation to danger-full-access requires human approval, but the approval service is unavailable) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
138
|
-
| P0-106:raising risk on a minimal flow is rejected (same gate as create) (got: cannot raise risk to high_risk on flow "minimal" — it lacks the required capabilities (verification_gate, file_scope, review_gate). Use the standard flow.) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
139
|
-
| P0-107:raising risk on the standard flow succeeds | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
140
|
-
| P0-108:remote rejects non-absolute workspace paths | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
141
|
-
| P0-109:remote rejects system-wide roots | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
142
|
-
| P0-110:bare verify ran the default command | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
143
|
-
| P0-111:verify ran in the recorded project root, not the session cwd | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
144
|
-
| P0-112:receipt binds the recorded project root | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
145
|
-
| P0-113:revision increments on every write | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
146
|
-
| P0-114:concurrent-write CAS guard is present | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
147
|
-
| P0-115:absolute workspace passes | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
148
|
-
| P0-116:trailing slash is normalized | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
149
|
-
| P0-117:relative path is rejected (got: task-engine: workspace path must be absolute: relative/path) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
150
|
-
| P0-118:system root is rejected (got: task-engine: path is not an allowed workspace: C:/Windows/system32) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
151
|
-
| P0-119:case variant of a system root is rejected (got: task-engine: path is not an allowed workspace: c:/windows) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
152
|
-
| P0-120:registered workspace passes under any case | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
153
|
-
| P0-121:unregistered workspace is rejected once the registry is active (got: task-engine: workspace not registered on this host: D:/other-project) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
154
|
-
| P0-122:strict mode keeps rejecting unregistered workspaces (got: task-engine: workspace not registered on this host: D:/still-unregistered) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
155
|
-
| P0-123:strict mode still admits registered workspaces | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
156
|
-
| P0-124:CAS rejects writes when version changes after the content read (got: task "CAS-RACE" changed concurrently (file version moved) — reload status and retry this operation) | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
157
|
-
| P0-125:CAS preserves the concurrent writer record | 通过 | 未单独计时 | 无 | P0 明细输出 |
|
|
158
|
-
| Import-1:preview has no filesystem side effects and reports exact bytes | 通过 | 11.0717 ms | 无 | Node TAP 输出 |
|
|
159
|
-
| Import-2:confirmed install preserves binary assets and refuses duplicates | 通过 | 8.0443 ms | 无 | Node TAP 输出 |
|
|
160
|
-
| Import-3:changed content and changed installation target invalidate preview | 通过 | 2.3299 ms | 无 | Node TAP 输出 |
|
|
161
|
-
| Import-4:path traversal, Windows ADS and reserved names are rejected | 通过 | 1.572 ms | 无 | Node TAP 输出 |
|
|
162
|
-
| Import-5:case-colliding filenames are rejected | 通过 | 1.3899 ms | 无 | Node TAP 输出 |
|
|
163
|
-
| Import-6:bundled names and ambiguous containers are rejected | 通过 | 0.8907 ms | 无 | Node TAP 输出 |
|
|
164
|
-
| Import-7:single-file rule accepts UTF-8 BOM and CRLF; empty rules are refused | 通过 | 3.1442 ms | 无 | Node TAP 输出 |
|
|
165
|
-
| Import-8:file and directory prefix conflicts fail during preview | 通过 | 0.7124 ms | 无 | Node TAP 输出 |
|
|
166
|
-
| Import-9:failed installation removes only its own incomplete directory | 通过 | 6.7741 ms | 无 | Node TAP 输出 |
|
|
167
|
-
| Import-10:host directory scanner resolves one container child and excludes caches | 通过 | 5.6005 ms | 无 | Node TAP 输出 |
|
|
168
|
-
| Import-11:host scanner rejects symlink or junction source paths | 通过 | 2.4246 ms | 无 | Node TAP 输出 |
|
|
169
|
-
| Import-12:deep directories and oversized files fail before installation | 通过 | 21.9509 ms | 无 | Node TAP 输出 |
|
|
170
|
-
| Import-13:invalid UTF-8, encoding and absent source directories report errors | 通过 | 1.2419 ms | 无 | Node TAP 输出 |
|
|
171
|
-
| Import-14:registered host workspace wins over client spelling; unknown paths fail | 通过 | 2.6087 ms | 无 | Node TAP 输出 |
|
|
172
|
-
| Import-15:legacy host retains its explicit workspace policy | 通过 | 0.214 ms | 无 | Node TAP 输出 |
|
|
173
|
-
| Import-16:host registry failures are not downgraded to legacy permissions | 通过 | 0.1672 ms | 无 | Node TAP 输出 |
|
|
174
|
-
| Import-17:ledger shows absent storage as empty and propagates access errors | 通过 | 18.696 ms | 无 | Node TAP 输出 |
|
|
175
|
-
| Import-18:ledger rejects malformed records instead of pretending there are no tasks | 通过 | 0.3443 ms | 无 | Node TAP 输出 |
|
|
176
|
-
|
|
177
|
-
## 缺陷与复测
|
|
178
|
-
|
|
179
|
-
首次大文件边界测试触发 Base64 正则回溯导致 RangeError;已改用 Buffer 解码后规范编码比对,本次 Import-12 通过。目录中同时含文件 a 与 a/b 的输入现于预览拒绝(Import-8);磁盘故障回滚通过独立写入故障注入覆盖(Import-9),且验证兄弟文件保留。任务 CAS 测试在读取期间注入另一写者,拒绝覆盖并保留并发内容。
|
|
180
|
-
|
|
181
|
-
## 数据与环境
|
|
182
|
-
|
|
183
|
-
单元测试使用 mkdtemp 独立临时目录并在 teardown 删除;文件写入故障注入在 finally 恢复 fs 方法。实机只添加 codex-ui-review-skill 与 codex-ui-review-rule.md 两个一次性测试资源,清理结果见报告。用户原有 software-testing 资源和任务未修改。
|
|
184
|
-
|
|
185
|
-
profile 的 pnpm peers check 报缺少五个 Harness peer;实际运行由 Harness 源码环境提供,工作台功能通过。干净 npm 项目自动解析 peer 安装通过。显式添加已实测 0.1.3-alpha.1 预发布分支,避免 semver 将其排除。没有通过关闭依赖安全策略来安装。
|
|
186
|
-
|
|
187
|
-
## 首轮 CI 差异与修复
|
|
188
|
-
|
|
189
|
-
GitHub run 34950017436:Node 22 与 24 的安装、类型检查和 npm test 均通过;Node 24 发布包脚本错误地把测试成功输出判为失败,Node 22 发布包任务随后被矩阵 fail-fast 取消。原因是检查脚本依赖 `# fail 0`,却没有固定 Node test reporter,Node 24 默认输出格式与本机不同。修复为显式 `--test-reporter=tap`;矩阵关闭 fail-fast 以保留各版本完整结果,没有跳过测试或降低通过条件。复验状态见 GitHub Actions。
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# 0.23.0 测试报告
|
|
2
|
-
|
|
3
|
-
本地发布候选验证通过。范围为资源导入、工作台交互、工作区注册路径、任务并发写入和 npm 包入口;不代表完成所有模型驱动的需求到提交流程、全部平台验证或安全认证。
|
|
4
|
-
|
|
5
|
-
环境与逐条结果见[测试执行记录](测试执行记录.md)。
|
|
6
|
-
|
|
7
|
-
| 验证集 | 已执行 | 通过 | 失败 | 跳过 |
|
|
8
|
-
|---|---:|---:|---:|---:|
|
|
9
|
-
| P0 验收断言(含部分静态断言) | 125 | 125 | 0 | 0 |
|
|
10
|
-
| Node 行为用例 | 18 | 18 | 0 | 0 |
|
|
11
|
-
| 实机交互场景 | 11 | 11 | 0 | 0 |
|
|
12
|
-
| 发布包检查点 | 18 | 18 | 0 | 0 |
|
|
13
|
-
| 构建/host+client 类型检查命令 | 2 | 2 | 0 | 0 |
|
|
14
|
-
|
|
15
|
-
各组包含重复验证,不相加为独立测试总数。源码和实际安装包内的行为测试均通过。首次 Base64 大包测试发现并修复了栈溢出;最终无失败。
|
|
16
|
-
|
|
17
|
-
## 需求追踪
|
|
18
|
-
|
|
19
|
-
| 需求 | 证据 |
|
|
20
|
-
|---|---|
|
|
21
|
-
| 系统文件选择与项目/个人安装 | UI-02~06,Import-1~7 |
|
|
22
|
-
| 安装前校验、拒绝覆盖与失败清理 | Import-1~13,UI-03~05 |
|
|
23
|
-
| 工作区信任来源 | Import-14~16,UI-01 |
|
|
24
|
-
| CAS 竞态 | P0 明细中的读取期间并发写入/保留另一写者断言 |
|
|
25
|
-
| 窄屏、筛选与弹窗 | UI-07~11 |
|
|
26
|
-
| 损坏/不可读任务可见 | Import-17~18 |
|
|
27
|
-
| 真实 npm 包可安装、入口可用 | 发布包 18 个检查点 |
|
|
28
|
-
|
|
29
|
-
## 剩余限制
|
|
30
|
-
|
|
31
|
-
- 主机工作区注册不等于会话级授权;本地任务 JSON 没有签名。需要 Harness 调用上下文与可信存储支持才能完成多用户边界。
|
|
32
|
-
- 整包内存上传未做 100 MB 远程网关/并发压力测试;浏览器源符号链接不可辨识;未覆盖断电中断和恶意同权限进程抢改目录。
|
|
33
|
-
- 实机为 Windows/Chromium、当前 Harness 源码;没有执行 macOS/Linux、其他浏览器或真实模型从建任务到提交的全流程。本地 hook 不能替代服务端 CI 验证。
|
|
34
|
-
- 原生选择器取消、完整屏幕阅读器与深色主题尚未形成专门验收矩阵;全量语言字典、资源升级和备份属于后续建议。
|
|
35
|
-
- profile 缺少单独声明的 Harness peer 会产生警告;源码主机与干净 npm 安装验证都通过,不能推断所有第三方 profile 都兼容。
|
|
36
|
-
- GitHub Actions 与 npm 公网发布状态单独记录,不以本地成功代替。
|
|
37
|
-
|
|
38
|
-
## 清理与发布状态
|
|
39
|
-
|
|
40
|
-
实机技能附件与规则文件均核对 SHA-256 一致,两个一次性资源已清理并确认目标不存在;源码 fixture 留在评测工作目录,不进入发布仓库。源历史 163 个 blob 和当前待发布文件的常见凭据模式扫描无命中;模式扫描不保证发现所有形式的秘密。
|
|
41
|
-
|
|
42
|
-
完整修改与后续建议见[发布说明](../../releases/0.23.0.md)。收录指南要求仓库创建满一天,申请材料已准备,提交与合并应分别确认。
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# 0.23.1 发布验证
|
|
2
|
-
|
|
3
|
-
[← 发布说明](../../releases/0.23.1.md)
|
|
4
|
-
|
|
5
|
-
日期:2026-09-16。对象:插件 0.23.1。此文记录插件验证,不等同业务项目端到端验收。
|
|
6
|
-
|
|
7
|
-
## 检查范围
|
|
8
|
-
|
|
9
|
-
| 检查 | 内容 | 状态 |
|
|
10
|
-
| --- | --- | --- |
|
|
11
|
-
| 新字段提示回归 | 两个新增用例先失败,修复后通过;错误输入不写入台账,提示按冻结流程变化 | 通过 |
|
|
12
|
-
| 流程回归 | 15项:审核保留、标题保护、派工状态、任务发现、技能回执、沙箱透传、Git回写、过期提示、字段披露及技能来源/注册 | 通过 |
|
|
13
|
-
| host/client 类型检查 | 两个 TypeScript 编译面 | 通过 |
|
|
14
|
-
| P0 与资源测试 | 126项基础检查、18项资源测试 | 通过 |
|
|
15
|
-
| 安装包黑盒 | 打包、干净项目安装、入口导入、客户端注册、包内测试和启用脚本语法 | 通过 |
|
|
16
|
-
|
|
17
|
-
流程用例名称及断言位于包内 `.workflow-test.mjs`,资源用例位于 `.resource-test.mjs`,基础断言位于 `.p0-test.mjs`。发布前执行日志保留在发布工作区。`npm run typecheck` 与 `npm run verify:package` 均退出0,安装包检查包含实际安装后的包内测试。逐项运行明细见[自动化测试明细](自动化测试明细.md)。
|
|
18
|
-
|
|
19
|
-
## 新增用例覆盖
|
|
20
|
-
|
|
21
|
-
1. 当前需求阶段披露 scope/acceptance_criteria;返回准确缺项;未定义字段拒绝时整个记录保持不变;修正字段后可继续。
|
|
22
|
-
2. 敏捷流程仅披露 scope,设计阶段披露自身字段,无记录阶段返回空列表。字段提示从冻结配置读取,不改变历史任务。
|
|
23
|
-
|
|
24
|
-
新增测试在修复前均失败,避免只断言实现自身返回成功。状态查询一致性、真实提交、验证过期及失败技能等既有回归一并执行。
|
|
25
|
-
|
|
26
|
-
## 实机证据的适用范围
|
|
27
|
-
|
|
28
|
-
rc.3 在真实业务需求中走完同一任务的审批、8项实施审核、测试技能、真实命令验证、范围受控本地提交及哈希回写。新增文档后过期的验证和测试技能回执实际阻止过提交,重验后恢复。rc.5 的状态提示修复及本次字段披露有自动化证据;由于用户暂停业务重跑,没有本版完整业务重跑证据。
|
|
29
|
-
|
|
30
|
-
实机包含观察方干预,不算完全自主。业务结构树真实联调未通过;额外布局与虚拟滚动需求未实施。没有以这些未完成事项宣称产品业务全通过。
|
|
31
|
-
|
|
32
|
-
## 发布限制
|
|
33
|
-
|
|
34
|
-
仅已执行检查可标通过。包测试使用模拟宿主与干净安装,不能覆盖所有 Harness 版本、模型行为或共享部署权限场景。技能指引不能强制模型报告内容准确,所有完成结论仍须结合证据审查。
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
# 0.23.1 自动化测试明细
|
|
2
|
-
|
|
3
|
-
执行日期:2026-09-16。命令:`node --test --test-reporter=tap .resource-test.mjs .workflow-test.mjs`。
|
|
4
|
-
|
|
5
|
-
结果:33项全部通过(资源18项、流程15项),失败0、跳过0。以下耗时来自该次TAP日志,单位毫秒。P0的126项逐条断言另由安装包黑盒运行并通过,不合并计算为本表用例。
|
|
6
|
-
|
|
7
|
-
| 序号 | 用例 | 状态 | 耗时(ms) | 失败原因 |
|
|
8
|
-
| --- | --- | --- | ---: | --- |
|
|
9
|
-
| 1 | preview has no filesystem side effects and reports exact bytes | 通过 | 14.1514 | — |
|
|
10
|
-
| 2 | confirmed install preserves binary assets and refuses duplicates | 通过 | 10.1495 | — |
|
|
11
|
-
| 3 | changed content and changed installation target invalidate preview | 通过 | 3.697 | — |
|
|
12
|
-
| 4 | path traversal, Windows ADS and reserved names are rejected | 通过 | 1.2775 | — |
|
|
13
|
-
| 5 | case-colliding filenames are rejected | 通过 | 1.307 | — |
|
|
14
|
-
| 6 | bundled names and ambiguous containers are rejected | 通过 | 1.1597 | — |
|
|
15
|
-
| 7 | single-file rule accepts UTF-8 BOM and CRLF; empty rules are refused | 通过 | 4.3463 | — |
|
|
16
|
-
| 8 | file and directory prefix conflicts fail during preview | 通过 | 1.1838 | — |
|
|
17
|
-
| 9 | failed installation removes only its own incomplete directory | 通过 | 10.333 | — |
|
|
18
|
-
| 10 | host directory scanner resolves one container child and excludes caches | 通过 | 5.7372 | — |
|
|
19
|
-
| 11 | host scanner rejects symlink or junction source paths | 通过 | 2.4564 | — |
|
|
20
|
-
| 12 | deep directories and oversized files fail before installation | 通过 | 32.4539 | — |
|
|
21
|
-
| 13 | invalid UTF-8, encoding and absent source directories report errors | 通过 | 1.8314 | — |
|
|
22
|
-
| 14 | registered host workspace wins over client spelling; unknown paths fail | 通过 | 2.952 | — |
|
|
23
|
-
| 15 | legacy host retains its explicit workspace policy | 通过 | 0.3168 | — |
|
|
24
|
-
| 16 | host registry failures are not downgraded to legacy permissions | 通过 | 0.1657 | — |
|
|
25
|
-
| 17 | ledger shows absent storage as empty and propagates access errors | 通过 | 21.1636 | — |
|
|
26
|
-
| 18 | ledger rejects malformed records instead of pretending there are no tasks | 通过 | 0.3444 | — |
|
|
27
|
-
| 19 | 审查通过后更新状态并激活下一项,保留已完成项的审计 | 通过 | 9.621 | — |
|
|
28
|
-
| 20 | 追加修复项可按 id 保留旧标题,拒绝已完成项改名后静默丢审核 | 通过 | 2.9022 | — |
|
|
29
|
-
| 21 | 派发立即反映进行中,重派不复用旧审核且保持单一进行项 | 通过 | 2.2759 | — |
|
|
30
|
-
| 22 | 无任务 id 的 status 发现当前工作区任务并支持分支过滤 | 通过 | 0.904 | — |
|
|
31
|
-
| 23 | 状态明确区分内置节点门禁与附加技能命令回执,避免重复验证 | 通过 | 2.5274 | — |
|
|
32
|
-
| 24 | status 披露当前阶段记录字段和缺项,字段误用不写入且可按提示恢复 | 通过 | 2.3448 | — |
|
|
33
|
-
| 25 | 记录字段来自冻结流程,精简流程不硬编码标准字段,无记录阶段返回空列表 | 通过 | 3.7337 | — |
|
|
34
|
-
| 26 | 可选内置技能回执不会因范围变更升级成额外流转门禁 | 通过 | 1.993 | — |
|
|
35
|
-
| 27 | 验证使用会话策略与取消信号,并明确返回失败及沙箱信息 | 通过 | 0.9705 | — |
|
|
36
|
-
| 28 | 只声明已测试、或加载失败,均不能冒充执行绑定技能 | 通过 | 1.2714 | — |
|
|
37
|
-
| 29 | 绑定技能失败阻止完成;成功后仍须提交真实 Git 回执 | 通过 | 4.7971 | — |
|
|
38
|
-
| 30 | 验证后修改代码会使旧回执失效,必须重新验证 | 通过 | 1.7267 | — |
|
|
39
|
-
| 31 | status 提交提示与真实门禁一致,分别披露过期验证和附加技能回执且不改台账 | 通过 | 4.7468 | — |
|
|
40
|
-
| 32 | 同名技能与规则在项目和个人目录各自保留管理入口 | 通过 | 19.3435 | — |
|
|
41
|
-
| 33 | 安装包的七个内置技能实际注册且可在资源目录发现 | 通过 | 2.9187 | — |
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
# 自动化测试逐项记录
|
|
2
|
-
|
|
3
|
-
来源:r02-business-tests.log;共 50 项。
|
|
4
|
-
|
|
5
|
-
| ID | 用例 | 结果 | 耗时 ms |
|
|
6
|
-
| --- | --- | --- | ---: |
|
|
7
|
-
| 1 | aggregate / 主验收用例:按批次累计并按 batchId 升序输出,总计正确 | 通过 | 1.7221 |
|
|
8
|
-
| 2 | aggregate / 空数组合法:batches 为空且 totals 全为 0 | 通过 | 0.3127 |
|
|
9
|
-
| 3 | aggregate / 零值合法:inspected 与 defective 为 0 时 defectRate 为 0 | 通过 | 0.2572 |
|
|
10
|
-
| 4 | aggregate / defective 为 0 而 inspected 大于 0 时 defectRate 为 0 | 通过 | 0.2215 |
|
|
11
|
-
| 5 | aggregate / batchId 去除前后空格后归并同一批次并累计 | 通过 | 0.1655 |
|
|
12
|
-
| 6 | aggregate / batches 按 batchId 字符串升序(码元序,与本地化无关) | 通过 | 0.2373 |
|
|
13
|
-
| 7 | aggregate / totals 为各批次之和,且 totals.defectRate 由总计重新计算 | 通过 | 0.1854 |
|
|
14
|
-
| 8 | aggregate / 根不是数组时抛出 ValidationError | 通过 | 0.5797 |
|
|
15
|
-
| 9 | defectRateOf / inspected 为 0 时返回 0 | 通过 | 0.2674 |
|
|
16
|
-
| 10 | defectRateOf / 按百分数计算并四舍五入到至多两位小数 | 通过 | 0.247 |
|
|
17
|
-
| 11 | defectRateOf / 所有取值的百分数结果都至多两位小数 | 通过 | 2.3668 |
|
|
18
|
-
| 12 | validateRecord / 返回归一化后的记录(batchId 已去除前后空格) | 通过 | 0.3104 |
|
|
19
|
-
| 13 | validateRecord / 记录不是对象 → 抛出带具体原因的 ValidationError | 通过 | 0.2946 |
|
|
20
|
-
| 14 | validateRecord / 记录是数组或 null → 抛出带具体原因的 ValidationError | 通过 | 0.0734 |
|
|
21
|
-
| 15 | validateRecord / batchId 缺失 → 抛出带具体原因的 ValidationError | 通过 | 0.0679 |
|
|
22
|
-
| 16 | validateRecord / batchId 不是字符串 → 抛出带具体原因的 ValidationError | 通过 | 0.1043 |
|
|
23
|
-
| 17 | validateRecord / batchId 为空字符串 → 抛出带具体原因的 ValidationError | 通过 | 0.0562 |
|
|
24
|
-
| 18 | validateRecord / batchId 为纯空白 → 抛出带具体原因的 ValidationError | 通过 | 0.0991 |
|
|
25
|
-
| 19 | validateRecord / inspected 为字符串数字 → 抛出带具体原因的 ValidationError | 通过 | 0.063 |
|
|
26
|
-
| 20 | validateRecord / inspected 为小数 → 抛出带具体原因的 ValidationError | 通过 | 1.6018 |
|
|
27
|
-
| 21 | validateRecord / inspected 为负数 → 抛出带具体原因的 ValidationError | 通过 | 0.2323 |
|
|
28
|
-
| 22 | validateRecord / defective 为字符串数字 → 抛出带具体原因的 ValidationError | 通过 | 0.0926 |
|
|
29
|
-
| 23 | validateRecord / defective 为小数 → 抛出带具体原因的 ValidationError | 通过 | 0.0762 |
|
|
30
|
-
| 24 | validateRecord / defective 为负数 → 抛出带具体原因的 ValidationError | 通过 | 0.1131 |
|
|
31
|
-
| 25 | validateRecord / defective 大于 inspected → 抛出带具体原因的 ValidationError | 通过 | 0.0584 |
|
|
32
|
-
| 26 | validateRecord / 非法记录的错误信息包含记录下标,便于定位 | 通过 | 0.1725 |
|
|
33
|
-
| 27 | aggregate 对非法输入的短路行为 / 逐条校验,遇到首条非法记录即抛出且不返回结果 | 通过 | 0.117 |
|
|
34
|
-
| 28 | CLI 成功路径(node src/cli.mjs <input.json>) / 主验收用例:B 10/1、A 5/0、B 10/2 → A 5/0/0、B 20/3/15,总计 25/3/12 | 通过 | 490.6289 |
|
|
35
|
-
| 29 | CLI 成功路径(node src/cli.mjs <input.json>) / 空数组合法:batches 为空,totals 全为 0 | 通过 | 281.0915 |
|
|
36
|
-
| 30 | CLI 成功路径(node src/cli.mjs <input.json>) / 零值合法:inspected 与 defective 均为 0 时 defectRate 为 0 | 通过 | 209.3507 |
|
|
37
|
-
| 31 | CLI 成功路径(node src/cli.mjs <input.json>) / batchId 去除前后空格后同批次累计 | 通过 | 113.847 |
|
|
38
|
-
| 32 | CLI 成功路径(node src/cli.mjs <input.json>) / defectRate 至多两位小数且为数值型 | 通过 | 87.8699 |
|
|
39
|
-
| 33 | CLI 参数错误 / 无参数 → 非零退出并说明缺少参数 | 通过 | 82.0618 |
|
|
40
|
-
| 34 | CLI 参数错误 / 文件不存在 → 非零退出并说明读取失败 | 通过 | 81.6583 |
|
|
41
|
-
| 35 | CLI 参数错误 / 多余参数 → 非零退出 | 通过 | 96.195 |
|
|
42
|
-
| 36 | CLI 参数错误 / 未知选项 → 非零退出 | 通过 | 98.5844 |
|
|
43
|
-
| 37 | CLI --help / --help 退出码 0 且 stdout 输出用法 | 通过 | 83.1551 |
|
|
44
|
-
| 38 | CLI --help / -h 退出码 0 且 stdout 输出用法 | 通过 | 89.7449 |
|
|
45
|
-
| 39 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / 非法 JSON 文本 | 通过 | 88.3874 |
|
|
46
|
-
| 40 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / 根不是数组 | 通过 | 88.4727 |
|
|
47
|
-
| 41 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / batchId 为空字符串 | 通过 | 79.4806 |
|
|
48
|
-
| 42 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / batchId 为纯空白 | 通过 | 78.3269 |
|
|
49
|
-
| 43 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / inspected 为负数 | 通过 | 81.4441 |
|
|
50
|
-
| 44 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / defective 为负数 | 通过 | 76.5963 |
|
|
51
|
-
| 45 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / inspected 为小数 | 通过 | 69.1574 |
|
|
52
|
-
| 46 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / defective 为小数 | 通过 | 72.4095 |
|
|
53
|
-
| 47 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / 数字写成字符串 | 通过 | 74.708 |
|
|
54
|
-
| 48 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / defective 大于 inspected | 通过 | 79.6399 |
|
|
55
|
-
| 49 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / 记录不是对象 | 通过 | 70.2125 |
|
|
56
|
-
| 50 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / 错误信息带记录下标,可定位到具体记录 | 通过 | 75.1616 |
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# 自动化测试逐项记录
|
|
2
|
-
|
|
3
|
-
来源:r03-business-tests.log;共 32 项。
|
|
4
|
-
|
|
5
|
-
| ID | 用例 | 结果 | 耗时 ms |
|
|
6
|
-
| --- | --- | --- | ---: |
|
|
7
|
-
| 1 | 单元 aggregate:同批次累计、码元升序并输出 defectRate | 通过 | 1.695 |
|
|
8
|
-
| 2 | 单元 aggregate:空数组得到空 batches 与全零 totals | 通过 | 0.2052 |
|
|
9
|
-
| 3 | 单元 aggregate:inspected 为 0 时 defectRate 为 0 | 通过 | 0.1467 |
|
|
10
|
-
| 4 | 单元 aggregate:defectRate 至多两位小数且为数值类型 | 通过 | 0.2306 |
|
|
11
|
-
| 5 | 单元 aggregate:totals.defectRate 基于累计值而非各批次比率平均 | 通过 | 0.111 |
|
|
12
|
-
| 6 | 单元 aggregate:按 batchId 字符串码元升序(大写先于小写) | 通过 | 0.0989 |
|
|
13
|
-
| 7 | 单元 validateRecords:batchId 去除前后空格后作为同一批次 | 通过 | 0.1417 |
|
|
14
|
-
| 8 | 单元 validateRecords:接受非负整数与零值边界 | 通过 | 0.1628 |
|
|
15
|
-
| 9 | 单元 validateRecords:拒绝非数组、非法元素与非法字段 | 通过 | 0.683 |
|
|
16
|
-
| 10 | AC1 同批次累计,stdout 仅一行 JSON,totals 正确 | 通过 | 74.2086 |
|
|
17
|
-
| 11 | AC2 空数组合法 | 通过 | 75.882 |
|
|
18
|
-
| 12 | AC3 零数合法 | 通过 | 85.2254 |
|
|
19
|
-
| 13 | AC4 batchId 去空格归并并按码元升序 | 通过 | 82.9206 |
|
|
20
|
-
| 14 | AC5 非法 JSON 失败且 stdout 为空 | 通过 | 90.9043 |
|
|
21
|
-
| 15 | AC6 顶层非数组失败且 stdout 为空 | 通过 | 379.1634 |
|
|
22
|
-
| 16 | AC7 batchId 为空字符串 → 非零退出、stdout 为空、stderr 具体 | 通过 | 80.0845 |
|
|
23
|
-
| 17 | AC7 batchId 为纯空白 → 非零退出、stdout 为空、stderr 具体 | 通过 | 74.659 |
|
|
24
|
-
| 18 | AC7 batchId 缺失 → 非零退出、stdout 为空、stderr 具体 | 通过 | 78.5134 |
|
|
25
|
-
| 19 | AC8 inspected 为负数 → 非零退出、stdout 为空、stderr 具体 | 通过 | 121.0524 |
|
|
26
|
-
| 20 | AC8 defective 为负数 → 非零退出、stdout 为空、stderr 具体 | 通过 | 77.35 |
|
|
27
|
-
| 21 | AC9 inspected 为小数 → 非零退出、stdout 为空、stderr 具体 | 通过 | 66.7267 |
|
|
28
|
-
| 22 | AC9 defective 为小数 → 非零退出、stdout 为空、stderr 具体 | 通过 | 68.4103 |
|
|
29
|
-
| 23 | AC10 inspected 为字符串数字 → 非零退出、stdout 为空、stderr 具体 | 通过 | 71.1564 |
|
|
30
|
-
| 24 | AC10 defective 为字符串数字 → 非零退出、stdout 为空、stderr 具体 | 通过 | 71.2365 |
|
|
31
|
-
| 25 | AC11 defective 大于 inspected → 非零退出、stdout 为空、stderr 具体 | 通过 | 76.4629 |
|
|
32
|
-
| 26 | 非对象元素 → 非零退出、stdout 为空、stderr 具体 | 通过 | 72.6897 |
|
|
33
|
-
| 27 | AC12 无参数失败并提示用法 | 通过 | 75.6079 |
|
|
34
|
-
| 28 | 多余参数失败并提示用法 | 通过 | 73.248 |
|
|
35
|
-
| 29 | AC13 文件不存在失败且 stdout 为空 | 通过 | 71.4465 |
|
|
36
|
-
| 30 | AC14 --help 退出 0 并输出用法 | 通过 | 141.8224 |
|
|
37
|
-
| 31 | AC14 --help 优先于其他参数 | 通过 | 70.1995 |
|
|
38
|
-
| 32 | AC15 examples/batches.json 可直接运行并得到文档所述结果 | 通过 | 73.5514 |
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
# 0.23.2 实机循环回归报告
|
|
2
|
-
|
|
3
|
-
[← 发布说明](../../releases/0.23.2.md)
|
|
4
|
-
|
|
5
|
-
日期:2026-09-17。结论:权限缺陷修复后,两个新会话从同一空业务基线完成标准研发流程、独立验收、本地提交和归档回退;门禁专项通过。验证对象是本机 Harness 上的独立 CLI 项目,不是 QMS 页面、数据库或生产业务。
|
|
6
|
-
|
|
7
|
-
## 环境与方法
|
|
8
|
-
|
|
9
|
-
Harness 提交 `d347e703908d0406b7a7ef80e3a0e594d86b2215`,Windows、Node 22.22.3、web profile,模型 `deepseek-v4.1-flash`,工程化开发引擎预设。独立仓库 `D:\dshtest`,分支 `codex/plugin-live-regression`,基线 `aae3bf8994ef803cf8370f5f53840b508539499c` 仅有 `.gitignore`。
|
|
10
|
-
|
|
11
|
-
冻结需求为零依赖 ESM 质检批次统计 CLI:严格校验 JSON 记录,按 trim 后的 batchId 累计并按码元排序,计算百分数缺陷率,正确区分成功 JSON 与失败 stderr,提供单元测试、真实 CLI 子进程测试、样例及 README。所有业务代码由 DSH 编写;观察者只审阅、执行独立验收、归档及修复插件。每轮使用新会话,不读取前轮实现;QMS 未改动。
|
|
12
|
-
|
|
13
|
-
## 轮次结果
|
|
14
|
-
|
|
15
|
-
| 轮次 | 插件 | 业务测试 / 独立黑盒 | 流程结果 | 本地提交 |
|
|
16
|
-
| --- | --- | --- | --- | --- |
|
|
17
|
-
| R01 | 0.23.1 | 24 / 19 通过 | 插件验证权限缺陷阻塞交付;停止、归档,未冒充完成 | 无 |
|
|
18
|
-
| R02 | 0.23.2-rc.1 | 50 / 19 通过 | 审批、3项实施审核、验证、代码审核、提交回写、完成、归档回退通过 | `15ffd9c230363520a934586107ce9f4023e828ed` |
|
|
19
|
-
| R03 | 0.23.2-rc.3 | 32 / 19 通过 | 设计退回修订、4项实施审核、验证、代码审核、提交回写、完成、归档回退通过 | `4e476a514d3109417bac602e818460b09dd57289` |
|
|
20
|
-
|
|
21
|
-
R02 与 R03 的权限核心构建文件 SHA256 均为 `FD116354D20D870E8981B4C098E9F0BDBE9B213397918D7181FE07E0E1713688`;期间只修正提交规则及文档。rc.2 安装核对时发现新指南误称 status 返回格式字段,已改为实际的 `commit.label` 并重打 rc.3,rc.2 不计作业务轮次。
|
|
22
|
-
|
|
23
|
-
R02 为27项单元、23项CLI子进程测试;R03 为9项单元、23项CLI子进程测试。DSH 的 R03 最终文字误写8+24,本报告按实际测试文件与TAP用例核对为9+23。逐项结果和耗时见[R02明细](R02业务测试明细.md)、[R03明细](R03业务测试明细.md)。独立黑盒19项覆盖主用例、空数组、零值、trim与取整、4类非法顶层输入、7类非法字段、非法JSON、缺参数、缺文件和帮助。
|
|
24
|
-
|
|
25
|
-
## 门禁专项
|
|
26
|
-
|
|
27
|
-
| 场景 | 实际结果 | 结论 |
|
|
28
|
-
| --- | --- | --- |
|
|
29
|
-
| 未加载绑定技能即推进 | 返回 load skill requirement-analysis,未推进 | 通过 |
|
|
30
|
-
| 缺少需求产物与确认即推进 | 返回 requirement_confirmation / artifacts_present 未满足 | 通过 |
|
|
31
|
-
| 使用合法消息提前提交 | 返回当前阶段无提交检查点,revision仍为1 | 通过 |
|
|
32
|
-
| 普通权限运行 node --test | 真实exit1,子进程spawn EPERM,回执mode=workspace-write | 按预期失败 |
|
|
33
|
-
| 拒绝该命令的权限升级 | 工具报rejected,台账逐字节哈希不变 | 通过 |
|
|
34
|
-
| 明确重新授权后批准原命令 | 50项测试通过,exit0,回执mode=danger-full-access | 通过 |
|
|
35
|
-
| 修改唯一范围文件 | status出现验证过期的evidence_blockers,冻结旧回执保留 | 通过 |
|
|
36
|
-
| 同会话后续普通shell调用 | 原命令重新EPERM,未继承单次权限 | 通过 |
|
|
37
|
-
|
|
38
|
-
拒绝前后台账 SHA256 均为 `99F13BB166B4D0C9D7EC4EAE00F0471E7CEABD97541ADD85820A64A0D2008306`。专项任务 `DSH-GATE-PROBE` 停在需求阶段,不计作完整业务轮次。过期提交的检查点路径由自动化回归覆盖;本次专项实机验证到动态过期提示,未声称在该检查点另外执行过过期提交。
|
|
39
|
-
|
|
40
|
-
R03完整流程另通过正式 `dev_task verify` 执行 `npm test`:单次审批后32项通过、exit0、实际模式danger-full-access。R02使用可在受限环境运行的真实文件描述符子进程测试,其workspace-write成功回执不冒充权限修复证据。R03修正后的提交消息首次预检即获批准,随后核对真实Git提交并登记。
|
|
41
|
-
|
|
42
|
-
## 插件回归与缺陷
|
|
43
|
-
|
|
44
|
-
P1:0.23.1在执行验证命令之后才审批写台账,导致命令先运行且未收到批准模式。回归测试先复现“审批服务不可用却已调用一次shell”,修复后拒绝、取消、审批不可用、非法参数均不运行命令或改台账;verify与skill_result批准顺序、请求上下文、单次权限和回执写入不重复审批均受断言保护。
|
|
45
|
-
|
|
46
|
-
P2:随包提交规则要求模块名,而引擎要求任务id,R02实际出现两次格式拒绝。规则及手册改为当前任务id和status.commit.label;R03未再出现该格式错误。
|
|
47
|
-
|
|
48
|
-
源码构建、host/client类型检查、126项P0和37项node:test回归通过;候选包干净安装、入口导入、客户端注册、包内测试及CLI语法验证通过。源码测试明细见[自动化测试明细](自动化测试明细.md)。最终0.23.2的 `npm run verify:package` 由用户在插件源码目录执行并确认通过;此项依据用户执行反馈,观察者没有独立保存该次终端日志。发布版本与远端提交另外核对,不以本报告代替发布成功回执。
|
|
49
|
-
|
|
50
|
-
## 归档与干预
|
|
51
|
-
|
|
52
|
-
两个完成轮次的父提交均为B0,文件分别严格限制为10个、5个;归档前工作区干净,任务均为完成、review=pass,最终登记hash等于HEAD。业务ZIP、任务JSON、会话日志及独立验收记录保存在本地 `live-project-test/regression-20260917`;备份分支为 `codex/archive-dsh-reg-r02` 和 `codex/archive-dsh-reg-r03`。业务分支最终恢复B0,保留被忽略的历史台账。
|
|
53
|
-
|
|
54
|
-
| 归档 | 业务ZIP SHA256 |
|
|
55
|
-
| --- | --- |
|
|
56
|
-
| R02 | `2545B54A201D70D536B85BDB52F2356CE2364310FCAF32E99F759408BFC98D82` |
|
|
57
|
-
| R03 | `F7BB52228137BA0A37722097A26AF6BBE1AEFB09C416792F4EE94EA29E71DD56` |
|
|
58
|
-
|
|
59
|
-
观察者处理了正式需求/设计/权限审批;R03退回已知Node22测试目录入口问题,并要求DSH通过正式审批区分EPERM与入口错误,保留默认测试隔离和真实子进程。观察者未代写业务代码。测试包含这些干预,不能称为完全自主执行。
|
|
60
|
-
|
|
61
|
-
## 能力边界与未覆盖范围
|
|
62
|
-
|
|
63
|
-
`dev_task`对阶段、证据和提交登记实施门禁,通用文件写入不会逐次经过状态机;R03实际在实施项仍为todo时写入文件,随后才逐项审核和标记done。没有安装提交钩子时,不能据此宣称插件能阻止直接shell绕过提交预检。本轮未测试强行篡改台账、直接Git绕过、多人并发、QMS集成、全部Harness/模型版本或生产部署。
|
|
64
|
-
|
|
65
|
-
scope_hash只覆盖任务files的内容,不能证明命令或范围外业务文件未变;观察者已纠正DSH一次过度解读。模型报告也可能出现测试分类计数错误,必须复核实际日志。自动化中的模拟宿主与真实DSH会话分开计证,不互相替代。
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# 候选自动化用例明细
|
|
2
|
-
|
|
3
|
-
0.23.2-rc.1;37 项 node:test 全部通过。P0 126 项未改动,逐项结果沿用 p0-details.log,包内另复核全部通过。
|
|
4
|
-
|
|
5
|
-
| ID | 用例 | 结果 | 耗时 ms |
|
|
6
|
-
| --- | --- | --- | ---: |
|
|
7
|
-
| 1 | preview has no filesystem side effects and reports exact bytes | ok | 11.3153 |
|
|
8
|
-
| 2 | confirmed install preserves binary assets and refuses duplicates | ok | 8.326 |
|
|
9
|
-
| 3 | changed content and changed installation target invalidate preview | ok | 4.0861 |
|
|
10
|
-
| 4 | path traversal, Windows ADS and reserved names are rejected | ok | 2.0011 |
|
|
11
|
-
| 5 | case-colliding filenames are rejected | ok | 2.3438 |
|
|
12
|
-
| 6 | bundled names and ambiguous containers are rejected | ok | 1.9229 |
|
|
13
|
-
| 7 | single-file rule accepts UTF-8 BOM and CRLF; empty rules are refused | ok | 6.0905 |
|
|
14
|
-
| 8 | file and directory prefix conflicts fail during preview | ok | 1.2461 |
|
|
15
|
-
| 9 | failed installation removes only its own incomplete directory | ok | 10.4183 |
|
|
16
|
-
| 10 | host directory scanner resolves one container child and excludes caches | ok | 6.396 |
|
|
17
|
-
| 11 | host scanner rejects symlink or junction source paths | ok | 3.2175 |
|
|
18
|
-
| 12 | deep directories and oversized files fail before installation | ok | 22.504 |
|
|
19
|
-
| 13 | invalid UTF-8, encoding and absent source directories report errors | ok | 1.6991 |
|
|
20
|
-
| 14 | registered host workspace wins over client spelling; unknown paths fail | ok | 2.8311 |
|
|
21
|
-
| 15 | legacy host retains its explicit workspace policy | ok | 0.1852 |
|
|
22
|
-
| 16 | host registry failures are not downgraded to legacy permissions | ok | 0.1354 |
|
|
23
|
-
| 17 | ledger shows absent storage as empty and propagates access errors | ok | 23.1621 |
|
|
24
|
-
| 18 | ledger rejects malformed records instead of pretending there are no tasks | ok | 0.6101 |
|
|
25
|
-
| 19 | 审查通过后更新状态并激活下一项,保留已完成项的审计 | ok | 9.6898 |
|
|
26
|
-
| 20 | 追加修复项可按 id 保留旧标题,拒绝已完成项改名后静默丢审核 | ok | 2.3858 |
|
|
27
|
-
| 21 | 派发立即反映进行中,重派不复用旧审核且保持单一进行项 | ok | 2.3334 |
|
|
28
|
-
| 22 | 无任务 id 的 status 发现当前工作区任务并支持分支过滤 | ok | 1.0932 |
|
|
29
|
-
| 23 | verify 升级审批不可用时不得先执行命令 | ok | 0.997 |
|
|
30
|
-
| 24 | verify 拒绝、取消及无效升级参数均不执行命令或改写台账 | ok | 4.5955 |
|
|
31
|
-
| 25 | 验证命令审批先于执行,只授权本次命令且回执写入不重复审批 | ok | 3.841 |
|
|
32
|
-
| 26 | skill_result 审批拒绝时不执行命令、不写入技能回执 | ok | 0.8195 |
|
|
33
|
-
| 27 | 状态明确区分内置节点门禁与附加技能命令回执,避免重复验证 | ok | 2.7189 |
|
|
34
|
-
| 28 | status 披露当前阶段记录字段和缺项,字段误用不写入且可按提示恢复 | ok | 3.6317 |
|
|
35
|
-
| 29 | 记录字段来自冻结流程,精简流程不硬编码标准字段,无记录阶段返回空列表 | ok | 3.7388 |
|
|
36
|
-
| 30 | 可选内置技能回执不会因范围变更升级成额外流转门禁 | ok | 1.7078 |
|
|
37
|
-
| 31 | 验证使用会话策略与取消信号,并明确返回失败及沙箱信息 | ok | 0.8526 |
|
|
38
|
-
| 32 | 只声明已测试、或加载失败,均不能冒充执行绑定技能 | ok | 1.3581 |
|
|
39
|
-
| 33 | 绑定技能失败阻止完成;成功后仍须提交真实 Git 回执 | ok | 4.0405 |
|
|
40
|
-
| 34 | 验证后修改代码会使旧回执失效,必须重新验证 | ok | 4.9841 |
|
|
41
|
-
| 35 | status 提交提示与真实门禁一致,分别披露过期验证和附加技能回执且不改台账 | ok | 5.0372 |
|
|
42
|
-
| 36 | 同名技能与规则在项目和个人目录各自保留管理入口 | ok | 18.9429 |
|
|
43
|
-
| 37 | 安装包的七个内置技能实际注册且可在资源目录发现 | ok | 2.7658 |
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# 真实项目回归迭代
|
|
2
|
-
|
|
3
|
-
版本:0.23.1,汇总本轮候选修复;完整业务流程的实机证据来自 rc.3,后续修复有针对性回归及包验证。
|
|
4
|
-
|
|
5
|
-
以 EAM 设备结构树和单选弹窗需求重跑工作台,业务代码由工作台执行;插件修复与独立观察分开记录。
|
|
6
|
-
|
|
7
|
-
| 上一轮问题 | 本轮处理 |
|
|
8
|
-
| :--- | :--- |
|
|
9
|
-
| 项目技能被同名个人技能覆盖 | 资源目录保留各来源;绑定选择按名称去重。 |
|
|
10
|
-
| 无任务 ID 的入口 status 报错 | 返回候选列表,支持分支过滤,不猜测当前任务。 |
|
|
11
|
-
| 更新实施项状态清空审核记录 | 同 ID、同标题保留审核;重开或改标题使审核失效。 |
|
|
12
|
-
| verify 丢会话沙箱上下文 | 透传会话策略与取消信号,记录沙箱结果。 |
|
|
13
|
-
| 审核后已错过提交窗口 | 标准 v2 改为审核通过后提交,离开前核对 Git 回执。 |
|
|
14
|
-
| 完成才披露测试技能,未执行 | 终态绑定提前执行;加载记录和附加技能命令回执参与门禁。 |
|
|
15
|
-
| 内置技能被误当成附加技能重复登记 | 状态列出必需回执技能;可选内置回执过期不额外拦截。 |
|
|
16
|
-
| 子代理已开工而实施项仍待办 | 派工前登记并自动设进行中,禁止另一项同时进行;实际执行仍核对日志。 |
|
|
17
|
-
| 追加修复项重写标题使审核丢失 | 已有项支持省略标题;已审核项改名须先重新打开。 |
|
|
18
|
-
| 方案猜测字段、驳回后直接重试 | 要求核对资料和真实组件行为,先收集反馈再修订送审。 |
|
|
19
|
-
|
|
20
|
-
新任务验证使用真实命令,并关联声明文件内容。改动代码后重跑验证;不会把“我测过了”直接转换为通过。附加技能可用交付文件内容校验命令,但不能用恒成功命令充当验收。
|
|
21
|
-
|
|
22
|
-
旧任务使用冻结配置及原执行约定,不自动修改历史记录。规则解析优先级为内置、项目、个人;技能正文的选择由 Harness 技能目录负责。
|
|
23
|
-
|
|
24
|
-
边界:文件摘要只涵盖声明的任务文件,不涵盖数据库、远端接口、依赖和未声明文件;成功退出码不证明测试充分。审核意见仍需人工判断。当前没有对任务记录做签名,也不防止有权限的人直接手改状态。
|
|
25
|
-
|
|
26
|
-
验收要求:同一个真实需求走完确认、设计、开发、技能测试、验证、审核、受控提交;不得另建收尾任务绕过门禁,不得以简单命令替代失败的核心验证。插件发布与业务验收分开记录,未完成的真实联调不宣称通过。
|
|
27
|
-
|
|
28
|
-
执行指引:范围清楚的小修正可由主代理完成,保留状态、审核及定向验证,不强制重复派子代理;权限或沙箱拒绝须走正式审批或报告阻塞,禁止反复换命令或修改 ACL 规避。上述行为指引不能替代 Harness 的权限执行,也尚未证明可消除模型误用。
|
|
29
|
-
|
|
30
|
-
本轮 EAMDEV-R2 已在同一任务达到完成(revision 60),8 项审核齐全,software-testing 在终态前执行并记录真实回执,业务提交 95892e8 回写成功;未推送或发布。结构树真实请求返回非 JSON,配置大小写差异待授权修正,不能声称端到端验收通过。
|
|
31
|
-
|
|
32
|
-
实机发现状态查询仍将过期回执任务显示为可提交,但真实 commit 门禁拒绝。rc.5 让 status 使用与 commit 相同的技能和摘要阻塞检查,新增 evidence_blockers,保持状态查询只读。报告证据归属错误仍需审查,技能加载和退出码不能证明报告内容准确。
|
|
33
|
-
|
|
34
|
-
后续任务出现未定义记录字段:校验正确拒绝,但模型缺少主动字段提示。0.23.1 新增 artifact_requirements,按冻结流程返回当前阶段字段及缺项,错误附恢复说明;兼容敏捷流程只有 scope 的情况,两个新增用例先失败后通过。
|
|
35
|
-
|
|
36
|
-
完整重跑方法:每轮归档业务差异、任务和问题证据,修复插件后将本轮业务改动恢复到同一基线,用独立会话重新交付完整需求。保留插件改进,不把上一轮实现复制为下一轮成果。暂停期间不调用模型;额度/鉴权问题属于服务状态,不由本包修改凭证处理。
|