64 lines
4.1 KiB
Markdown
64 lines
4.1 KiB
Markdown
# PROGRESS · 回答正文的列表渲染(2026-09-18)
|
||
|
||
- 分支:`codex/chat-markdown-list-20260918`,worktree `.worktrees/chat-markdown-list-20260918`
|
||
- 基线:`origin/staging` @ `1061514f`(任务书写 `ea0280c1`,本 worktree 从当时 origin/staging 拉出)
|
||
- BUG:962 / 963 / 964
|
||
- Skill 版本:不变
|
||
|
||
## 1. 做了什么
|
||
|
||
| BUG | 落点 |
|
||
| --- | --- |
|
||
| 962 列表无符号 | `globals.css`:`.message-markdown ul.markdown-list { list-style-type: disc }`,`ol` 用 `decimal`;`::marker` 用 `--color-ink-secondary`。保持 `display: grid`。不动个人报告 Markdown。 |
|
||
| 963 散文被提升 | `chat-definition-lists.ts`:收紧 `isDefinitionLine`,不删函数。term 不得含 `。!?;!?;` / 换行;body 必须单句且 ≤ 40 字;仍要连续 ≥2 段,仍跳过 fence 与已有列表。 |
|
||
| 964 思考条空 56px | 新增 `--consult-think-answer-gap: var(--space-3)`(12px),`.consultation-thinking-report` 与 `.message-stage-and-answer` 都读它。会话作用域补 `.message-markdown > *:first-child { margin-top: 0 }`,盖过 h2 的 `--space-8`。会话 `.markdown-list` gap 从 `--space-4`(16px)降到 `--space-2`(8px)。 |
|
||
|
||
BUG-356 防复发仍在:既有 fixture「月亮行运三分本命太阳……:情绪与精力契合。」等短项继续提升成 `- **term**:body`。那些 body 最长约 10 字,远低于 40。
|
||
|
||
## 2. 间距口径(headless Chrome 实测)
|
||
|
||
改前(任务书 harness):思考条底 → 正文首标题 **56px** = 报告 gap 24 + h2 margin-top 32,`list-style: none`。
|
||
|
||
改后(本机 Chrome headless,`renderChatMarkdown` + 会话作用域 CSS + Tailwind preflight 的 `ul, ol { list-style: none }`):
|
||
|
||
```
|
||
{"gapPx":12,"h2MarginTop":"0px","reportGap":"12px","listStyle":"disc","pCount":3,"liCount":2,"firstChild":"H2"}
|
||
```
|
||
|
||
| 项 | 改前 | 改后 |
|
||
| --- | --- | --- |
|
||
| `.consultation-thinking-report` gap | `--space-6`(24px) | `--consult-think-answer-gap`(12px) |
|
||
| `.message-stage-and-answer` gap | `--space-2`(8px) | 同一 token(12px) |
|
||
| 会话首元素 `h2` margin-top | `--space-8`(32px,特指度压过清零) | 0px |
|
||
| 思考条底 → 正文首标题 | 56px | **12px**(≤ 16px) |
|
||
| 会话 `.markdown-list` gap | `--space-4`(16px) | `--space-2`(8px) |
|
||
| 列表 `list-style-type` | `none` | `disc` |
|
||
| 三段口语冒号段 | 三条 `<li>` | 三个 `<p>`;只有文末行动是列表 |
|
||
|
||
截图:`docs/testing/chat-markdown-list-20260918-after.png`。步骤仍写在 `docs/testing/chat-markdown-list-20260918.md`。
|
||
|
||
## 3. 被改的既有断言(原值 / 新值 / 原因)
|
||
|
||
| 文件 · 测试 | 原值 | 新值 | 原因 |
|
||
| --- | --- | --- | --- |
|
||
| `tests/chat-stream-layout.test.ts` | `.message-stage-and-answer { gap: var(--space-2) }` | `gap: var(--consult-think-answer-gap)`,并新增 thinking-report 同 token、first-child 清零、ul/ol `list-style-type` | BUG-964 / 962 |
|
||
| `tests/rectification-agentic-entry.test.ts` | 同上 `--space-2` | 同上 `--consult-think-answer-gap` | 同一 token,校正面也走这条堆叠 |
|
||
|
||
`chat-definition-lists.test.ts` 既有「consecutive label-colon paragraphs become a markdown list」**一字未改**且须保持绿。
|
||
|
||
## 4. 测试
|
||
|
||
| 项 | 结果 |
|
||
| --- | --- |
|
||
| `tsc --noEmit` | 0 错 |
|
||
| `npm run lint` | 0 error / 120 warning(未新增;未顺手修) |
|
||
| `tsx --test tests/chat-definition-lists.test.ts` | 3/3 |
|
||
| `tsx --test tests/chat-stream-layout.test.ts` | 6/6 |
|
||
| `tsx --test tests/chat-markdown-split.test.ts` | 5/5 |
|
||
| `tsx --test tests/markdown-code-block-contract.test.ts` | 5/5 |
|
||
| `tsx --test tests/rectification-agentic-entry.test.ts` | 43/43 |
|
||
| `npm test` 全量 | tests 3458 / pass 3380 / fail 78。多出来的红是本机 Windows 环境:`G:\G:\…` 路径加倍、symlink EPERM、无 Docker 的 database/backup。与本轮 CSS/lib 无关。任务书 Linux 基线是 3501 / 3455 / 31。 |
|
||
| `next build` | 未跑。本轮只动 CSS 与一个 lib,首屏 gzip 预期接近 0;staging 验收时再核 `/` 仍 Static。 |
|
||
|
||
Chrome headless 改后:`gapPx=12`(≤16)、`listStyle=disc`、三段口语仍是 `<p>`。
|