dsh-smooth-scroll 0.1.2-alpha.5 → 0.1.3-alpha.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.
Files changed (2) hide show
  1. package/README.md +17 -10
  2. package/package.json +2 -2
package/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  <p align="center">
10
10
  <a href="https://www.npmjs.com/package/dsh-smooth-scroll">
11
- <img src="https://img.shields.io/npm/v/dsh-smooth-scroll/alpha?style=flat&colorA=000000&colorB=000000" />
11
+ <img src="https://img.shields.io/npm/v/dsh-smooth-scroll?style=flat&colorA=000000&colorB=000000" />
12
12
  </a>
13
13
  <a href="https://github.com/VinciBeans/dsh-smooth-plugin/blob/main/LICENSE">
14
14
  <img src="https://img.shields.io/github/license/VinciBeans/dsh-smooth-plugin?style=flat&colorA=000000&colorB=000000" />
@@ -19,20 +19,26 @@
19
19
 
20
20
  ## Install
21
21
 
22
- npm 安装(`alpha` dist-tag;当前版本 0.1.2-alpha.5,适配 dsh v0.1.2-alpha.1 ~ alpha.5):
22
+ 需要已安装 DSH,并至少成功启动过一次 Web GUI。从 npm 安装(按 dist-tag 选择):
23
23
 
24
- ```sh
25
- dsh plugin --profile web add dsh-smooth-scroll@alpha
26
- ```
24
+ 1. **npm `latest`**(0.1.2-rc.1,与 `next` 同步)— 兼容 dsh v0.1.2-alpha.1 ~ 0.1.3-alpha.2:
25
+ ```sh
26
+ dsh plugin --profile web add dsh-smooth-scroll
27
+ # 等价写法:dsh plugin --profile web add dsh-smooth-scroll@next
28
+ ```
29
+ 2. **npm `alpha`**(0.1.2-alpha.5)— 与 `latest` 同一契约代、兼容范围相同,保守通道:
30
+ ```sh
31
+ dsh plugin --profile web add dsh-smooth-scroll@alpha
32
+ ```
27
33
 
28
- 需要已安装 DSH,并至少成功启动过一次 Web GUI。
34
+ 旧代 `0.1.1-rc.2` 不再挂在任何 dist-tag 上,仅可按确切版本安装(不兼容,见「兼容性」)。
29
35
 
30
- npm `latest`(0.1.1-rc.2)仍是旧 client-runtime 代,仅适配 dsh 0.1.1-rc.2;安装它的命令为 `dsh plugin --profile web add dsh-smooth-scroll`。源码安装:`dsh plugin --profile web add .`。
36
+ 源码安装(GitHub Release `v0.1.3-alpha.2` 即当前源码版):`dsh plugin --profile web add .`。
31
37
 
32
38
  ## Quickstart
33
39
 
34
40
  ```sh
35
- dsh plugin --profile web add dsh-smooth-scroll@alpha
41
+ dsh plugin --profile web add dsh-smooth-scroll
36
42
  dsh --profile web --dump-config # 看到 dsh-smooth-scroll 层即安装成功
37
43
  # 重启 dsh web,打开会话,流式内容平滑滚到底部
38
44
  ```
@@ -62,9 +68,10 @@ dsh --profile web --dump-config # 看到 dsh-smooth-scroll 层即安装
62
68
 
63
69
  ## 兼容性
64
70
 
