From 97fc1918c4e20cda16231294a99ef46e4ba17da1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Sat, 19 Sep 2026 23:13:53 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=99=20Direct=20=E5=9B=9E=E5=90=88?= =?UTF-8?q?=E7=9A=84=E5=89=8D=E7=BD=AE=E6=AD=A5=E9=AA=A4=E8=A1=A5=E4=B8=8A?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E5=87=BA=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - apps/ai-game-creator-shell/src/view/project-development/chat/controller/useDirectProjectChatController.ts 在 startTurn 的异步 IIFE 里加 catch,按项目路径守卫后把错误交给 onRuntimeError - 原先只有 try/finally:写权限门 rejection 会成为未处理拒绝,回合静默失败且已乐观追加的用户消息没有解释 --- .../chat/controller/useDirectProjectChatController.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/apps/ai-game-creator-shell/src/view/project-development/chat/controller/useDirectProjectChatController.ts b/apps/ai-game-creator-shell/src/view/project-development/chat/controller/useDirectProjectChatController.ts index 0f6296674..60af13028 100644 --- a/apps/ai-game-creator-shell/src/view/project-development/chat/controller/useDirectProjectChatController.ts +++ b/apps/ai-game-creator-shell/src/view/project-development/chat/controller/useDirectProjectChatController.ts @@ -460,6 +460,14 @@ export function useDirectProjectChatController({ if (!invoke) return; invoked = true; await runTurn(invoke, nextProjectPath, input); + } catch (error) { + // 写权限门等前置步骤抛出时不能只留一个未处理的 rejection:回合会静默失败, + // 已经乐观追加的用户消息也没有任何解释。 + if (projectPathRef.current === nextProjectPath) { + onRuntimeError( + error instanceof Error ? error.message : String(error), + ); + } } finally { setTurnCancelling(false); // 权限门没放行时本轮从未发出:不刷新清单,也不推进队列,等确认后重跑。