[Bug] Ordered list numbers clipped on the left edge in the web chat (Safari only) #4917
Replies: 3 comments
|
The handbook now routes this Safari-only symptom separately in v0.5.272: clipped ordered-list markers with normal text flow are a layout/overflow boundary, not evidence of a MutationObserver CPU loop. The runbook captures browser comparison, computed padding, and disposable-client regression evidence before any Session or plugin changes.\n\nGuide: https://github.com/sandbaseai/deepseek-harness-handbook/blob/main/docs/en/troubleshooting/webview-mutation-observer-loop.md#route-safari-marker-clipping-separately\nRelease: https://github.com/sandbaseai/deepseek-harness-handbook/releases/tag/v0.5.272\n\nIndependent community documentation; the upstream repository remains the source of truth. |
|
Verified against the alpha.1 tree (HEAD 1. The list rule is still unfixed
.markdown :where(ul, ol) {
margin: 16px 0;
padding-left: 18px;
}Top-level lists keep the default 2. The clip surface is real, and documented at source
.scrollBody {
overflow-y: auto;
}…and the comment right below it states the property that matters:
So an outside-position marker wider than 18px (two-digit ordinals, or 3. Why e6d6e19 didn't cover chatThe commit (fix(ui-primitives), 2026-08-03) fixed the sources list only. Its message states the same mechanism you found:
The fix sized the sources list padding in Suggested fix (follows the shipped precedent)Replace the fixed 18px on the top-level rule with em-based room for multi-digit markers, matching e6d6e19's approach: .markdown :where(ul, ol) {
margin: 16px 0;
padding-left: max(18px, 2.35em);
}
One secondary Safari-specific suspect worth confirming with computed styles: |
|
Follow-up: v0.5.288 refines the Safari diagnosis with the verified 18px outside-marker + transcript scroll-container clip boundary, the ~2.35em gutter regression path, and a separate marker line-height check. It keeps layout clipping distinct from a proven MutationObserver loop: https://github.com/sandbaseai/deepseek-harness-handbook/releases/tag/v0.5.288 |
Uh oh!
There was an error while loading. Please reload this page.
[Bug] Ordered list numbers clipped on the left edge in the web chat (Safari only)
What I see
In the web UI, when an assistant message contains a Markdown ordered list, the numbers are cut vertically. Only the right half of "1.", "2.", "3." stays visible; the left half disappears. The text after the number renders normally.
Screenshot from an actual chat message:
I only see this in Safari. The same message renders correctly in Chrome.
How to reproduce
It does not happen on every message. A page refresh usually makes the normal one reappear.
Where I think it comes from
The chat markdown styles live in packages/client/ui-primitives/src/markdown/MarkdownText.module.css:
Top-level lists keep the default list-style-position: outside, so the marker sits right-aligned against the content edge, inside that 18px. When a message container clips horizontal overflow and the marker needs more room than 18px, the left part of the marker is cut, and there is no way to scroll it back.
The same mechanism was fixed once already, for the search results: commit e6d6e19 ("keep two-digit source markers out of the scroll clip") changed .sources padding to 2.5em for exactly this reason. That fix only covered the Search sources list. The ordered lists inside regular chat messages still use 18px.
Suggested fix
Match what was done for .sources:
Alternatively, use list-style-position: inside for top-level lists (nested lists in the same file already do this). Either change gives the marker enough room, or keeps it inside the content box.
Environment
[Bug] Web 聊天消息里的有序列表编号被裁掉左半(仅 Safari)
现象
Web 界面里,助手消息中 Markdown 有序列表的编号会被竖着切一刀。"1." "2." "3." 只剩下右半,左半消失;编号后面的文字完全正常。
截图来自真实聊天消息:
只在 Safari 里见到。同样的消息用 Chrome 看是正常的。
复现步骤
不是每条消息都会出现;刷新页面后通常会恢复。
我推测的原因
聊天消息的 markdown 样式在 packages/client/ui-primitives/src/markdown/MarkdownText.module.css:
顶层列表沿用默认的 list-style-position: outside,编号贴着内容区右缘对齐,占这 18px 的空间。一旦消息容器在水平方向裁切溢出内容,而编号需要的位置超过 18px,编号左侧就被裁掉,且没法滚动回来。
这个机制官方之前修过一次,是搜索结果列表:commit e6d6e19("keep two-digit source markers out of the scroll clip"),当时把 .sources 的 padding 改成 2.5em 防的正是这个。那次修复只覆盖了 Search 来源列表;聊天消息里的普通列表还是 18px。
建议的修法
和 .sources 保持一致:
或者把顶层列表也改成 list-style-position: inside(同文件里嵌套列表已经是 inside)。两种改法都能让编号有足够空间,或留在内容盒内部。
环境
All reactions