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); } }