@zhangfengshun/dsh-remote-ssh 1.9.0 → 1.9.1

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
@@ -2,6 +2,10 @@
2
2
 
3
3
  本文件的版本号与 `package.json` 的 `version` 保持一致。每个版本对应一个 Cordis Package 快照(`pkg-N`)。
4
4
 
5
+ ## [1.9.1] — 安装时自动配置 better-sidebar shell
6
+ ### 改进
7
+ - **安装即生效**:`cordis.patch.yml` 新增 `id: better-sidebar` 的 `config.shell` 覆盖,用 `!!js` 动态计算 wrapper 脚本路径(适配不同平台和用户主目录)。安装插件后无需手动编辑任何配置文件,重启 DSH 即可使用远程终端透明接入。
8
+
5
9
  ## [1.9.0] — 远程文件/终端合并到内置页签
6
10
  ### 重大变更
7
11
  - **移除 `remssh:files` 和 `remssh:term` 页签**:远程文件和远程终端不再使用独立侧边栏页签。
package/README.md CHANGED
@@ -29,18 +29,18 @@ dsh plugin --profile <name> add /absolute/path/to/dsh-remote-ssh
29
29
  ### 发布后安装
30
30
 
31
31
  ```bash
32
- dsh plugin --profile <name> add @zhangfengshun/dsh-remote-ssh@1.9.0
32
+ dsh plugin --profile <name> add @zhangfengshun/dsh-remote-ssh@1.9.1
33
33
  ```
34
34
 
35
35
  > ⚠️ 安装后需**重启 DSH** 才生效;后续仅修改 Client 半边时刷新浏览器即可。
36
36
 
37
37
  ## 快速开始
38
38
 
39
- 1. 安装插件并重启 DSH
39
+ 1. 安装插件并重启 DSH(安装时自动配置 better-sidebar 的 shell 指向 wrapper 脚本)。
40
40
  2. 打开 **设置 → 🖥️ 远程连接**,添加一条连接(主机 / 端口 / 用户名 / 密钥或密码),点「测试连接」验证。
41
41
  3. 需要把远程目录当作工作区时:走 DSH 原生「添加工作区」流程,在弹窗中选择「**选择远程目录…**」→ 选择连接 → 浏览并选择远程目录。
42
42
  4. 创建后远程文件自动同步到本地镜像,内置「文件」页签直接可见。
43
- 5. **(可选)远程终端**:在 DSH 设置中把 better-sidebar 的 `shell` 配置指向 wrapper 脚本(见下方「远程终端配置」),内置「终端」页签即可在远程工作区中自动打开 SSH 终端。
43
+ 5. 在远程工作区中打开内置「终端」页签 自动 SSH 到远程主机(仅密钥认证)。
44
44
 
45
45
  ## 使用指南
46
46
 
@@ -71,17 +71,18 @@ dsh plugin --profile <name> add @zhangfengshun/dsh-remote-ssh@1.9.0
71
71
 
72
72
  通过 shell wrapper 实现:终端启动时自动检测当前工作目录下的 `.remote-ssh.json`,若存在且含密钥路径 → 自动 `ssh -tt` 连接远程主机;否则启动本地 shell。
73
73
 
74
- **配置步骤**:
74
+ **自动配置**:安装插件后,`cordis.patch.yml` 自动把 better-sidebar 的 `shell` 配置覆盖为 wrapper 脚本路径(用 `!!js` 动态计算,适配不同平台和用户主目录)。**无需手动编辑任何配置文件。**
75
75
 
76
+ 工作流程:
76
77
  1. 插件启动时自动在 `~/.dsh/remote-ssh/` 下生成 wrapper 脚本:
