@zhangfengshun/dsh-remote-ssh 2.2.0 → 2.2.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 +4 -0
- package/lib/client.js +41 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
本文件的版本号与 `package.json` 的 `version` 保持一致。每个版本对应一个 Cordis Package 快照(`pkg-N`)。
|
|
4
4
|
|
|
5
|
+
## [2.2.1] — 去掉设置导航「远程连接」左侧的齿轮图标
|
|
6
|
+
### 修复
|
|
7
|
+
- DSH 壳层对未知 `settings.section` 渲染默认齿轮图标,且导航类名是构建期哈希(每版都会变),旧版硬编码的 CSS 选择器(`VOzbGW_*`)已随 DSH 更新失效。改为按栏目标题文本定位设置导航按钮并隐藏其图标 svg(MutationObserver + 语言切换自动重跑),跨 DSH 构建版本稳定。
|
|
8
|
+
|
|
5
9
|
## [2.2.0] — 远程命令连接复用(实测 ≈15× 提速)+ 协议/安全加固
|
|
6
10
|
### 性能
|
|
7
11
|
- **`remote_ssh_exec` 走持久会话池**:不再每次调用做完整 SSH 握手。真实 HPC(ssh.cn-zhongwei-1.paracloud.com,2222 端口)实测:一次性连接单命令平均 **1292ms**,连接复用后单命令平均 **84.3ms**,**约 15.3× 提速**;`stdin` 参数经 heredoc 走同一条复用通道。
|
package/lib/client.js
CHANGED
|
@@ -55,9 +55,7 @@ window.__ModuleLoader__.load({
|
|
|
55
55
|
".rssh-seg-btn:hover{background:var(--dsw-alias-interactive-bg-hover)}" +
|
|
56
56
|
".rssh-seg-btn.active{background:var(--dsw-alias-state-business-primary);color:#fff}" +
|
|
57
57
|
".rssh-pick-tree{border:1px solid var(--dsw-alias-border-l1);border-radius:4px;max-height:240px;overflow-y:auto;margin-top:4px;background:var(--dsw-alias-bg-layer-2)}" +
|
|
58
|
-
".rssh-pick-empty{padding:12px;text-align:center;color:var(--dsw-alias-label-tertiary);font-size:11px}"
|
|
59
|
-
// 设置面板导航:隐藏「远程连接」栏目左侧壳层硬编码的齿轮图标(本栏目 order=200 位于末尾)。
|
|
60
|
-
".VOzbGW_navList .VOzbGW_navCell:last-child .VOzbGW_navIcon{display:none}";
|
|
58
|
+
".rssh-pick-empty{padding:12px;text-align:center;color:var(--dsw-alias-label-tertiary);font-size:11px}";
|
|
61
59
|
|
|
62
60
|
// ---- 国际化(跟随 DSH 设置中的语言自动切换)----
|
|
63
61
|
var NS = "dsh-remote-ssh";
|
|
@@ -1111,6 +1109,46 @@ window.__ModuleLoader__.load({
|
|
|
1111
1109
|
return function () { if (el.parentNode) el.parentNode.removeChild(el); };
|
|
1112
1110
|
});
|
|
1113
1111
|
|
|
1112
|
+
// ---- 去掉设置导航「远程连接」条目左侧的默认齿轮图标 ----
|
|
1113
|
+
// 壳层对未知 settings.section 一律渲染齿轮图标(IconSettingsOutline16 兜底),
|
|
1114
|
+
// 且导航 CSS 类名是构建期哈希(VOzbGW_*、zOa2rq_* 每版都会变),CSS 选择器跨版本
|
|
1115
|
+
// 不可靠。这里改为按条目文本(settings.nav)定位设置导航按钮,隐藏其 svg 图标;
|
|
1116
|
+
// 设置面板按需挂载、语言会切换,用 MutationObserver + 语言订阅自动重跑。
|
|
1117
|
+
if (slots) {
|
|
1118
|
+
function hideRemoteGearIcon() {
|
|
1119
|
+
try {
|
|
1120
|
+
var label = i18n.t("settings.nav");
|
|
1121
|
+
var buttons = document.querySelectorAll("button");
|
|
1122
|
+
for (var i = 0; i < buttons.length; i++) {
|
|
1123
|
+
var btn = buttons[i];
|
|
1124
|
+
var text = (btn.textContent || "").trim();
|
|
1125
|
+
if (text === label.trim() && text !== "") {
|
|
1126
|
+
var icon = btn.querySelector("svg");
|
|
1127
|
+
if (icon) { icon.style.display = "none"; return true; }
|
|
1128
|
+
}
|
|
1129
|
+
}
|
|
1130
|
+
} catch (e) {}
|
|
1131
|
+
return false;
|
|
1132
|
+
}
|
|
1133
|
+
ctx.effect(function () {
|
|
1134
|
+
if (typeof document === "undefined") return;
|
|
1135
|
+
hideRemoteGearIcon();
|
|
1136
|
+
var timer = null;
|
|
1137
|
+
var schedule = function () {
|
|
1138
|
+
if (timer) return;
|
|
1139
|
+
timer = setTimeout(function () { timer = null; hideRemoteGearIcon(); }, 120);
|
|
1140
|
+
};
|
|
1141
|
+
var mo = new MutationObserver(schedule);
|
|
1142
|
+
mo.observe(document.body, { childList: true, subtree: true });
|
|
1143
|
+
var off = i18n.subscribe(schedule);
|
|
1144
|
+
return function () {
|
|
1145
|
+
mo.disconnect();
|
|
1146
|
+
if (off) off();
|
|
1147
|
+
if (timer) clearTimeout(timer);
|
|
1148
|
+
};
|
|
1149
|
+
}, "dsh-remote-ssh: hide settings nav gear icon");
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1114
1152
|
// better-sidebar 0.15+ 的文件上传 UI 把原始字节流 POST 到 /sidebar/upload。
|
|
1115
1153
|
// 远程工作区会话的文件树显示的是本地镜像目录,better-sidebar 会把上传写进
|
|
1116
1154
|
// 本地镜像而不会到达远程。这里包装 fetch:目标目录位于某个远程工作区镜像
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhangfengshun/dsh-remote-ssh",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.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",
|