Repository navigation
Releases: Light-EI/dsh-chat-perf-css
Release list
v1.0.3 — 反馈入口与可复现打包
本版只补「陌生人第一次接触」和发布可复现性
- README 新增「反馈」一节:没生效怎么报、需要带什么信息(DSH 版本 + 确认命令的输出)。此前只有
package.json的bugs字段指向 Issues,正文里没有任何入口。 - CI 打包改成字节级可复现:打包前把所有文件的 mtime 统一为
1980-01-01(UTC),再用zip -X去掉额外属性。同一个 tag 重打包,zip 与.sha256都不再变化 —— 别人可以核对自己下载的 zip 是不是官方产出的那一份。
插件本身
行为与 v1.0.2 完全一致,没有一行 CSS 变化。
安装
github:Light-EI/dsh-chat-perf-css#v1.0.3
v1.0.2 — 只修文档与打包,行为不变
本次只修文档与打包
README「零运行时依赖(只有peerDependencies…)」这句在 v1.0.1 删掉peerDependencies之后就过时了,现在改准。- 「装完怎么确认」改成按插件那条完整选择器统计,不再只看第一个匹配元素——第一个可能恰好是被规则排除的附件图标(带
_markdown_类的<svg>),会返回visible让人误判成「没生效」。 - CI 打包清单补上
package.json(v1.0.1 的 zip 曾漏掉它,手动安装会因为缺包清单装不上),上传步骤的事件判断改成显式写法。
插件本身
行为与 v1.0.1 完全一致,没有一行 CSS 变化。这个版本只修文档与发布产物。
安装
github:Light-EI/dsh-chat-perf-css#v1.0.2
v1.0.1 — 只加护栏,不改行为
勘误(2026-10-23):本版 zip 内的 README 有两处已过时 ——
① 仍写「零运行时依赖(只有peerDependencies)」,而本版package.json已经删掉了peerDependencies;
②「装完怎么确认」只查第一个匹配元素,可能撞上被规则排除的附件图标而误判成"没生效"。
两处都已在 v1.0.2 修正,新装请直接用github:Light-EI/dsh-chat-perf-css#v1.0.2。
本版 zip 与 tagv1.0.1内容一致,不做重传(保持已发布产物的可核对性)。
v1.0.1 — 只加护栏,不改行为
CSS 规则与 v1.0.0 完全一致,这一版只做版本门、文档纠错和 CI 补强。
安装
github:Light-EI/dsh-chat-perf-css#v1.0.1
命令行等价写法(<profile> 一般是 desktop 或 web):
dsh plugin --profile <profile> add github:Light-EI/dsh-chat-perf-css#v1.0.1
附件
dsh-chat-perf-css-v1.0.1.zip—— 插件本体,顶层目录dsh-chat-perf-css/。dsh-chat-perf-css-v1.0.1.zip.sha256—— 同名校验和,sha256sum -c可直接核对。
本版变化
package.json增加engines.dsh: ">=0.2.1-rc.2":DSH 版本低于此值时安装器直接拒绝安装/激活,省得出现「装上了但页面没变化」。- 移除无用的
peerDependencies:两个入口都没有import,删掉不影响加载。 - README 纠错:Ctrl+F 的说法更正为「能搜到,首次搜索可能卡一下」;「打印会漏」改成「整页成图 / 导出类工具可能漏」;补充命令行安装方式;已知副作用新增「会话内搜索跳转先落到估算位置」。
- CI:push 到 main 只跑静态校验;发版时自动打包 zip 并同时上传
.sha256校验和。
从 v1.0.0 升级
把安装地址里的 #v1.0.0 改成 #v1.0.1 重装即可;先卸载再装也行。
v1.0.0 — 给 DSH 长会话减负的 CSS
给 DSH 长会话减负的一行 CSS。装上之后,滚出视口的消息正文和块级公式会跳过 style / layout / paint,由浏览器在需要时再渲染。
DSH 的聊天界面把每条消息节点全量挂进 DOM,既没有虚拟滚动,也没有 content-visibility。几百上千条消息之后,滚动和重绘就明显变重。这个插件不改渲染逻辑,只补上浏览器本来就支持的那一层「屏外跳过」。
它做什么 / 不做什么
| ✅ 它做 | 滚动、重绘减负 —— 让视口外的消息子树跳过 style / layout / paint |
| ❌ 它不做 | 不解决流式生成时公式重排。可见区域的公式仍会随每个增量重新排版,那是渲染逻辑本身的事,与「屏外跳过」是两回事 |
| DSH 官方一旦加入虚拟滚动,本插件收益基本归零,届时请卸载它 |
一句话:它治的是「消息越堆越多、滚动变卡」,不是「生成时公式抖动」。
安装
在 DSH 的插件管理器里安装,地址填:
github:Light-EI/dsh-chat-perf-css#v1.0.0
装完即生效,不需要再改任何配置 —— 安装器的动作单位是 bundle,会把 dependencies 与 dsh.profile.bundles 一起写好。
填的是 pnpm 规格,不是浏览器地址栏那个 URL;直接贴 https://github.com/... 会被 pnpm 当成压缩包直链,装不上。
离线、或不想让 pnpm 去拉 git 时:下载下面的 dsh-chat-perf-css-v1.0.0.zip,解压后把 dsh-chat-perf-css 目录放进 <profile>\plugins\,按 README「手动安装」三步走。
装完怎么确认
getComputedStyle(document.querySelector('[class*="_markdown_"]')).contentVisibility返回 "auto" 即生效;返回 "visible" 说明规则没命中,多半是 DSH 前端改了类名。
适配
- DSH 0.2.1-rc.2 上实测通过
- 需要 Chromium 85+。Firefox / Safari 老版本会忽略这两条规则 —— 退化为「没有优化」,不会出错
- 规则依赖前端 CSS-module 类名
_markdown_<hash>_<line>。DSH 前端一旦改名或改结构,规则会静默失效:页面一切正常,只是没有优化
它不碰什么
宿主半边是空的 export function apply() {}:不注册服务、不注入依赖、不改配置。不碰 KaTeX 输出、模型、工具、凭据、系统提示词、会话日志。无网络请求、无 localStorage、无事件监听、无定时器、无 MutationObserver。零运行时依赖(只有 peerDependency @deepseek-ai/cordis)。
已知副作用(纯外观,滚动即自愈)
- 滚动条长度是估算值,渲染过之后会记住真实高度
- 首次滚到未渲染区可能轻微跳动
- 打印长会话可能漏掉屏外正文(
content-visibility的固有行为) - toast 位置可能轻微偏移(锚点在屏外时取到占位矩形)
- 浏览器 Ctrl+F 可能搜不到被跳过的内容(DSH 桌面版没有页内查找,无实际影响)
许可
MIT。本质就是一条 CSS 规则,随意取用。