024d3dd122
「拿不到字段就 stringify 整包」的兜底此前在 3 个页面各写一份, 其中 activity-outline:332 显式把 payload.raw 当兜底内容源,是最严重的一例。 - 新增 utils/ai-result.js:getPayloadStatus / isFailedPayload / isDisplayableAnswer / pickDisplayable / resolveDisplayText / logRawPayload 统一一处;解析不出内容给可读文案,原始报文只进 console.error 不进 UI;UUID 与无空格长 token 不算可展示内容 - manuscript parseResult:失败态短路、pickDisplayable 挡标识符、 summary 不再回显内部字段名 - activity-outline parseOutline:删掉 payload.raw 显式兜底,失败态短路 - assistant 页删除自带副本,改为 import 公共模块 - 流式收尾:appendAssistantChunk / appendOutlineChunk 支持 reset—— 后端判定失败时丢弃已累积的半截内容;新增 streamFailed 跟踪, 失败后不再 toast「内容生成完成」/「活动策划大纲生成完成」 - 删除死代码:两页 stringifyUnknown、大纲页 pickNonEmptyString 验证:verify-other-links.js 27/27(修复前代码跑同脚本 13 失败,判别力已证伪); verify-frontend-fallback.js 17/17 回归通过。 Refs: .scratch/ai-assistant/issues/03-other-links-raw-payload-fallback.md