From 1c1ece9e8f3205226fd1e02a4166a7be6c50c7b2 Mon Sep 17 00:00:00 2001 From: Linghong Date: Mon, 14 Sep 2026 21:01:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=AD=96=E5=88=92=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E8=AE=A2=E9=98=85=E5=B0=B1=E7=BB=AA=E6=97=B6=E5=BA=8F?= =?UTF-8?q?=20=E5=88=86=E7=A6=BB=E4=B8=9A=E5=8A=A1=E8=AF=BB=E5=8F=96?= =?UTF-8?q?=E4=B8=8E=E8=AE=A2=E9=98=85=E4=BB=A3=E6=AC=A1=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=20=E9=81=BF=E5=85=8D=E6=B8=85=E7=90=86=E7=AA=97=E5=8F=A3?= =?UTF-8?q?=E6=82=AC=E6=8C=82=E6=88=96=E6=8F=90=E5=89=8D=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/ai-game-creator-shell/src/App.tsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/apps/ai-game-creator-shell/src/App.tsx b/apps/ai-game-creator-shell/src/App.tsx index d5a6c705e..e8f3754a3 100644 --- a/apps/ai-game-creator-shell/src/App.tsx +++ b/apps/ai-game-creator-shell/src/App.tsx @@ -866,6 +866,12 @@ export function App({ } function designAgentEventSubscriptionReady() { + // 业务动作只读取当前订阅代次;清理与下一次 effect 建立之间不能创建 + // 一个没有订阅 effect 接管的悬挂 promise。 + return designAgentEventSubscriptionReadyRef.current ?? Promise.resolve(); + } + + function createDesignAgentEventSubscriptionReady() { if (!designAgentEventSubscriptionReadyRef.current) { designAgentEventSubscriptionReadyRef.current = new Promise( (resolve) => { @@ -2106,12 +2112,13 @@ export function App({ }, [planningV2Active]); useEffect(() => { - const ready = designAgentEventSubscriptionReady(); + const ready = createDesignAgentEventSubscriptionReady(); if (!canSubscribeTauriEvents() || !planningV2Active) { resolveDesignAgentEventSubscriptionReady(); return () => { if (designAgentEventSubscriptionReadyRef.current === ready) { designAgentEventSubscriptionReadyRef.current = null; + createDesignAgentEventSubscriptionReady(); } }; } @@ -2168,6 +2175,7 @@ export function App({ resolveDesignAgentEventSubscriptionReady(); if (designAgentEventSubscriptionReadyRef.current === ready) { designAgentEventSubscriptionReadyRef.current = null; + createDesignAgentEventSubscriptionReady(); } }; // applyDesignView 读的是 refs 和当前项目路径,