# 会话 HTML 渲染技术设计 ## 进程和设置边界 `conversationHtmlRenderingEnabled` 属于现有 `ApplicationSettings`。Main 继续通过 版本化 JSON 文件持久化应用设置,IPC 继续复用已验证的 `settings:application:get/update` 通道,Preload 只暴露类型化设置方法。 应用设置格式升级到版本 11。版本 10 及更早设置在读取时补入默认值 `true`,无需保留第二份 状态或独立迁移文件。 ## Renderer 数据流 1. `App` 启动时读取应用设置,并把当前值传给每个保活的会话视图。 2. 平台功能 Switch 保存成功后立即更新 `App` 状态。 3. `ChatTimeline` 只为 `role === "assistant"` 且 `state === "complete"` 的正文传入 HTML 渲染权限;推理始终不传入该权限。 4. `MarkdownRenderer` 识别完整 HTML 回复以及 `html` / `htm` fenced code。 5. 关闭权限或回复仍在流式阶段时,HTML 保持代码文本。 ## 静态预览 `StaticHtmlPreview` 不使用 `dangerouslySetInnerHTML`。它先用 DOMPurify 清理文档,再通过 `DOMParser` 移除事件属性、非锚点 `href` 和非内联图片的 `src` / `poster`,最后把结果写入 `