修复:入队失败提示对缺失字段容错,不再抛 Cannot read properties

- directTurnEnqueueFailure.ts:permissionRejected.policyDetail / inputRejected.detail 改用可选链再 trim
- 跨 IPC 载荷没有运行时校验,字段理论上可能是 null/undefined;原实现会在 runTurn 的 catch 里抛错,用户看到的是裸 TypeError、草稿还被清掉
- 缺失字段现在与空串同档:返回 null,按"没有提示"处理,保留草稿并走上报通道
This commit is contained in:
2026-10-03 13:41:00 +08:00
parent bc115002d4
commit 2fe651c845
@@ -73,9 +73,9 @@ export function enqueueFailureNotice(failure: EnqueueError): string | null {
case 'projectRootUnusable':
return '当前项目目录不存在或不是绝对路径';
case 'permissionRejected':
return failure.policyDetail.trim() || null;
return failure.policyDetail?.trim() || null;
case 'inputRejected':
return failure.detail.trim() || null;
return failure.detail?.trim() || null;
case 'contentEmpty':
return '聊天内容不能为空';
// 宿主 / 环境事实:必须走上报通道,文案由 `enqueueSystemFailureNoticeText` 给固定句。