@zhangfengshun/dsh-remote-ssh 2.4.1 → 2.4.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  本文件的版本号与 `package.json` 的 `version` 保持一致。每个版本对应一个 Cordis Package 快照(`pkg-N`)。
4
4
 
5
+ ## [2.4.2] — 修复设置导航显示器图标「先齿轮后显示器」闪现
6
+ ### 修复
7
+ - **图标替换从防抖路径改为同步执行**:此前设置面板挂载后,显示器图标替换走 500ms 防抖定时器,用户会先看到半秒壳层默认齿轮再变成显示器图标。现在在 MutationObserver 回调里**同步原位替换**——回调是微任务、在浏览器绘制前执行,齿轮刚插入 DOM 就被换掉,**第一帧即最终图标**,无闪现。
8
+ - 防抖批量路径保留给工作区地球角标(依赖异步 remoteTitles 数据);语言切换的全量补扫照旧。
9
+
5
10
  ## [2.4.1] — 设置页「远程连接」选项卡改用真实 SVG 显示器图标
6
11
  ### 变更
7
12
  - **去掉标签文本里的 🖥️ emoji**:`settings.nav` 标签改为纯文本「远程连接 / Remote Connections」,不再以表情文字充当图标。
package/lib/client.js CHANGED
@@ -1265,8 +1265,9 @@ window.__ModuleLoader__.load({
1265
1265
  if (document.hidden) return; // 后台页签零开销
1266
1266
  if (roots && roots.length) {
1267
1267
  // 只扫新增子树:流式聊天期间不做全文档扫描(稳态成本≈0)
1268
+ // (设置导航图标已在 MutationObserver 回调里同步替换,这里只补工作区角标)
1268
1269
  for (var i = 0; i < roots.length; i++) {
1269
- if (roots[i].isConnected) { checkCellIn(roots[i]); swapWorkspaceIconsIn(roots[i]); }
1270
+ if (roots[i].isConnected) swapWorkspaceIconsIn(roots[i]);
1270
1271
  }
1271
1272
  } else {
1272
1273
  applyRemoteNavIcon(); // 语言切换等无根场景全量扫一次
@@ -1277,7 +1278,15 @@ window.__ModuleLoader__.load({
1277
1278
  var mo = new MutationObserver(function (muts) {
1278
1279
  for (var i = 0; i < muts.length; i++) {
1279
1280
  var added = muts[i].addedNodes;
1280
- for (var j = 0; j < added.length; j++) schedule(added[j]);
1281
+ for (var j = 0; j < added.length; j++) {
1282
+ var node = added[j];
1283
+ // 设置导航图标:同步原位替换。MutationObserver 回调是微任务,
1284
+ // 在浏览器绘制前执行 —— 齿轮刚插入 DOM 就被换成显示器图标,
1285
+ // 用户看到的第一帧就是最终图标(2.4.2 修复齿轮闪现)。
1286
+ if (node && node.nodeType === 1 && node.isConnected) checkCellIn(node);
1287
+ // 工作区地球角标依赖异步 remoteTitles,仍走防抖批量路径
1288
+ schedule(node);
1289
+ }
1281
1290
  }
1282
1291
  });
1283
1292
  mo.observe(document.body, { childList: true, subtree: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhangfengshun/dsh-remote-ssh",
3
- "version": "2.4.1",
3
+ "version": "2.4.2",
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",