@tea-agent/loop-agent 0.35.0-beta.2 → 0.35.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/CHANGELOG.md
CHANGED
|
@@ -2,13 +2,34 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
-
## [0.35.0
|
|
5
|
+
## [0.35.0] - 2026-08-13
|
|
6
|
+
|
|
7
|
+
### 重点更新
|
|
8
|
+
|
|
9
|
+
- 将前端实现契约收敛为单一事实源,消除多个 JSON 生产者导致的输出冲突
|
|
10
|
+
- 严格绑定 Mock 策略与冻结验证命令,在生成与写入阶段前置拦截不一致配置
|
|
11
|
+
- 设计评审节点引入协议感知重试,格式漂移不再直接拖垮整轮运行
|
|
12
|
+
- 改进控制台运行时上下文面板与操作员对话控件
|
|
13
|
+
|
|
14
|
+
### 新增
|
|
15
|
+
|
|
16
|
+
- 前端设计评审节点声明 `first-line-enum` 输出协议,VERDICT 首行缺失或畸形时在同一节点内有界重试
|
|
17
|
+
- 前端契约物化新增冻结命令校验,`verificationTarget.commandLabel` 必须落在冻结命令集合内,否则 fail-closed 拒绝
|
|
18
|
+
- plan/revision 提示词强化单 JSON 输出与逐条 AC 回显
|
|
6
19
|
|
|
7
20
|
### 改进
|
|
8
21
|
|
|
9
|
-
- 前端实现 DAG
|
|
10
|
-
-
|
|
11
|
-
-
|
|
22
|
+
- 前端实现 DAG 删除重复的 JSON 生产节点,由 prewrite gate 直接从生效计划末尾物化契约,避免 `invalid-output (found N)` 错误
|
|
23
|
+
- 前端 Mock 策略解析逻辑优化:auto 模式在无确认 Mock 能力或无确定性验证命令时强制 `not-needed`,required 模式缺少验证命令时生成期即阻塞
|
|
24
|
+
- 前端 prewrite gate 对不在允许范围内的 Mock 策略给出可操作错误,明确区分不同失败原因并附修复建议
|
|
25
|
+
- 设计评审 verdict 提取同时检查 `assistantText` 与 `stdout`,避免仅输出到 stdout 的 `request-revision` 被误判为缺失
|
|
26
|
+
- 控制台运行时上下文面板与操作员对话控件体验优化
|
|
27
|
+
|
|
28
|
+
### 修复
|
|
29
|
+
|
|
30
|
+
- 修复前端 Mock 策略与验证命令不一致仅在 verify trace 才暴露的问题,现已在 prewrite gate 前置安全拦截
|
|
31
|
+
- 修复多个 JSON 生产者导致契约物化失败的问题
|
|
32
|
+
- 修复 `VERDICT: request-revision` 仅输出到 stdout 时被误判为缺失的问题
|
|
12
33
|
|
|
13
34
|
## [0.34.5] - 2026-08-13
|
|
14
35
|
|
|
@@ -184,7 +184,15 @@ export async function runFrontendPrewriteGate(input) {
|
|
|
184
184
|
const raw = JSON.parse(await readFile(artifact.path, "utf8"));
|
|
185
185
|
const contract = frontendImplementationContractSchema.parse(raw);
|
|
186
186
|
if (!input.config.allowedMockStrategies.includes(contract.mockApi.strategy)) {
|
|
187
|
-
|
|
187
|
+
const quotedAllowed = input.config.allowedMockStrategies
|
|
188
|
+
.map((strategy) => JSON.stringify(strategy))
|
|
189
|
+
.join(", ");
|
|
190
|
+
const forcedNotNeeded = input.config.allowedMockStrategies.length === 1 &&
|
|
191
|
+
input.config.allowedMockStrategies[0] === "not-needed";
|
|
192
|
+
const reason = forcedNotNeeded
|
|
193
|
+
? "the task is auto/not-required or lacks authorized deterministic Mock verification commands"
|
|
194
|
+
: `allowed strategies are [${quotedAllowed}]`;
|
|
195
|
+
throw new Error(`frontend contract mock strategy "${contract.mockApi.strategy}" is incompatible with the generated allowed strategies [${quotedAllowed}]; ${reason}. Regenerate the DAG or set frontendMock.policy=required with authorized Mock verification commands.`);
|
|
188
196
|
}
|
|
189
197
|
// Fail early instead of at the verification trace: a non-not-needed strategy
|
|
190
198
|
// can only be proven by executing the DAG's frozen Mock verification
|
|
@@ -2562,6 +2562,7 @@ async function buildFrontendHybridDagFromTask(sources) {
|
|
|
2562
2562
|
allowedPaths: readOnlyPaths,
|
|
2563
2563
|
forbiddenPaths,
|
|
2564
2564
|
skills: FRONTEND_DESIGN_REVIEW_SKILLS,
|
|
2565
|
+
outputProtocol: REVIEW_VERDICT_OUTPUT_PROTOCOL,
|
|
2565
2566
|
outputContract: "Plain Markdown whose first non-empty line is VERDICT: pass or VERDICT: request-revision, followed by Findings, Required Plan Corrections, and Checked Items. No file writes.",
|
|
2566
2567
|
subtask_prompt: [
|
|
2567
2568
|
"Audit the frontend plan before implementation.",
|
|
@@ -2618,6 +2619,7 @@ async function buildFrontendHybridDagFromTask(sources) {
|
|
|
2618
2619
|
allowedPaths: readOnlyPaths,
|
|
2619
2620
|
forbiddenPaths,
|
|
2620
2621
|
skills: FRONTEND_DESIGN_REVIEW_SKILLS,
|
|
2622
|
+
outputProtocol: REVIEW_VERDICT_OUTPUT_PROTOCOL,
|
|
2621
2623
|
outputContract: "For the effective frontend plan, return plain Markdown whose first non-empty line is VERDICT: pass or VERDICT: request-revision, followed by Findings and Checked Items. No file writes.",
|
|
2622
2624
|
subtask_prompt: [
|
|
2623
2625
|
"Audit the revised frontend plan before implementation. This node runs only after request-revision and consumes frontend-plan-revision-pi.",
|