修复:入队命令的真 Error 不再被包装,失败文案不再变成 {}

- directTurnEnqueueFailure.ts:invokeTurnEnqueue 的 catch 先判断 error instanceof Error,是则原样抛出
- JSON.stringify(new Error(...)) 得到 {}(message/stack 不可枚举),包进 EnqueueFailureWrapper 后控制器读 error.message 只能拿到 {},真实失败文案丢失
- 结构化拒绝是普通对象,不受影响;真 Error 交回调用方既有的 instanceof 分界,与类注释口径一致
This commit is contained in:
2026-10-03 13:41:30 +08:00
parent 2fe651c845
commit 0a16d5d574
@@ -48,6 +48,10 @@ export async function invokeTurnEnqueue(
...(input.creationType ? { creationType: input.creationType } : {}),
});
} catch (error) {
// 真 `Error`(Tauri 传输失败 / 命令 panic / 参数序列化失败)不是结构化拒绝:
// `JSON.stringify(new Error(...))` 得到 `{}`,装进 wrapper 只会把真实文案丢掉、让横幅显示 `{}`。
// 原样抛出,交给调用方的 `instanceof` 分界送回既有捕获链路(与上面的类注释同一口径)。
if (error instanceof Error) throw error;
throw new EnqueueFailureWrapper(error as EnqueueError);
}
}