dsh-zen-remote 2.2.6 → 2.2.8
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/README.md +1 -1
- package/README.zh-CN.md +1 -1
- package/docs/interface.md +6 -4
- package/docs/remote-access.md +1 -0
- package/lib/client.js +430 -286
- package/lib/types/client/MobileAttachButton.d.ts +15 -7
- package/lib/types/client/MobileAttachButton.d.ts.map +1 -1
- package/lib/types/client/MobileAttachChips.d.ts.map +1 -1
- package/lib/types/client/effects/model-sheet-extras.d.ts +29 -25
- package/lib/types/client/effects/model-sheet-extras.d.ts.map +1 -1
- package/lib/types/client/styles/composer.css.d.ts +1 -1
- package/lib/types/client/styles/composer.css.d.ts.map +1 -1
- package/lib/types/client/styles/home.css.d.ts +1 -1
- package/lib/types/client/styles/home.css.d.ts.map +1 -1
- package/package.json +1 -1
- package/scripts/check-attach-upload.mjs +42 -0
- package/src/client/MobileAttachButton.tsx +23 -12
- package/src/client/MobileAttachChips.tsx +0 -7
- package/src/client/effects/model-sheet-extras.ts +233 -111
- package/src/client/styles/composer.css.ts +142 -83
- package/src/client/styles/home.css.ts +25 -10
- package/lib/types/client/host-attach.d.ts +0 -38
- package/lib/types/client/host-attach.d.ts.map +0 -1
- package/src/client/host-attach.ts +0 -54
package/README.md
CHANGED
|
@@ -94,7 +94,7 @@ dsh plugin --profile web add dsh-zen-remote
|
|
|
94
94
|
// ~/.dsh/profiles/desktop/package.json
|
|
95
95
|
{
|
|
96
96
|
"dependencies": {
|
|
97
|
-
"dsh-zen-remote": "^2.2.
|
|
97
|
+
"dsh-zen-remote": "^2.2.8" // for local development: "link:/path/to/dsh-zen-remote"
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
```
|
package/README.zh-CN.md
CHANGED
|
@@ -94,7 +94,7 @@ dsh plugin --profile web add dsh-zen-remote
|
|
|
94
94
|
// ~/.dsh/profiles/desktop/package.json
|
|
95
95
|
{
|
|
96
96
|
"dependencies": {
|
|
97
|
-
"dsh-zen-remote": "^2.2.
|
|
97
|
+
"dsh-zen-remote": "^2.2.8" // 本地开发换成 "link:/path/to/dsh-zen-remote"
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
```
|
package/docs/interface.md
CHANGED
|
@@ -127,11 +127,13 @@ PWA,再进来就是冷启动。插件自己的边缘手势也触发不了—
|
|
|
127
127
|
|
|
128
128
|
### 附件上传
|
|
129
129
|
|
|
130
|
-
|
|
130
|
+
手机外壳(<768px)底栏左侧常驻本插件的回形针按钮(`[data-mobile-nav="attach"]`;子智能体会话不显示,与官方一致——官方在子智能体会话里也禁用自己的文件选择)。点按直接拉起**手机本地**的系统选择器(iOS 上是相册/拍照/选取文件三选一,支持多选,单文件默认上限 20 MB)。图片和文件一视同仁:都上传到会话工作目录的 `.dsh-uploads/`,composer 上方出现可删除的预览 chip(图片缩略图、文件图标+文件名),并把 `@.dsh-uploads/文件名` 追加到输入框——发不发、什么时候发,由你按官方发送键决定,不会替你自动发出。
|
|
131
131
|
|
|
132
|
-
|
|
132
|
+
接收端点的完整契约:`POST /_dsh/mobile-nav/upload?session=<会话id>&name=<文件名>`,请求体是文件原始字节流(无 multipart 包装)。服务端把文件落盘到该会话工作区的 `.dsh-uploads/`(目录内自动写入自忽略的 `.gitignore`,内容 `*` + `!.gitignore`,已存在则不覆盖),返回相对路径;浏览器半边拿到路径后往草稿追加 `@.dsh-uploads/<文件名>` token,草稿上方的 `conversation.input.dock` 同步渲染缩略图/文件名预览条,点 `×` 或删掉正文里的 `@...` 即移除。
|
|
133
133
|
|
|
134
|
-
|
|
134
|
+
**为什么常驻自研按钮(#31 修复)**:DSH 0.1.5 起官方工具行自带了一枚独立回形针(原生附件流,文件落宿主机 `~/.dsh/attachments`),手机上出现过两枚回形针,插件于是按「运行时探测到官方工具行 `_tools` 下隐藏的 `<input type="file">` 就整体让位」处理。顺带修正一个旧说法:`<input type="file">` 在浏览器/PWA 里弹的是**当前客户端设备**的文件选择器,不是宿主机桌面的弹窗。真正压垮让位方案的是 DSH 0.2.x:独立回形针挪进了 `+` 命令菜单,隐藏的 `<input type="file">` 却留在 `_tools` 里——让位探测从此永远命中,手机输入区一枚回形针都不剩(issue #31)。修复后手机外壳不再让位:自研回形针常驻,走自己的上传路由,各版本 DSH 下体验一致;DSH ≤ 0.1.5 官方仍渲染的第二枚独立回形针由 CSS 在 <768px 隐藏,行内始终只有一枚。桌面端(≥768px)一切照旧,官方回形针照常使用。
|
|
135
|
+
|
|
136
|
+
安全上的几句话:这条 HTTP 路由只接受同源请求,文件名清洗后只取叶子名,写入路径校验不允许越出工作目录,单文件默认上限 20MB(可在 profile 里的插件行用 `maxUploadBytes` 调整)。远程访问时,这条路由和其它请求一样在网关半边的配对墙之后。
|
|
135
137
|
|
|
136
138
|
### 远程会话拖拽附件(2.2.6)
|
|
137
139
|
|
|
@@ -215,7 +217,7 @@ composer 最左的回形针打开的是**手机本地**的文件选择器(iOS
|
|
|
215
217
|
- 适配 DSH `0.1.5`(0.1.2 → 0.1.5-rc.2 的一批回归,2026-09-11 真机报告、逐项实测):
|
|
216
218
|
- 官方工具行新增了原生附件回形针,手机端一度出现两枚——现在运行时探测宿主
|
|
217
219
|
自带的 `<input type="file">`,命中即整组让位(见「附件上传」一节),不命中
|
|
218
|
-
|
|
220
|
+
照旧加载(该让位机制已于 #31 移除);
|
|
219
221
|
- 官方右侧栏的 ExpandButton 落在**新的** `conversation.session.header.corner`
|
|
220
222
|
槽里,逃过了头部两条 blanket hide,顶到右上角——已隐藏(隐藏它的选择器
|
|
221
223
|
必须 ≥(0,3,1):老的 utilities 反隐藏规则在 0.1.5 下恰好命中这个 `:last-child`
|
package/docs/remote-access.md
CHANGED
|
@@ -519,6 +519,7 @@ npm test # 起 mock 上游,跑 gateway/auth/push 三组测试:反代与注
|
|
|
519
519
|
- **稳定选择器**:用 `[data-slot=...]` / ARIA 而非 hash 类名,避免前端构建后失效。
|
|
520
520
|
- **注入页的单引号坑**:`lib/lan-gate-server.cjs` 里的注入脚本字符串,历史上有「双引号套双引号」bug,注意字面量转义。
|
|
521
521
|
- **本机直连判定**:新增/修改路由前先看 `isLocalDirect`——它是管理面 403 防护的唯一依据,别绕过它。
|
|
522
|
+
- **改 `pwa/inject.js` 要重启网关**:`lib/lan-gate-server.cjs` 在网关子进程启动时把 `pwa/inject.js` 一次性读进内存常量 `INJECT_JS`(`readPwaText('inject.js')`,用于拼装首帧 HTML 的注入脚本),之后不再读盘——本地改完 `pwa/inject.js` 必须重启网关子进程(或重启 DSH)才会出现在响应里。
|
|
522
523
|
|
|
523
524
|
---
|
|
524
525
|
|