dsh-perf-boost 0.1.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,8 +1,34 @@
1
1
  # CHANGELOG
2
2
 
3
- 尚未发布到 npm;版本号先固定在 0.1.0,等上架时再统一打号。
3
+ 已发布到 npm 的 0.1.0 为首个版本;其后每个版本号按改动累加。
4
4
 
5
- ## 当前能力(0.1.0)
5
+ ## 更新详情
6
+
7
+ ### 0.2.2
8
+
9
+ - 优化了长对话省渲染的实现,改成一处分样式接管子项,新消息进来自动生效的效果
10
+ - 修复了流式输出时每来一条消息就扫一遍页面的问题,改成一分钟几十次的空闲巡检的问题
11
+
12
+ ### 0.2.1
13
+
14
+ - 新增了「大会话预热」的开关,设置页里点一下就能关的功能
15
+ - 新增了浅色模式下的配色,开关和分隔线跟着文字颜色走的效果
16
+ - 优化了开关说明的文字,统一改成「可能会导致……」的效果
17
+ - 新增了百分比改成最近 1 分钟窗口,长时间使用不会越用越低的功能
18
+ - 优化了开关列表的顺序,默认开启的排在前面、默认关闭的放在后面的效果
19
+
20
+ ### 0.2.0
21
+
22
+ - 新增了设置页「更新详情」,能直接看到每个版本改了什么的功能
23
+ - 新增了滚动时让路,滚动过程中不再扫列表、停手后再补的效果
24
+ - 新增了长任务让路,超过 50 毫秒的卡顿之后等主线程缓过来再扫的效果
25
+ - 新增了视口外图片低优先级解码,把带宽留给看得见的图的效果
26
+ - 新增了窗口不可见时暂停 CSS 动画,合成器不再空转的效果
27
+ - 修复了大会话预热会去读正在写入的会话文件的问题
28
+ - 优化了列表观察范围,从盯整页收窄到只盯消息列表的效果
29
+ - 优化了每个开关的说明,把副作用写清楚的效果
30
+
31
+ ## 当前能力
6
32
 
7
33
  - 长对话省渲染:消息列表里屏幕外的条目跳过布局与绘制,预留高度按实测值给。
8
34
  - 窗口隐藏不排帧:窗口不可见时不往合成器送帧,切回前台自动恢复。
@@ -10,9 +36,10 @@
10
36
  - 媒体懒加载:图片、视频、iframe 推迟到需要时再解码。
11
37
  - 后台暂停定时器:窗口不可见时 `setInterval` 回调全部跳过(不销毁、不重置周期),回前台每个补跳一次。
12
38
  - 视口外暂停视频:静音视频滚出视口暂停解码,滚回续播;有声音的不动。
13
- - 扫描不抢帧:首屏与流式输出期间把扫描推到 `requestIdleCallback`,流式里最多推迟 6 次(约 9 秒)。
39
+ - 扫描不抢帧:首屏与流式输出期间把扫描推到 `requestIdleCallback`,流式里最多推迟 6 次(约 9 秒);滚动过程中和 50ms 以上的长任务之后也让路,等主线程缓过来再扫。
14
40
  - 会话列表节流:流式输出时列表常因「只有 token 计数变了」整树重渲染,这里把这类只改身份的发布攒到每秒一次;可见字段(当前会话、标题、条数、顺序)真变了立刻放行。
15
- - 大会话预热:启动 15 秒后,把最近用过的 10 个 8MB 以上会话文件分段读进系统文件缓存(4MB 一块、每块歇 40ms、总量上限 400MB、最长 3 分钟),点进去时少等硬盘;只读,不碰会话数据。
41
+ - 大会话预热:启动 15 秒后,把最近用过的 10 个 8MB 以上会话文件分段读进系统文件缓存(4MB 一块、每块歇 40ms、总量上限 400MB、最长 3 分钟),点进去时少等硬盘;只读,不碰会话数据;正在写的会话(10 分钟内改过)会跳过。
42
+ - 每个开关的说明都写清副作用(例如长对话省渲染可能让被跳过的行空白一瞬、会话列表节流的 token 数字最多晚 1 秒)。
16
43
  - 可感知的三项默认关:关背景模糊、减少动画、帧率角标。
17
44
 
18
45
  ## 已知边界
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # dsh-perf-boost
1
+ # dsh-perf-boost
2
2
 
3
3
  DeepSeek Harness 桌面端的客户端渲染优化插件,全部改动只发生在渲染进程。
4
4
 
@@ -7,22 +7,64 @@ Client-side rendering optimizations for DSH Desktop.
7
7
  设置入口:**设置 → 性能优化**
8
8
 
9
9
 
10
+ ## 更新详情
11
+
12
+ ### 0.2.2
13
+
14
+ - 优化了长对话省渲染的实现,改成一处分样式接管子项,新消息进来自动生效的效果
15
+ - 修复了流式输出时每来一条消息就扫一遍页面的问题,改成一分钟几十次的空闲巡检的问题
16
+
17
+ ### 0.2.1
18
+
19
+ - 新增了「大会话预热」的开关,设置页里点一下就能关的功能
20
+ - 新增了浅色模式下的配色,开关和分隔线跟着文字颜色走的效果
21
+ - 优化了开关说明的文字,统一改成「可能会导致……」的效果
22
+ - 新增了百分比改成最近 1 分钟窗口,长时间使用不会越用越低的功能
23
+ - 优化了开关列表的顺序,默认开启的排在前面、默认关闭的放在后面的效果
24
+
25
+
26
+ ### 0.2.0
27
+
28
+ - 新增了设置页「更新详情」,能直接看到每个版本改了什么的功能
29
+ - 新增了滚动时让路,滚动过程中不再扫列表、停手后再补的效果
30
+ - 新增了长任务让路,超过 50 毫秒的卡顿之后等主线程缓过来再扫的效果
31
+ - 新增了视口外图片低优先级解码,把带宽留给看得见的图的效果
32
+ - 新增了窗口不可见时暂停 CSS 动画,合成器不再空转的效果
33
+ - 修复了大会话预热会去读正在写入的会话文件的问题
34
+ - 优化了列表观察范围,从盯整页收窄到只盯消息列表的效果
35
+ - 优化了每个开关的说明,把可能会导致写清楚的效果
36
+
10
37
  ## 开关
