From 4edbf62c812ecad9b522418d2fdd61ac6a4b7288 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Tue, 6 Oct 2026 21:06:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=92=E7=BB=9D=E6=B2=A1=E6=9C=89=20type=20?= =?UTF-8?q?=E7=9A=84=E4=BC=AA=E7=BB=93=E6=9E=84=E5=8C=96=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit export/state/xhsMinitoolApi.ts:guardStructuredFailure 在装 wrapper 前校验对象至少带字符串 type,否则原样抛出交给错误池。 --- .../view/project-development/export/state/xhsMinitoolApi.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/ai-game-creator-shell/src/view/project-development/export/state/xhsMinitoolApi.ts b/apps/ai-game-creator-shell/src/view/project-development/export/state/xhsMinitoolApi.ts index f4d97c9e3..5a95878e1 100644 --- a/apps/ai-game-creator-shell/src/view/project-development/export/state/xhsMinitoolApi.ts +++ b/apps/ai-game-creator-shell/src/view/project-development/export/state/xhsMinitoolApi.ts @@ -146,6 +146,9 @@ async function guardStructuredFailure( // 非对象同理(命令没注册、参数序列化失败时 Tauri 会拒绝一个裸字符串):装进 wrapper 只会 // 得到一份没有 `type` 的假变体,调用方按变体分流时会走到不该到的分支。 if (typeof error !== 'object' || error === null) throw error; + // 非对象之外,还要确认它长得像生成的判别联合:缺字符串 `type` 的普通对象装进 wrapper 只会变成 + // 「没有任何变体」的失败,分流落到 default,真正的拒绝原因反而被当成业务现场糊过去。 + if (typeof (error as { type?: unknown }).type !== 'string') throw error; throw new FailureClass(error as Payload); } }