diff --git a/apps/ai-game-creator-shell/src/view/project-development/index.tsx b/apps/ai-game-creator-shell/src/view/project-development/index.tsx index 29c33bf23..484daa99d 100644 --- a/apps/ai-game-creator-shell/src/view/project-development/index.tsx +++ b/apps/ai-game-creator-shell/src/view/project-development/index.tsx @@ -8995,10 +8995,12 @@ export default function ProjectDevelopmentView({ resourceGenerationDraftRef.current.clear(); resourceAssetGenerationDraftRef.current.clear(); void (async () => { - const reportUnavailable = () => { + const reportUnavailable = (error?: unknown) => { if (!cancelled) { setResourceWorkbenchNotice( - '生成任务列表读取失败,暂时无法恢复历史任务', + error + ? `生成任务列表读取失败:${projectDevelopmentErrorMessage(error)}` + : '生成任务列表读取失败,暂时无法恢复历史任务', ); } }; @@ -9013,8 +9015,8 @@ export default function ProjectDevelopmentView({ return; } records = response; - } catch { - reportUnavailable(); + } catch (error) { + reportUnavailable(error); return; } if (cancelled) { diff --git a/apps/ai-game-creator-shell/tests/appSurface/project-development.suite.ts b/apps/ai-game-creator-shell/tests/appSurface/project-development.suite.ts index c83bafff6..625dc433b 100644 --- a/apps/ai-game-creator-shell/tests/appSurface/project-development.suite.ts +++ b/apps/ai-game-creator-shell/tests/appSurface/project-development.suite.ts @@ -8133,7 +8133,9 @@ export function registerProjectAgentStatusTests() { expect(screen.getByRole('button', { name: '生成任务' })).not.toBeNull(); expect( - await screen.findByText('生成任务列表读取失败,暂时无法恢复历史任务'), + await screen.findByText( + '生成任务列表读取失败:unexpected invoke list_local_project_asset_generations', + ), ).not.toBeNull(); }, 20_000); diff --git a/docs/adr/【ADR】AGC命令错误结构化与错误报告口径-2026-10-01.md b/docs/adr/【ADR】AGC命令错误结构化与错误报告口径-2026-10-01.md index 9d5823eed..88cc12551 100644 --- a/docs/adr/【ADR】AGC命令错误结构化与错误报告口径-2026-10-01.md +++ b/docs/adr/【ADR】AGC命令错误结构化与错误报告口径-2026-10-01.md @@ -139,6 +139,7 @@ DirectProject 已经解决过同一类问题([`【ADR】DirectProject命令接 - 项目打开前的权限策略读取属于 IPC 边界,失败不得静默中止加载;必须保留安全正文并标明是策略读取失败。 - 错误报告通知自身的快照读取失败也不能被通知组件的重试逻辑吞掉;重试耗尽后必须显示安全正文和再次读取入口。 - 共享异步操作 hook(包括 Prompt Polish)捕获异常时,操作指引可以保留,但固定失败文案后必须附精确脱敏正文。 +- 资源画布历史任务账本读取属于用户可见的恢复路径:异常正文必须进入提示条;只有响应形状错误这类没有底层异常的情况才使用明确的契约提示。 ## 后果与边界 diff --git a/docs/project-memory/plans/【里程碑】AGC错误具体文本展示-2026-10-04.md b/docs/project-memory/plans/【里程碑】AGC错误具体文本展示-2026-10-04.md index 3322c34b4..f5393c8c1 100644 --- a/docs/project-memory/plans/【里程碑】AGC错误具体文本展示-2026-10-04.md +++ b/docs/project-memory/plans/【里程碑】AGC错误具体文本展示-2026-10-04.md @@ -60,3 +60,4 @@ DirectProject 回合失败在确认不是客户端内部不可归类故障时, - 项目打开时读取 `conversation.read` 权限策略的 IPC 失败原来静默 return;现把脱敏错误正文写入项目状态和聊天错误提示。 - 错误报告通知读取本地待报告快照失败原来只重试后静默消失;现显示“项目诊断读取失败”及安全正文,并提供重试入口。 - 共享 Prompt Polish hook 的注入请求/规范化/回填异常原来只显示固定失败提示;现保留精确脱敏后的异常正文,聊天输入和资源润色共用同一口径。 +- 资源画布历史生成任务账本读取失败原来统一显示“暂时无法恢复历史任务”;现在保留 Tauri/文件读取正文,非数组响应仍单独保留契约错误提示。