11
38
 
12
39
  按默认状态排序,前六项默认开启,对观感没有可见影响。
13
40
 
14
41
  | 开关 | 默认 | 影响视觉 | 作用 |
15
42
  | --- | --- | --- | --- |
16
- | 长对话省渲染 | 开 | 无 | 列表子项加 `content-visibility: auto`,占位高度取该列表实测平均子项高度;末尾 4 项与正在流式输出的消息不处理,超过 300px 的代码块同样跳过 |
43
+ | 长对话省渲染 | 开 | 无 | 给滚动列表容器挂一个 class,子项的 `content-visibility: auto` 由一条 CSS 规则接管(新消息自动生效,不用逐个打 inline style),占位高度取该列表实测平均子项高度;末尾 4 项与标了 `aria-busy` 的消息保持正常渲染,代码块单独按 300px 跳过 |
17
44
  | 窗口隐藏不排帧 | 开 | 无 | 页面不可见时 `schedule()` 直接返回;切回时有 `visibilitychange` 钩子恢复,每秒看门狗兜底 |
18
45
  | 空闲降帧 | 开 | 无 | 20 秒无输入将 rAF 驱动的动画降到 30fps,有输入立即恢复 |
19
46
  | 媒体懒加载 | 开 | 无 | 图片加 `loading=lazy`、`decoding=async`,视频加 `preload=metadata` |
20
47
  | 后台暂停定时器 | 开 | 无 | 页面不可见时跳过 `setInterval` 回调,不销毁也不重置周期;回到前台各补跳一次 |
21
48
  | 视口外暂停视频 | 开 | 无 | 仅处理静音视频:滚出视口暂停解码,滚回续播 |
49
+ | 会话列表节流 | 开 | 无 | 流式输出时把「只有 token 计数变了」的列表发布攒到每秒一次;可见字段变了立刻放行 |
50
+ | 大会话预热 | 开(宿主侧) | 无 | 启动 15 秒后把最近 10 个 8MB 以上会话分段读进系统文件缓存,只读,跳过 10 分钟内改过的会话 |
22
51
  | 关闭背景模糊 | 关 | 有 | 全局 `backdrop-filter: none`,浮层由磨砂改为纯色底 |
23
52
  | 减少动画 | 关 | 有 | 动画与过渡时长置 0.001ms,弹窗不再逐帧动 |
24
53
  | 帧率角标 | 关 | 有 | 右下角显示 `NN fps` |
25
54
 
55
+ 每个开关的说明里都标了可能会导致,这里汇总一次:
56
+
57
+ | 开关 | 可能会导致 |
58
+ | --- | --- |
59
+ | 长对话省渲染 | 快速滚动时,被跳过的行可能空白一瞬,紧接着补上 |
60
+ | 窗口隐藏不排帧 | 后台标签页里的动画会停,切回前台补一帧 |
61
+ | 空闲降帧 | 长时间不动,动画看起来变慢;动一下鼠标立刻恢复 |
62
+ | 媒体懒加载 | 快速拖到很远处的图片可能先白一下再出来 |
63
+ | 后台暂停定时器 | 隐藏期间攒下的轮询只补一次,个别插件会看到一次跳变 |
64
+ | 视口外暂停视频 | 滚回来时可能黑一下或重新缓冲 |
65
+ | 会话列表节流 | 侧栏 token 数字最多晚 1 秒才跳 |
66
+ | 大会话预热 | 读盘那几十秒里机械盘/低配机器打开会话可能反而慢一点,磁盘占用升高 |
67
+
26
68
  不提供预设档位。
27
69
 
28
70
  ## 验证
@@ -61,6 +103,8 @@ pnpm add file:./dsh-perf-boost
61
103
  - 唯一的网络请求是「检查更新」:页面 POST 到 `/api/dsh-perf-boost/update-check`,由宿主查询 npm 的 latest(CSP 限制页面不能直接跨域)。查询失败显示「未查到」,不影响功能。
62
104
  - `requestAnimationFrame` 仅在启用「窗口隐藏不排帧」或「空闲降帧」时接管,否则保持原生实现。
63
105
 
106
+ 大会话预热可以在设置页里关掉,也可以在插件配置里写 `warmup: false` 一次性关掉。
107
+
64
108
  ## 已知限制
65
109
 
66
110
  - 窗口的 `transparent` / `vibrancy` 由应用自身(`app.asar` 的 `lib/main.js`)决定,Windows 分支不透明,插件无法修改。
@@ -69,7 +113,7 @@ pnpm add file:./dsh-perf-boost
69
113
 
70
114
  ## 兼容
71
115
 
72
- - `engines.dsh >= 0.2.0-0`,实测 0.2.1-rc.2(桌面版 0.2.1.0)
116
+ - `engines.dsh >= 0.2.0-0`,实测 0.2.1-rc.3(桌面版 0.2.1.0)
73
117
  - peer `@deepseek-ai/cordis ^4.0.1`,实测 4.0.5
74
118
  - 依赖客户端插件 API:`window.__ModuleLoader__.load`、`slots`(`settings.section`)、`require('react')`
75
119
 
Binary file