dsh-crossterm 0.8.9 → 0.8.10

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
@@ -1,5 +1,13 @@
1
1
  # dsh-crossterm 变更记录
2
2
 
3
+ ## 0.8.10 — 2026-10-19
4
+
5
+ - **云端设备的显示规则调整**(User said (m11109):名称(权限)+在线状态不变,版本只在有差异时显示):
6
+ 每台设备从 `名称 · 角色 · 状态 · v版本` 改为 `名称(角色) · 状态`,
7
+ 例如 `YOCE_C(成员) · 3 小时前`;版本号只在该设备与**本机版本不一致**时才追加(` · v0.8.2`),
8
+ 与本机一致的设备不再显示版本,避免每台都挂一串相同版本号。
9
+ - 仅改 `client/client.js` 的 `devicesText()` 渲染逻辑,接口与数据不变。
10
+
3
11
  ## 0.8.9 — 2026-10-19
4
12
 
5
13
  ### 第一个组件从「总开关」改成「自更新开关」
package/README.md CHANGED
@@ -28,27 +28,19 @@ A 终端看不到 B 终端里有哪个会话、在干什么,也没法把一条
28
28
  > `locatePkgJson()` 对子路径行返回 undefined),而插件页顶部标题与这一行共用同一份 `locale/zh.json` 的 meta,
29
29
  > 所以它单独做入口(配置卡片 + 自动更新开关),标题带「(自更新)」;卡片头用 `shortTitle` 显示短名「跨端互通」。
30
30
 
31
- **本版更新(0.8.9)**
32
-
33
- - **第一个组件从「总开关」改成「自更新开关」**:它只管「有没有新版本、要不要自动装」,
34
- 不再管另外四个组件。以前关掉它会连坐停掉工具、心跳、云同步、中转站与备份;现在关掉它只失去卡片与自动更新,
35
- 跨会话 / 跨终端 / 跨设备 / 跨账号 各自独立开关、照常工作。
36
- - **自动更新默认关**:卡片新增「自动更新」一行与开关,打开后按 `autoUpdateIntervalMs`(默认 6 小时)检查
37
- npm 最新版并自动安装,结果写进 `logs/update.log`。装完**不会自己重启**,卡片提示「重启 DSH 后生效」;
38
- 关掉后仍可手动点「检查更新 / 更新」。
39
- - **服务注入拆掉**:0.7.x–0.8.8 是 `ui` 行 `root.provide('crossterm')`、其余四行 `inject` 它;
40
- 0.8.9 起五行都只 `inject(['agents'])`,各挂各的。
41
- - 新增配置:`autoUpdate`(默认 `false`)、`autoUpdateIntervalMs`(默认 `21600000`,即 6 小时,范围 1 分钟–7 天)。
42
-
43
- **上一版(0.8.8)**
44
-
45
- - **「维护者」一栏只给维护端看**:以前任何设备装上插件都能看到负责人是谁;现在只在维护端显示 ——
46
- 本机 `nodeId` 必须出现在 `MAINTAINERS.md` 的负责人/助手条目里(两者在同一台机器上时都算),
47
- 或用配置 `maintainerDevices` 显式放行。其他设备上这行直接不渲染。
48
- - **换机器只改一个字段**:负责人换机器时,把 `MAINTAINERS.md` 里 `current.nodeId` 改成新机器,
49
- 旧机器下次刷新卡片自动隐藏,不用改代码。
50
-
51
- **更早(0.8.7 / 0.8.6 / 0.8.5 / 0.8.2 / 0.8.0)**
31
+ **本版更新(0.8.10)**
32
+
33
+ - **云端设备显示规则调整**:每台设备显示 `名称(权限) · 在线状态`,例如 `YOCE_C(成员) · 3 小时前`;
34
+ 版本号**只在它与本机版本不一致时**才显示(如 ` · v0.8.2`),与本机一致的设备不再挂版本号。
35
+ - 只改客户端渲染,接口与数据不变;升级后刷新卡片即生效。
36
+
37
+ **上一版(0.8.9)**
38
+
39
+ - **第一个组件从「总开关」改成「自更新开关」**:关掉它只失去卡片与自动更新,跨会话 / 跨终端 / 跨设备 / 跨账号 各自独立。
40
+ - **自动更新默认关**:卡片「自动更新」一行 + 开关,默认每 6 小时检查一次并自动安装,装完提示重启、不自动重启。
41
+ - **服务注入拆掉**:五行都只 `inject(['agents'])`,不再 provide/inject 连锁。
42
+
43
+ **更早(0.8.8 / 0.8.7 / 0.8.6 / 0.8.5 / 0.8.2 / 0.8.0)**
52
44
 
53
45
  - 0.8.7:修 0.8.6 的回归(卡片「云端设备」整块消失,接口报 `layout is not defined`);
54
46
  合并逻辑变成可测纯函数 `mergeDevices({ old, fresh, selfId, ownerDevice })`,配套 20 项单测;
package/client/client.js CHANGED
@@ -177,13 +177,17 @@ window.__ModuleLoader__.load({
177
177
  if (!devices.ok) return devices.message || "读取失败";
178
178
  const list = (devices.devices || []).filter((d) => d && (!devices.me || d.nodeId !== devices.me));
179
179
  if (!list.length) return "云端还没有其他设备";
180
+ const local = String((status && status.version) || "");
180
181
  return list
181
182
  .map((d) => {
182
183
  const label = d.name || d.nodeId || "未知设备";
183
184
  const role = d.role || "成员";
184
185
  const at = d.updatedAt || d.at || (d.lastSeen ? Date.parse(d.lastSeen) : 0);
185
186
  const state = d.online ? "在线" : agoText(at);
186
- return label + " · " + role + " · " + state + (d.version ? " · v" + d.version : "");
187
+ const ver = String(d.version || "");
188
+ // 版本只在「与本机不一致」时显示,避免每台都挂一串相同的 vX
189
+ const verText = ver && ver !== local ? " · v" + ver : "";
190
+ return label + "(" + role + ") · " + state + verText;
187
191
  })
188
192
  .join(";");
189
193
  }
package/lib/bus.js CHANGED
@@ -23,7 +23,7 @@ import path from 'node:path'
23
23
  import crypto from 'node:crypto'
24
24
  import { rotateIfNeeded } from './logs.js'
25
25
 
26
- export const VERSION = '0.8.9'
26
+ export const VERSION = '0.8.10'
27
27
 
28
28
  /** DSH 的家目录:与宿主其它状态(sessions / profiles)同一个根,多终端天然共享 */
29
29
  export function dshHome() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-crossterm",
3
- "version": "0.8.9",
3
+ "version": "0.8.10",
4
4
  "description": "跨端互通:同一 DSH 账号下的会话、终端、设备之间互通 —— 特征码链、内联邮件、云端中转站与自动备份",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",