diff --git a/apps/ai-game-creator-shell/src/features/app-shell/useAccountReferral.ts b/apps/ai-game-creator-shell/src/features/app-shell/useAccountReferral.ts index bf121ec03..9fbc2fe3b 100644 --- a/apps/ai-game-creator-shell/src/features/app-shell/useAccountReferral.ts +++ b/apps/ai-game-creator-shell/src/features/app-shell/useAccountReferral.ts @@ -104,8 +104,9 @@ export function useAccountReferral(currentUserId: string) { try { await writeText(value); applyState('copied'); - } catch { + } catch (error) { applyState('failed'); + setError(`复制失败:${visibleClientErrorMessage(error)};请手动复制。`); } } diff --git a/apps/ai-game-creator-shell/src/features/app-shell/useAccountWallet.ts b/apps/ai-game-creator-shell/src/features/app-shell/useAccountWallet.ts index 5c5017ba2..333973b55 100644 --- a/apps/ai-game-creator-shell/src/features/app-shell/useAccountWallet.ts +++ b/apps/ai-game-creator-shell/src/features/app-shell/useAccountWallet.ts @@ -368,17 +368,18 @@ export function useAccountWallet(currentUserId: string) { ? { ...current, isConfirming: false, confirmMessage } : current, ); - } catch { + } catch (error) { if ( rechargeLifecycleRef.current === rechargeLifecycle && currentUserIdRef.current === snapshotOwnerUserId ) { + const detail = visibleClientErrorMessage(error); setNativeRechargePayment((current) => current?.orderId === orderId ? { ...current, isConfirming: false, - confirmMessage: '暂时没能确认到账状态,请稍后再试。', + confirmMessage: `暂时没能确认到账状态:${detail};请稍后再试。`, } : current, ); diff --git a/docs/adr/【ADR】AGC命令错误结构化与错误报告口径-2026-10-01.md b/docs/adr/【ADR】AGC命令错误结构化与错误报告口径-2026-10-01.md index 8fbb9cb76..186f49deb 100644 --- a/docs/adr/【ADR】AGC命令错误结构化与错误报告口径-2026-10-01.md +++ b/docs/adr/【ADR】AGC命令错误结构化与错误报告口径-2026-10-01.md @@ -143,6 +143,7 @@ DirectProject 已经解决过同一类问题([`【ADR】DirectProject命令接 - 异步业务 facade 不得把底层异常折成“空结果”来逃避错误处理;只有真实的空回包、未配置或浏览器桥不可用等无正文事实允许返回空值,Tauri/网络/IPC 异常必须上抛到统一脱敏出口。 - Direct 活动回合事件桥注册失败即使仍有一次性快照,也必须标明事件更新通道已失联并展示安全正文,不能只显示旧快照而让用户误以为活动状态持续可靠。 - 首页富文本剪贴板读取的“无内容”与“原生 IPC 失败”必须区分;后者展示安全正文,不能静默当作空剪贴板。 +- 账号邀请码复制与充值状态确认的失败提示也必须附安全正文;操作指引不能替换底层剪贴板、网络或支付查询原因。 ## 后果与边界 diff --git a/docs/project-memory/plans/【里程碑】AGC错误具体文本展示-2026-10-04.md b/docs/project-memory/plans/【里程碑】AGC错误具体文本展示-2026-10-04.md index 3bf31f5b4..47e7dc0e5 100644 --- a/docs/project-memory/plans/【里程碑】AGC错误具体文本展示-2026-10-04.md +++ b/docs/project-memory/plans/【里程碑】AGC错误具体文本展示-2026-10-04.md @@ -64,3 +64,4 @@ DirectProject 回合失败在确认不是客户端内部不可归类故障时, - 发现默认 `requestChatPromptPolish` 还会把 Tauri 润色命令异常吞成 `null`,导致共享 hook 无法看到平台正文;现仅对空回包/桥不可用保留 `null`,原生异常继续上抛并统一脱敏。 - Direct 活动回合事件桥注册失败原来只退回启动快照,面板没有说明后续更新已失联;现保留事件桥 IPC 正文并在标题栏/活动项目面板显示。 - 首页富文本输入的原生剪贴板图片/文本读取失败原来直接按空剪贴板处理;现通过输入区错误提示保留脱敏后的剪贴板 IPC 正文。 +- 账号邀请码复制和微信充值状态确认仍有固定“复制失败/暂时没能确认到账”路径;现保留剪贴板/支付查询错误正文并继续给操作指引。