Archived
fix(loop-engine): 「自动收步」留痕去掉 internal —— machinery() 挡下的第五处同病
R10:评审挖出第五个同病的 —— turn-runner.ts 那条「自动收步:…卡已交回」用的是
SKELETON 里就有的 kind: 'engine-transition',但 detail.internal: true 让它照样
被 machinery() 的第一刀滤掉,永远进不了工作日志。保留 item / auto 两个键,只删 internal。
新增回归测试:跑真实的 turn-runner.ts,捕获这一笔留痕喂给 structuredLog 全程,
断言可见且归系统。
顺带修实一条名不副实的既有用例:task-memory.test.ts:453 那条看着像在覆盖
「自动收步」这件事,但 entry() 工厂不设默认 detail,原入参是 {},根本没走到
machinery() 的 internal 过滤 —— 补上生产环境真实的 detail 形状(item / auto 两键)。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LKMZDwMbyKzjw6Hembwvet
This commit is contained in:
@@ -2037,7 +2037,13 @@ export function createTurnRunner(deps: TurnRunnerDeps): LoopEngineService {
|
||||
kind: 'engine-transition',
|
||||
/* 标题别以「完成」开头 —— `task-log.actorOf` 按 /^(完成|开始办)/ 认 AI,而这一步是引擎收的 */
|
||||
title: `自动收步:${current.item} —— 卡已交回,这一步到此为止`,
|
||||
detail: { internal: true, item: current.item, auto: current.item },
|
||||
/*
|
||||
* **不再标 internal**(2026-08-29,R10)—— 从前的 `internal: true` 会被
|
||||
* `task-log.ts` 的 `machinery()` 挡下,这一笔永远进不了工作日志。
|
||||
* `engine-transition` 本就在骨架里,标题也不匹配「完成/开始办」的正则,
|
||||
* 只要不被 `machinery()` 滤掉,它就会正确地归系统 —— 不必藏成内部痕。
|
||||
*/
|
||||
detail: { item: current.item, auto: current.item },
|
||||
});
|
||||
await deps.state.save(taskId, model, parsed, settled);
|
||||
/* `Navigation.kind` 没有 'progressed' 这一档(只有 proceed/breakpoint/converged,
|
||||
|
||||
Reference in New Issue
Block a user