dsh-zen-remote 1.1.6 → 1.1.9

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/AGENTS.md CHANGED
@@ -57,3 +57,23 @@ pnpm test # 网关 node:test 用例 + 三个界面自检脚本 + 文档版
57
57
  - **`lib/` 是产物,不手改**:改 `src/` → `pnpm build` → 提交 `lib/`。
58
58
  - **桌面必须 no-op**:≥1024px 逐像素与未安装时一致。
59
59
  是从真机事故里攒出来的,改相关代码前先读。
60
+ - **要藏宿主刚渲染出来的东西,别用 `requestAnimationFrame`**:React 在该帧的
61
+ rAF 阶段之后才提交 DOM,所以从 mutation 里排的 rAF 落在**下一帧**——中间那
62
+ 一帧已经画到屏幕上,用户就看见闪。两个月内三次「晚一帧」的 bug(2026-08-18
63
+ 回复要等回合结束才出现、08-22 工具调用行先显后折、08-25 issue #3 流式抖动)
64
+ 都是这个根子。两条出路:能用选择器表达的交给样式表(`turn-fold.css.ts` 的
65
+ `BORN_FOLDED`,读宿主自己的 `data-chat-flow-kind` / `data-variant`,React
66
+ 插入节点的同一次提交里就带着,第一帧就是隐藏的);表达不了的放进
67
+ MutationObserver 回调里同步做(`turn-fold.ts` 的 `markWholeRows`)——回调是
68
+ 微任务,跑在这一帧渲染更新之前,两个方向都不会晚。rAF 只留给能容忍晚一帧的
69
+ 活(全量重扫、插 chip、改文案)。
70
+ - **别用 `:has()` 写死宿主的 DOM 层数**:包裹层数不等于组件源码看上去的层数
71
+ ——槽位会额外套一层(真实是 `flowItem > seat > AssistantMarkdown root >
72
+ body > 块`,比组件自身结构多一层)。深度猜错的选择器**静默失效**:测试全绿、
73
+ 控制台干净,只有拿真界面量才看得出来。需要结构判断就用 JS 遍历
74
+ (`foldsWholeRow` 那种沿父节点上溯的写法),不假设层数。
75
+ - **改了界面就去真界面上量**:`turn-fold` 这类规则用自建的静态页面验证会给出
76
+ 假阳性(合成 DOM 猜不对宿主的包裹层)。打开 `127.0.0.1:3080` 读现有会话的
77
+ `getComputedStyle` 即可,**不要为了验证去建会话或发消息**(耗真实 token,见
78
+ 工作区 AGENTS.md 的硬约束)。注意浏览器标签在后台时 rAF 不触发,chip 会是 0
79
+ 个——那是观测假象,不是回归,截图把窗口唤到前台再看。
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  <p align="center">
5
5
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-0B7285?style=flat-square" alt="MIT"></a>
6
- <img src="https://img.shields.io/badge/release-v1.1.6-5B4CF0?style=flat-square" alt="v1.1.6">
6
+ <img src="https://img.shields.io/badge/release-v1.1.9-5B4CF0?style=flat-square" alt="v1.1.9">
7
7
  <img src="https://img.shields.io/badge/DSH-Web%20Profile-5B4CF0?style=flat-square" alt="DSH Web Profile">
8
8
  </p>
9
9
 
@@ -39,7 +39,7 @@ dsh plugin add dsh-zen-remote
39
39
  ```jsonc
40
40
  {
41
41
  "dependencies": {
42
- "dsh-zen-remote": "^1.1.6" // 本地开发换成 "link:/path/to/dsh-zen-remote"
42
+ "dsh-zen-remote": "^1.1.9" // 本地开发换成 "link:/path/to/dsh-zen-remote"
43
43
  },
44
44
  "dsh": { "profile": { "bundles": [
45
45
  "@deepseek-ai/dsh-base",
package/docs/interface.md CHANGED
@@ -239,13 +239,12 @@ composer 最左的回形针打开的是**手机本地**的文件选择器(iOS
239
239
 
240
240
  ## 兼容插件
241
241
 
242
- - [dsh-better-sidebar](https://github.com/omdsh-dev/DSH-better-sidebar)(移动端全宽抽屉,本插件在会话页头部给它留入口位)——本机实测 **0.15.0**
242
+ - [dsh-better-sidebar](https://github.com/omdsh-dev/DSH-better-sidebar)(移动端全宽抽屉,本插件在会话页头部给它留入口位;手机上文件树里点 @ 引用后代点开关自动收起面板——面板全屏盖住会话页,草稿变化看不见,收起本身就是点击反馈)——本机实测 **0.15.0**
243
243
  - [@nanmicoder/dsh-agent-teams](https://github.com/NanmiCoder/dsh-agent-teams)(AgentTeams 活动浮层:手机端挪到会话头部下方、避开安全区,会话列表页隐藏;子代理会话头部保留可点的父会话面包屑用于切回)——本机实测 **0.1.9**
244
244
  - [@ychris12138/dsh-usage-stats](https://github.com/Ychris12138/dsh-usage-stats)(用量与余额,主屏 chips 行可直接打开;旧包名 `dsh-usage-stats` 已废弃,两个名字同时留在 profile 里会因重复的 `usage-stats` 行让 DSH 起不来)——本机实测 **0.2.9**
245
245
  - [@opendsh/dsh-plugin-scheduled-tasks](https://github.com/Ceelog/dsh-plugins)(定时任务,主屏 chips 行自动收割入口)——本机实测 **0.2.3**
246
246
  - dsh-at-file(@文件引用;它和本插件的附件 chip 读的是同一份草稿 token,手机端会为一个上传文件同时画出缩略图和文件名两条,故隐藏它 `.dsh-uploads/` 下那几行,其余 @ 引用不动;桌面端不隐藏——那边本插件的 chip 是关掉的,它是唯一的呈现)——本机实测 **0.6.7**
247
247
  - [@ace-zone/dsh-market](https://www.npmjs.com/package/@ace-zone/dsh-market)(插件市场;它的弹窗顶栏在手机上放不下,关闭的 × 被挤出面板外,故隐藏标语/版本号/官网链接三个装饰位并让标题省略号收缩,语言切换和 × 保留;认插件自己渲染的 `.dshm-ver[title="@ace-zone/dsh-market"]` 版本片,同名的其他"市场"插件不会被误伤)——本机实测 **0.1.66**
248
- - [dsh-vision-toolkit](https://www.npmjs.com/package/@anionex/dsh-vision-toolkit)(图像 Q&A/OCR,配合手机端附件上传使用)
249
248
  - [dsh-web-ui 全家桶](https://www.npmjs.com/package/@linxin666/dsh-web-ui-all)(文件树 / 预览 / 任务看板 / SSH / 宠物 / 会话统计 / 远程配对 / 设置)——沿用上游兼容规则,本次未扩展
250
249
 
251
250
  ## 安装