65
- - **dsh v0.1.2-alpha.1 ~ alpha.5(支持):** 插件的唯一 DOM 锚点 `[data-conversation-scroll]`(会话滚动容器,ConversationRoot 的 scrollBody)与宿主跟随状态机(`observedTopRef` / `movedByReader` / ResizeObserver follow、`el.scrollTop` 读写面)在 `dsh-v0.1.2-alpha.1` ~ `dsh-v0.1.2-alpha.5` 五个 tag 上一致;turn 导轨跳转 `landOnRow` 仍为 `el.scrollTop += flowTop - 24` 复合读改写,pointerdown 接管先停动画、复合写读到真实位置。alpha.4 把宿主滚动几何采样改为每 500ms 一次并以 `scrollend` 提前采样(`ChatView` 的 `SCROLL_SAMPLE_INTERVAL_MS`);真实宿主行为 e2e(见验证)确认该节奏下追击无停顿(流式最大离底 0px、追击停顿 0ms)、滚轮接管后漂移 0px 且宿主正常脱钩。仓库 master HEAD(alpha.5 之后 38 个提交、package 版本仍为 alpha.5)的 `ChatView` 相对 alpha.4 零差异(仅 `loadImage` 下传),滚动状态机一致。
71
+ - **dsh v0.1.2-alpha.1 ~ rc.1(支持):** 插件的唯一 DOM 锚点 `[data-conversation-scroll]`(会话滚动容器,ConversationRoot 的 scrollBody)与宿主跟随状态机(`observedTopRef` / `movedByReader` / ResizeObserver follow、`el.scrollTop` 读写面)在 `dsh-v0.1.2-alpha.1` ~ `dsh-v0.1.2-alpha.5` 五个 tag 上一致;`dsh-v0.1.2-rc.1` 相对 alpha.5 的整仓差异仅全仓包 `package.json` 版本号变更(非 `package.json` 文件零变化、非版本行零变化),`[data-conversation-scroll]` / `[data-composer-seat]` 锚点、`el.scrollTop = el.scrollHeight` 钉底写与跟随状态机均在 rc.1 tag 上复核,与 alpha.5 逐字一致;turn 导轨跳转 `landOnRow` 仍为 `el.scrollTop += flowTop - 24` 复合读改写,pointerdown 接管先停动画、复合写读到真实位置。alpha.4 把宿主滚动几何采样改为每 500ms 一次并以 `scrollend` 提前采样(`ChatView` 的 `SCROLL_SAMPLE_INTERVAL_MS`);真实宿主行为 e2e(见验证)确认该节奏下追击无停顿(流式最大离底 0px、追击停顿 0ms)、滚轮接管后漂移 0px 且宿主正常脱钩。
72
+ - **dsh v0.1.3-alpha.2(支持):** 契约面与 rc.1 逐字一致——`packages/client/modules` 的模块系统(`client/system.ts` / `client/manifest.ts` 零差异)、`dsh.client` 扫描与 `./client` 导出要求、`dsh plugin add` 的 bundle 层重建(`apps/cli/src/plugin.ts` 零差异)、`cordis.patch.yml` 的 insert 行、`ctx.effect` 客户端 API 全部不变;DOM 锚点 `[data-conversation-scroll]`(`ConversationRoot.tsx`)与跟随状态机(`observedTopRef` / `movedByReader` / `toBottom` 的 `el.scrollTop = el.scrollHeight` / `landOnRow` 复合读改写)逐行保留。唯一相关变更在 `ChatView.tsx:604-616`:`onScroll` 在「已贴底且非读者位移」时改为同步 `sample()`(取代 500ms 定时器 + `scrollend` 兜底)。该变更对插件中性——真 Chromium 实测宿主钉底在 rc.1(经 `scrollend`)与 alpha.2(经 `scroll`)下都是每帧一次,插件「同目标重钉不重启追击」的兜底照常生效;`node test/alpha2-realhost-e2e.mjs` 在真实 `dsh web` 0.1.3-alpha.2 上复核:流式追击最终离底 0px / 最大离底 75px / 追击停顿 0ms,滚轮接管后漂移 0px 且宿主出现「回到底部」,导轨跳转漂移 0px,reduced-motion 下 220ms 内钉底,浏览器零 console 错误。
66
73
  - **0.1.1-rc.2 及更早(不支持):** 该代使用 `@deepseek-ai/dsh-client-runtime`,滚动宿主结构不同,不兼容。
67
- - 验证:`pnpm test`(契约冒烟,bundle 自包含)+ `node test/scroll-follow.test.mjs`(15 个 e2e 场景,含「追击中点击导轨」回归点;需 Playwright 与 Chromium)+ `node test/alpha4-realhost-e2e.mjs <token>`(真实 `dsh web` 0.1.2-alpha.4 + 真 Chromium:流式追击、滚轮接管、导轨跳转、reduced-motion、控制台错误;token 取自 `dsh web` 启动输出)。
74
+ - 验证:`pnpm test`(契约冒烟,bundle 自包含)+ `node test/scroll-follow.test.mjs`(15 个 e2e 场景,含「追击中点击导轨」回归点;需 Playwright 与 Chromium)+ `node test/alpha2-realhost-e2e.mjs <token>`(真实 `dsh web` 0.1.3-alpha.2 + 真 Chromium:流式追击、滚轮接管、导轨跳转、reduced-motion、控制台错误;token 取自 `dsh web` 启动输出)+ `node test/alpha4-realhost-e2e.mjs <token>`(同上,针对 0.1.2-alpha.4)。
68
75
 
69
76
  ## License
70
77
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dsh-smooth-scroll",
3
- "version": "0.1.2-alpha.5",
4
- "description": "DSH 平滑滚底插件:会话装载与“回到最新”瞬时钉底,流式内容以恒速平滑跟随(缓启动/软尾);无 transform、不扰动输入栏等 UI、不干扰 DSH 自身跟随状态机,prefers-reduced-motion 自动回退官方行为。适配 dsh-v0.1.2-alpha.1 ~ alpha.5。",
3
+ "version": "0.1.3-alpha.2",
4
+ "description": "DSH 平滑滚底插件:会话装载与“回到最新”瞬时钉底,流式内容以恒速平滑跟随(缓启动/软尾);无 transform、不扰动输入栏等 UI、不干扰 DSH 自身跟随状态机,prefers-reduced-motion 自动回退官方行为。适配 dsh-v0.1.2-alpha.1 ~ 0.1.3-alpha.2。",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
7
7
  "exports": {