修正合并后残留的 Direct 旧命令调用
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 7m16s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 7m22s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 7m41s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 7m42s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m57s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m5s
Project CI / Repository checks (pull_request) Failing after 5m23s
Project CI / Frontend tests (pull_request) Failing after 6m37s
Project CI / Native shell tests (pull_request) Successful in 9m25s
Project CI / Backend tests (pull_request) Successful in 9m38s
Project CI / AI game creator shell web tests (pull_request) Failing after 5m23s

删除前端对已移除 Direct 命令的回读

更新回合流类型注释
This commit is contained in:
2026-09-18 09:44:50 +00:00
parent 4efaec42ea
commit 90b707727c
2 changed files with 1 additions and 19 deletions
-18
View File
@@ -3679,31 +3679,13 @@ export function App({
agentId: null,
});
const resolvedProjectConversation = await projectConversation;
// 工具调用卡片走独立历史文件(`tool-calls.jsonl`)。必须在读完项目对话之后、
// 任何提前 return 之前回读:direct-codex 下后面那条 design-agent 分支会直接返回,
// 放在它后面等于永远不执行。文件缺失 / 读取失败都只是没有卡片,不能因此把整个
// 项目打开流程判失败。卡片按项目维度整表替换,同一 id 只渲染一次。
if (directCodexProductRuntime) {
const persistedToolCalls = await invoke<GameCreatorDirectToolCall[]>(
'read_direct_tool_calls',
{ projectPath: nextProjectPath },
).catch(() => []);
// 回合流(顺序真相)走独立历史文件(`turn-stream.jsonl`)。与工具调用同一处:必须在
// 读完项目对话之后、任何提前 return 之前回读。缺命令(老客户端)/ 缺文件 / 读取失败
// 都只是"这个回合没有流",界面回退到原来的渲染,不能因此把整个打开流程判失败。
const persistedTurnStream = await invoke<TurnStreamItem[]>(
'read_direct_turn_stream',
{ projectPath: nextProjectPath },
).catch(() => []);
if (
projectSupervisorHistoryLoadVersionRef.current !== loadVersion ||
localProjectPathRef.current !== nextProjectPath
)
return;
ensureDirectTimelineProject(nextProjectPath);
// 回读可能与实时事件交错:按同一身份合并,不能用旧磁盘快照覆盖实时状态。
applyDirectToolCalls(persistedToolCalls);
applyTurnStreamItems(persistedTurnStream);
// 重进会话时 Rust 侧可能仍登记着上一条 Direct 回合。不接管的话界面既不显示
// 过程卡也不给终止入口,用户再发消息只会被守卫拒绝("已有另一条回合正在运行")。
await restoreRunningDirectCodexTurn(nextProjectPath);
+1 -1
View File
@@ -1018,7 +1018,7 @@ interface TurnStreamItemBase {
}
/**
* 回合流条目`read_direct_turn_stream` 的返回元素)
* Direct 回合流条目。
*
* 与 Rust `DirectTurnStreamItem` 同形:`text` 段 ↔ `tool` 位置标记。
*/