Skip to content

Releases: Light-EI/dsh-chat-perf-css

v1.0.3 — 反馈入口与可复现打包

Choose a tag to compare

@Light-EI Light-EI released this 23 Oct 07:45

本版只补「陌生人第一次接触」和发布可复现性

  • 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 — 只修文档与打包,行为不变

Choose a tag to compare

@Light-EI Light-EI released this 23 Oct 07:18

本次只修文档与打包

  • 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 — 只加护栏,不改行为

Choose a tag to compare

@Light-EI Light-EI released this 23 Oct 06:04

勘误(2026-10-23):本版 zip 内的 README 有两处已过时 ——
① 仍写「零运行时依赖(只有 peerDependencies)」,而本版 package.json 已经删掉了 peerDependencies;
②「装完怎么确认」只查第一个匹配元素,可能撞上被规则排除的附件图标而误判成"没生效"。
两处都已在 v1.0.2 修正,新装请直接用 github:Light-EI/dsh-chat-perf-css#v1.0.2。
本版 zip 与 tag v1.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

Choose a tag to compare

@Light-EI Light-EI released this 22 Oct 15:09

给 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 规则,随意取用。