背景
Quickstart 已通过共享 MarkdownContent 支持安全的 Markdown/GFM、代码高亮和 Mermaid,但项目中的其他模型输出仍存在两种不一致实现:
- Managed Agents Session transcript 使用一套手写 Markdown parser,只覆盖部分标题、列表、表格、加粗、链接和代码。
- Workbench Response Preview 与 Evaluate 模型输出仍按普通文本展示。
这会导致同一段模型输出在不同页面呈现不同,也让安全策略、代码高亮和 Mermaid 行为出现重复实现。
目标
复用共享 MarkdownContent,统一所有明确属于“模型生成内容”的展示边界:
- Managed Agents Session transcript 的普通文本事件。
- Workbench 单次运行的 Response Preview。
- Workbench Evaluate 表格中的模型输出与对比输出。
非目标
以下内容继续按纯文本、编辑器或结构化组件展示:
- 用户消息、可编辑 prompt、system prompt 和 agent 配置。
- 错误消息、状态文案、日志、命令、指标。
- Debug JSON、tool input/result、API payload。
- Memory/resource 正文以及其他没有声明 Markdown 合同的普通 description 字段。
设计约束
- 所有消费者复用同一个共享渲染器和 URL/HTML/图片安全策略,不新增 feature 专属 Markdown parser。
- 保持现有流式状态、API 合同、错误状态和数据持久化格式不变。
- Session transcript 删除被共享渲染器替代的手写解析器和死类型。
- 紧凑的 Evaluate 单元格需要限制布局影响;长代码和 Mermaid 不得撑破表格。
- Mermaid 保持动态加载、流式围栏闭合检测、主题适配和源码回退。
验收
- Session transcript、Workbench Response Preview、Evaluate 模型输出中的标题、强调、列表、代码和表格均生成语义化 DOM。
- 上述三个表面中的 Mermaid 围栏可以渲染;非法或未闭合围栏保留源码。
- 用户输入、日志、错误和 JSON payload 不会被解释为 Markdown。
- 危险链接、原始 HTML 和远程图片继续被阻止。
- 删除 Session transcript 的手写 Markdown parser 后,原有 transcript 行为测试及完整前端测试通过。
背景
Quickstart 已通过共享
MarkdownContent支持安全的 Markdown/GFM、代码高亮和 Mermaid,但项目中的其他模型输出仍存在两种不一致实现:这会导致同一段模型输出在不同页面呈现不同,也让安全策略、代码高亮和 Mermaid 行为出现重复实现。
目标
复用共享
MarkdownContent,统一所有明确属于“模型生成内容”的展示边界:非目标
以下内容继续按纯文本、编辑器或结构化组件展示:
设计约束
验收