77
- - Windows: `dsh-remote-shell.cmd`(调用 `dsh-remote-shell.js`)
78
- - POSIX: `dsh-remote-shell`(调用 `dsh-remote-shell.js`)
79
- 2. 在 DSH 设置中找到 better-sidebar `shell` 配置项,填入 wrapper 脚本的完整路径:
80
- - Windows: `C:\Users\<你>\.dsh\remote-ssh\dsh-remote-shell.cmd`
81
- - POSIX: `/home/<你>/.dsh/remote-ssh/dsh-remote-shell`
78
+ - `dsh-remote-shell.js`(核心逻辑:检测 `.remote-ssh.json` → `ssh -tt`;否则本地 shell
79
+ - Windows: `dsh-remote-shell.cmd`(薄壳调用 .js
80
+ - POSIX: `dsh-remote-shell`(薄壳调用 .js)
81
+ 2. 安装时自动覆盖 better-sidebar `shell` config 指向 wrapper 脚本。
82
82
  3. 重启 DSH 后,在远程工作区中打开终端 → 自动 SSH 到远程主机;在本地工作区中打开终端 → 照常启动本地 shell。
83
83
 
84
84
  > ⚠️ 终端透明接入仅支持**密钥认证**(密码无法安全传入 wrapper 脚本)。密码认证的连接仍可使用模型工具。
85
+ > 若需覆盖自动配置,在 profile 的 `cordis.patch.yml` 中加一条 `id: better-sidebar` 的 `config.shell` 即可(profile patch 优先于 bundle patch)。
85
86
 
86
87
  ### 4. 远程工作区(🌐)
87
88
 
@@ -158,11 +159,10 @@ dsh-remote-ssh/
158
159
  ## 已知限制
159
160
 
160
161
  1. **终端透明接入仅限密钥认证**:shell wrapper 通过 `.remote-ssh.json` 读取密钥路径,密码认证无法安全传入。密码认证的连接仍可使用模型工具和远程文件操作。
161
- 2. **终端需手动配置 shell**:需在 DSH 设置中把 better-sidebar `shell` 指向 wrapper 脚本路径,终端透明接入才生效。
162
- 3. **文件操作依赖 GNU 工具**(`find -printf`、`base64 -w0`):目标为 Linux 超算时通用。
163
- 4. **密码认证需本机 `sshpass`**(Windows 默认没有);密钥认证无此依赖。
164
- 5. **同步为全量 tar**:`remote_ssh_sync` / `remote_ssh_push` 用 `tar` 流式全量同步,单次同步大目录耗时与传输量较高,后续可换 `rsync -e ssh` 增量。
165
- 6. **内置编辑器编辑的是本地镜像副本**,不会自动回传 —— 须在设置页点「推送」或调用 `remote_ssh_push` 同步回远端。
162
+ 2. **文件操作依赖 GNU 工具**(`find -printf`、`base64 -w0`):目标为 Linux 超算时通用。
163
+ 3. **密码认证需本机 `sshpass`**(Windows 默认没有);密钥认证无此依赖。
164
+ 4. **同步为全量 tar**:`remote_ssh_sync` / `remote_ssh_push` 用 `tar` 流式全量同步,单次同步大目录耗时与传输量较高,后续可换 `rsync -e ssh` 增量。
165
+ 5. **内置编辑器编辑的是本地镜像副本**,不会自动回传 —— 须在设置页点「推送」或调用 `remote_ssh_push` 同步回远端。
166
166
 
167
167
  ## 路线图
168
168
 
package/cordis.patch.yml CHANGED
@@ -5,3 +5,17 @@
5
5
  - insert:
6
6
  - id: remote-ssh
7
7
  name: '@zhangfengshun/dsh-remote-ssh'
8
+ # 自动覆盖 better-sidebar 的 shell 配置,指向本插件生成的 shell wrapper。
9
+ # wrapper 脚本在插件 apply() 时写入 ~/.dsh/remote-ssh/dsh-remote-shell[.cmd]:
10
+ # - 远程工作区(cwd 含 .remote-ssh.json 且 keyPath 非空)→ ssh -tt 连远程
11
+ # - 本地工作区 → 照常启动本地 shell
12
+ # 路径用 !!js 动态计算,适配不同平台和用户主目录。
13
+ - id: better-sidebar
14
+ config:
15
+ shell: !!js |
16
+ var os = require('os');
17
+ var path = require('path');
18
+ var dir = path.join(os.homedir(), '.dsh', 'remote-ssh');
19
+ var isWin = process.platform === 'win32';
20
+ var wrapper = isWin ? path.join(dir, 'dsh-remote-shell.cmd') : path.join(dir, 'dsh-remote-shell');
21
+ return wrapper;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhangfengshun/dsh-remote-ssh",
3
- "version": "1.9.0",
3
+ "version": "1.9.1",
4
4
  "description": "DSH web plugin: VSCode Remote-SSH-like remote development (SSH to supercomputers/servers, remote workspace, file explorer, integrated terminal), integrated with dsh-better-sidebar and DSH settings.",
5
5
  "keywords": [
6
6
  "dsh",