dsh-crossterm 0.9.4 → 0.9.5
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 +11 -0
- package/MAINTAINERS.md +2 -2
- package/README.md +11 -9
- package/components/terminal/manifest.json +3 -3
- package/cordis.patch.yml +2 -2
- package/lib/bus.js +1 -1
- package/lib/index.js +5 -5
- package/lib/web.js +1 -1
- package/locale/en.json +1 -1
- package/locale/zh.json +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
## 0.9.5 — 2026-10-20
|
|
2
|
+
|
|
3
|
+
**组件改名:跨终端 → 跨工作区**(User said (m13047):「将跨终端组件名改为跨工作区,目前不做跨终端,暂无条件」)
|
|
4
|
+
|
|
5
|
+
- 起因:跨终端(同一台机器上多个 DSH 进程互发)本轮不做了 —— 没有第二台终端/第二套环境可测,先把这个位置改成实际在用的场景:**同一台 DSH 上不同工作区、不同会话之间互通**。
|
|
6
|
+
- 组件本体:`components/terminal/manifest.json` 的 `name` 改「跨工作区」、`description` 改「在本机不同工作区、不同会话之间互发邮件与文件(跨终端本轮不做,暂无条件)」、`version` 0.9.2 → **0.9.5**(只有这个组件升,其余五个不动)。
|
|
7
|
+
- 显示名同步改:`lib/index.js` 的 `PART_LABEL.terminal`、`lib/web.js` 的 `PART_ORDER` fallback、`locale/zh.json` 与 `locale/en.json` 的组件列表与简介、插件页组件表、`MAINTAINERS.md` 的角色与表格、`cordis.patch.yml` 的两处注释。
|
|
8
|
+
- 顺带把三处工具描述里泛指的「跨终端」改成「跨端互通 / 跨端」(`term_whoami` / `term_inbox` / `term_config`),挂载标签改「跨工作区工具」。
|
|
9
|
+
- **内部标识不动**:part 名仍是 `terminal`、`TOOL_PART` 映射不变、`cordis.patch.yml` 第 3 行仍是 `dsh-crossterm/components/terminal` —— 已装机器不用改配置,重启即见新名字。
|
|
10
|
+
- 邮件四档标签里的「跨终端邮件」保留原义(确实来自另一个 DSH 进程时才会出现),只是这个能力本轮不做、不做宣传。
|
|
11
|
+
|
|
1
12
|
## 0.9.4 — 2026-10-20
|
|
2
13
|
|
|
3
14
|
自动重启组件 **0.3.28 → 0.3.29**(只动 `components/restart/**`;由该组件负责人 `a3e9f80e` 提交、主维护会话发版)。插件内其余五个组件不变。
|
package/MAINTAINERS.md
CHANGED
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"terminal": {
|
|
45
45
|
"session": "session-b6aa099b-cfa6-42b7-961c-10f720236219",
|
|
46
46
|
"short": "b6aa099b",
|
|
47
|
-
"role": "
|
|
47
|
+
"role": "跨工作区组件负责人(= 插件负责人)",
|
|
48
48
|
"since": "2026-10-20",
|
|
49
49
|
"scope": "components/terminal/**、本机 presence / term_send / term_send_files"
|
|
50
50
|
},
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
|---|---|---|---|---|
|
|
97
97
|
| ① 跨端互通(自更新) | v0.9.2 | `b6aa099b` | `components/ui/**`、`client/**`、`locale/**`、`lib/web.js` | 组件版本号在 `components/ui/manifest.json` |
|
|
98
98
|
| ② 跨会话 | v0.9.2 | `b6aa099b` | `components/session/**`、`lib/bus.js` 的链/邮件 | 同上 |
|
|
99
|
-
| ③
|
|
99
|
+
| ③ 跨工作区 | v0.9.5 | `b6aa099b` | `components/terminal/**`、presence / `term_send` | 同上 |
|
|
100
100
|
| ④ 跨设备 | v0.9.2 | `b6aa099b` | `components/device/**`、`lib/cloud/**` | 同上 |
|
|
101
101
|
| ⑤ 跨账号 | v0.9.2 | `b6aa099b` | `components/account/**`(预留) | 同上 |
|
|
102
102
|
| ⑥ 自动重启 | v0.3.28 | `a3e9f80e`(会话名「自动重启」) | `components/restart/**`(`core.js` / `runtime.js` / `scripts/**`) | 不单独发版、不自己发版;改完汇报 `b6aa099b`,由插件负责人并入 `dsh-crossterm` 发版;只动它就把它的版本号加一 |
|
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ A 终端看不到 B 终端里有哪个会话、在干什么,也没法把一条
|
|
|
20
20
|
|---|---|---|---|---|
|
|
21
21
|
| ① | 跨端互通(入口/自更新) | v0.9.3 | 自更新开关:打开后定期检查 npm 新版本并自动安装(默认关;装完要重启 DSH 生效)。关掉它只失去卡片与自动更新,下面五个组件照常工作。裸包名行,承载插件标题/简介与配置卡片,不挂工具 | — |
|
|
22
22
|
| ② | 跨会话 | v0.9.2 | 同一终端里的多个会话之间互通:特征码链、内联邮件、收件箱 | `term_link` `term_unlink` `term_broadcast` `term_inbox` `term_config` |
|
|
23
|
-
| ③ |
|
|
23
|
+
| ③ | 跨工作区 | v0.9.5 | 在本机不同工作区、不同会话之间互发邮件与文件(跨终端本轮不做,暂无条件) | `term_whoami` `term_list` `term_send` `term_send_files` |
|
|
24
24
|
| ④ | 跨设备 | v0.9.2 | 经云端中转站,在多台机器的 DSH 之间互发邮件与文件 | `term_cloud` |
|
|
25
25
|
| ⑤ | 跨账号 | v0.9.2 | 预留位:后续用于跨账号互通,当前不挂工具 | — |
|
|
26
26
|
| ⑥ | 自动重启 | v0.3.29 | 改完插件/配置后让 DSH 自己重启一次,并自动拉起离线会话(原 `dsh-restart` 插件,0.9.0 起并入) | `dsh_restart` |
|
|
@@ -31,19 +31,21 @@ A 终端看不到 B 终端里有哪个会话、在干什么,也没法把一条
|
|
|
31
31
|
>
|
|
32
32
|
> 组件版本号怎么升:**只在该组件自己的文件改动时升它**,跟着插件一起发版(例:只改自动重启 → `components/restart` 的 `0.3.28` → `0.3.29`,其余五个不动)。插件总版本仍按发版技能的三分位规则。
|
|
33
33
|
|
|
34
|
-
**本版更新(0.9.
|
|
34
|
+
**本版更新(0.9.5)**
|
|
35
35
|
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
36
|
+
- **组件改名:跨终端 → 跨工作区**(跨终端本轮不做,暂无条件)。这个位置改成实际在用的场景:同一台 DSH 上不同工作区、不同会话之间互发邮件与文件。
|
|
37
|
+
- **只管本次变动**:插件总版本 0.9.4 → 0.9.5,组件里只有**跨工作区 0.9.2 → 0.9.5**,其余五个(入口 0.9.3 / 跨会话 0.9.2 / 跨设备 0.9.2 / 跨账号 0.9.2 / 自动重启 0.3.29)不动。
|
|
38
|
+
- **已装的机器不用改配置**:part 标识仍是 `terminal`、`cordis.patch.yml` 第 3 行没动,改的是显示名(插件页组件表、`/about`、locale 中英文、`MAINTAINERS.md`、注释),重启即见。
|
|
39
39
|
|
|
40
|
-
**上一版(0.9.
|
|
40
|
+
**上一版(0.9.4)**
|
|
41
41
|
|
|
42
|
-
-
|
|
43
|
-
-
|
|
42
|
+
- **只管本次变动**:插件总版本 0.9.3 → 0.9.4,组件里只有**自动重启 0.3.28 → 0.3.29**,其余五个(入口 0.9.3 / 跨会话 0.9.2 / 跨工作区 0.9.2 / 跨设备 0.9.2 / 跨账号 0.9.2)不动。
|
|
43
|
+
- **重启前先确认没人干活(第三路信号)**:插件每 2 秒把「哪些会话正在回合中」写进 `<总线目录>\restart-module\logs\busy-agents.json`,重启守卫读它 —— 长工具调用期间 transcript 不写盘、市场运行列表也会掉,过去靠这两路会误判空闲。
|
|
44
|
+
- **守卫终检 + 倒计时对齐**:守卫放行后 400 ms 再确认一次;倒计时归零先停 `00:00`(「正在准备重启…」),等 helper 真开始杀进程才转正计时。
|
|
44
45
|
|
|
45
|
-
**更早(0.9.2 / 0.9.0 / 0.8.14 / 0.8.13 / 0.8.12 / 0.8.11 / 0.8.10 / 0.8.9 / 0.8.8 / 0.8.7 / 0.8.6 / 0.8.5 / 0.8.0)**
|
|
46
|
+
**更早(0.9.3 / 0.9.2 / 0.9.0 / 0.8.14 / 0.8.13 / 0.8.12 / 0.8.11 / 0.8.10 / 0.8.9 / 0.8.8 / 0.8.7 / 0.8.6 / 0.8.5 / 0.8.0)**
|
|
46
47
|
|
|
48
|
+
- 0.9.3:组件表补全六个组件,入口名从 `ui` 改成「跨端互通(入口)」,组件版本号各升各的第一次落地。
|
|
47
49
|
- 0.9.0:自动重启并进来当第 6 个组件(`dsh_restart` + 8 个 helper 脚本),由原 `dsh-restart` 会话继续维护、不再单独发版。
|
|
48
50
|
- 0.8.14:装完未重启时卡片显示「待重启」、更新按钮变灰「已装待重启」,`/check` 回 `needRestart=true`。
|
|
49
51
|
- 0.8.13:已经是最新就不装;没写收件人的信优先投给 `MAINTAINERS.md` 里的维护者会话。
|
package/cordis.patch.yml
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
# 卡片与「自动更新」,下面四个组件照常跑。
|
|
16
16
|
# 自动更新默认关,开关在卡片里,值落 config.json 的 autoUpdate。
|
|
17
17
|
# ② dsh-crossterm/components/session 跨会话:term_link / term_unlink / term_broadcast / term_inbox / term_config
|
|
18
|
-
# ③ dsh-crossterm/components/terminal
|
|
18
|
+
# ③ dsh-crossterm/components/terminal 跨工作区:term_whoami / term_list / term_send / term_send_files
|
|
19
19
|
# ④ dsh-crossterm/components/device 跨设备:term_cloud(云端总线同步)
|
|
20
20
|
# ⑤ dsh-crossterm/components/account 跨账号:预留占位,暂不挂工具
|
|
21
21
|
# ⑥ dsh-crossterm/components/restart 自动重启:dsh_restart(原 dsh-restart 插件,0.9.0 起并入)
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
# 为什么入口行必须用「裸包名」:浏览器的 client 半端只对裸包名行生效
|
|
30
30
|
# (dsh-client-modules 的 locatePkgJson 对子路径行直接返回 undefined),而插件页顶部标题
|
|
31
31
|
# 与裸包名行共用同一份 locale/zh.json 的 meta —— 所以裸包名行单独做入口(卡片 + 自动更新),
|
|
32
|
-
#
|
|
32
|
+
# 标题写「跨端互通(自更新)」,四个业务组件排在它后面、名字仍是跨会话/跨工作区/跨设备/跨账号。
|
|
33
33
|
#
|
|
34
34
|
# 0.8.9 起五个组件互不依赖:谁都不用 provide/inject 别人,各挂各的工具与开销。
|
|
35
35
|
# 关掉入口行只失去「配置卡片 + 自动更新」,四个业务组件照常工作、各自仍可单独关。
|
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.9.
|
|
26
|
+
export const VERSION = '0.9.5'
|
|
27
27
|
|
|
28
28
|
/** DSH 的家目录:与宿主其它状态(sessions / profiles)同一个根,多终端天然共享 */
|
|
29
29
|
export function dshHome() {
|
package/lib/index.js
CHANGED
|
@@ -1518,7 +1518,7 @@ const PART_LABEL = {
|
|
|
1518
1518
|
all: '全部组件',
|
|
1519
1519
|
ui: '入口(插件卡片)',
|
|
1520
1520
|
session: '跨会话',
|
|
1521
|
-
terminal: '
|
|
1521
|
+
terminal: '跨工作区',
|
|
1522
1522
|
device: '跨设备',
|
|
1523
1523
|
account: '跨账号(预留)',
|
|
1524
1524
|
restart: '自动重启',
|
|
@@ -1534,7 +1534,7 @@ function buildTools(term, agent, part = 'all') {
|
|
|
1534
1534
|
|
|
1535
1535
|
const whoami = defineTool({
|
|
1536
1536
|
name: 'term_whoami',
|
|
1537
|
-
description: '显示当前 DSH 终端在本插件里的身份(nodeId / 显示名 / 总线目录 /
|
|
1537
|
+
description: '显示当前 DSH 终端在本插件里的身份(nodeId / 显示名 / 总线目录 / 本进程活着的会话),排查跨端互通问题先用它。',
|
|
1538
1538
|
parameters: {},
|
|
1539
1539
|
output: {
|
|
1540
1540
|
schema: { type: 'json' },
|
|
@@ -1851,7 +1851,7 @@ function buildTools(term, agent, part = 'all') {
|
|
|
1851
1851
|
|
|
1852
1852
|
const inbox = defineTool({
|
|
1853
1853
|
name: 'term_inbox',
|
|
1854
|
-
description: '
|
|
1854
|
+
description: '查看本终端收到的跨端消息(没自动投递进来的、或静默投递的),并可以把它们投进当前会话或丢弃。',
|
|
1855
1855
|
parameters: {
|
|
1856
1856
|
action: { type: 'string', enum: ['list', 'deliver', 'drop'], description: 'list=查看(默认),deliver=投进当前会话,drop=丢弃' },
|
|
1857
1857
|
ids: { type: 'array', items: { type: 'string' }, description: '要处理的消息 id;deliver/drop 时留空表示全部' },
|
|
@@ -1890,7 +1890,7 @@ function buildTools(term, agent, part = 'all') {
|
|
|
1890
1890
|
|
|
1891
1891
|
const config = defineTool({
|
|
1892
1892
|
name: 'term_config',
|
|
1893
|
-
description: '
|
|
1893
|
+
description: '查看或修改本终端在跨端互通插件里的配置(显示名 name、是否自动投递 autoDeliver、收件文件落地目录 inboxDir)。改完立即生效,不用重启。',
|
|
1894
1894
|
parameters: {
|
|
1895
1895
|
name: { type: 'string', description: '终端显示名,方便别的终端认出你' },
|
|
1896
1896
|
autoDeliver: { type: 'boolean', description: '收到消息是否自动投进目标会话' },
|
|
@@ -2160,7 +2160,7 @@ export default {
|
|
|
2160
2160
|
try { fn() } catch { /* ignore */ }
|
|
2161
2161
|
}
|
|
2162
2162
|
}
|
|
2163
|
-
}, 'dsh-crossterm:
|
|
2163
|
+
}, 'dsh-crossterm: 跨工作区工具')
|
|
2164
2164
|
mounted.set(agent, dispose)
|
|
2165
2165
|
term.activeSessionId = String(agent.id || term.activeSessionId)
|
|
2166
2166
|
void term.note(`mounted tools -> ${shortId(agent.id)}`)
|
package/lib/web.js
CHANGED
|
@@ -561,7 +561,7 @@ function statusOf(term) {
|
|
|
561
561
|
const PART_ORDER = [
|
|
562
562
|
{ part: 'ui', fallback: '跨端互通(入口)' },
|
|
563
563
|
{ part: 'session', fallback: '跨会话' },
|
|
564
|
-
{ part: 'terminal', fallback: '
|
|
564
|
+
{ part: 'terminal', fallback: '跨工作区' },
|
|
565
565
|
{ part: 'device', fallback: '跨设备' },
|
|
566
566
|
{ part: 'account', fallback: '跨账号' },
|
|
567
567
|
{ part: 'restart', fallback: '自动重启' },
|
package/locale/en.json
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"meta": {
|
|
3
3
|
"title": "CrossTerm (self-update)",
|
|
4
4
|
"shortTitle": "CrossTerm",
|
|
5
|
-
"description": "Self-update switch: when on, the plugin periodically checks npm for a newer version and installs it (off by default; restart DSH afterwards to take effect — it never restarts on its own). Turning it off does not affect the five components below — session /
|
|
5
|
+
"description": "Self-update switch: when on, the plugin periodically checks npm for a newer version and installs it (off by default; restart DSH afterwards to take effect — it never restarts on its own). Turning it off does not affect the five components below — session / workspace / device / account / auto-restart — each has its own switch and version. About: synchronize sessions, workspaces and devices under one DSH account, with feature-code chains, inline mail, a cloud relay and automatic session backups."
|
|
6
6
|
}
|
|
7
7
|
}
|
package/locale/zh.json
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"meta": {
|
|
3
3
|
"title": "跨端互通(自更新)",
|
|
4
4
|
"shortTitle": "跨端互通",
|
|
5
|
-
"description": "自更新开关:打开后插件会定期检查 npm 上的新版本并自动安装(默认关;装完要重启 DSH 才生效,不会自己重启)。关掉它不影响下面五个组件 —— 跨会话 /
|
|
5
|
+
"description": "自更新开关:打开后插件会定期检查 npm 上的新版本并自动安装(默认关;装完要重启 DSH 才生效,不会自己重启)。关掉它不影响下面五个组件 —— 跨会话 / 跨工作区 / 跨设备 / 跨账号 / 自动重启,各自独立开关、各有版本号。插件简介:同一 DSH 账号下的会话、终端、设备之间互通,支持特征码链、内联邮件、云端中转站与会话自动备份。"
|
|
6
6
|
}
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-crossterm",
|
|
3
|
-
"version": "0.9.
|
|
4
|
-
"description": "跨端互通:同一 DSH
|
|
3
|
+
"version": "0.9.5",
|
|
4
|
+
"description": "跨端互通:同一 DSH 账号下的会话、工作区、设备之间互通 —— 特征码链、内联邮件、云端中转站与自动备份",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
7
7
|
"exports": {
|