From b989f0bb0c8734e49ef5db57bfaa15526614e2f7 Mon Sep 17 00:00:00 2001 From: AskaEth Date: Wed, 7 Oct 2026 17:15:32 +0800 Subject: [PATCH] =?UTF-8?q?docs(=E5=A5=91=E7=BA=A6):=20v0.89=20=E7=99=BB?= =?UTF-8?q?=E8=AE=B0=E5=8A=A9=E6=89=8B=E6=B6=88=E6=81=AF=E7=9A=84=E8=A1=8C?= =?UTF-8?q?=E5=86=85=E6=A0=87=E7=AD=BE=E7=99=BD=E5=90=8D=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 依据:主人 2026-10-07 要求前端支持这类标签的基本渲染(Web 端实现已推库 2dae469,真机产物已一致)。 - 白名单:b/strong、i/em、code、u、s(成对)+ br(void),大小写不敏感 - 三条硬口径:白名单外按纯文本原样显示(字符一个不丢)/ 属性一律不解析 / 结构不平衡(未闭合、交错)整段降级为原文 - 安全红线:助手文本是不可信内容,任何端都不许整体当 HTML 注入; 正确姿势是解析成结构化节点、交给各自的安全渲染原语 - 范围克制:不做块级(段落仍走 §4.16 的 p 机制)、不做 a、不做 Markdown - 服务端零变更:无新端点 / 帧 / 字段,计数仍 14 + 25 + 40 = 79 --- Docs/api-client.md | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/Docs/api-client.md b/Docs/api-client.md index 59e4c81..853ccc8 100644 --- a/Docs/api-client.md +++ b/Docs/api-client.md @@ -1,6 +1,6 @@ # Cyrene v2 客户端 API 契约 -> **契约版本:`v0.88`**(上一版 `v0.87`,其条目见 §6;`v0.86` / `v0.85` / `v0.84` / `v0.83` / `v0.82` / `v0.81` / `v0.80` / `v0.79` / `v0.78` / `v0.77` / `v0.76` / `v0.75` / `v0.74` / `v0.73` / `v0.72` / `v0.71` 及更早见本文件 §6,`v0.67` 及更早的基线已归档、只读:`Docs/archive/api-client.v0.65.md`)。 +> **契约版本:`v0.89`**(上一版 `v0.88`,其条目见 §6;`v0.87` / `v0.86` / `v0.85` / `v0.84` / `v0.83` / `v0.82` / `v0.81` / `v0.80` / `v0.79` / `v0.78` / `v0.77` / `v0.76` / `v0.75` / `v0.74` / `v0.73` / `v0.72` / `v0.71` 及更早见本文件 §6,`v0.67` 及更早的基线已归档、只读:`Docs/archive/api-client.v0.65.md`)。 > **读者**:Web 前端 / 移动端原生客户端(含 Android)/ IM 桥接等**跨平台客户端开发者**。 > **唯一真源 = 当前代码**(`internal/services/gateway/*` 等)。本文档由代码逐条核对得出;与代码不符时**以代码为准**,并回改本文档。 > **旧的超详细版已归档、只读**:`Docs/archive/api-client.v0.65.md`(412 KB,含 v0.28→v0.65 全部历史条目)与 `Docs/archive/api-reference.v0.65.md`(170 KB,后端全量字段级文档)。归档的原因是**结构性臃肿 + 历史条目并列 + 长期漂移**;本文档**不复制**那段历史,需要考古时去归档。 @@ -1487,7 +1487,25 @@ curl -s -X POST -H "X-API-Key: $KEY" \ > 只保留最近若干版(**v0.60 起**);更早的全部历史见归档 `Docs/archive/api-client.v0.65.md` §5(v0.28 → v0.59)。 > 每版一句话 + 三档标注。**三档定义见 [§0.4](#04-三档标注惯例)。** -### v0.88(当前契约版本) +### v0.89(当前契约版本) + +**「助手消息的行内标签白名单」版 —— 只影响渲染口径,**服务端 API 形状一字未改****(依据:主人 2026-10-07「她在聊天消息中插入了 html/md 标签,能否增加网页前端对此类标签的基本渲染支持?」;Web 端实现推库 `2dae469`。) + +- 🔴 **背景(实测)**:她输出的**不是 Markdown**(最近 12 条 assistant 消息里 `**` 记号 0 个、列表行 0 个),而是**有限的一小组 HTML 标签**:`

` 96 次、`` 34 次、**`` 6 次**。`

` / `` 各端早已处理,**`` 此前没有任何一端处理 ⇒ 用户直接看到裸标签**。 +- **新增渲染口径(跨端一致)**:助手消息正文里,以下**行内标签**应被渲染成对应样式,而**不是**按字面显示: + `b` / `strong`(粗)· `i` / `em`(斜)· `code`(等宽)· `u`(下划线)· `s`(删除线)· `br`(换行,`
`/`
`/`
` 按 HTML5 口径等价)。 + **标签名大小写不敏感**(`` = ``)。 +- **🔴 三条硬口径(各端必须照此实现,否则跨端显示不一致)**: + 1. **白名单外一律按纯文本原样显示** —— `