@twinsearth/w2m-dsh-plugin 1.1.19 → 1.1.20

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.
@@ -5,14 +5,14 @@
5
5
  },
6
6
  "metadata": {
7
7
  "description": "The w2m fleet plugins: one account, many machines, any of Windows, macOS or Linux.",
8
- "version": "1.1.19"
8
+ "version": "1.1.20"
9
9
  },
10
10
  "plugins": [
11
11
  {
12
12
  "name": "w2m-fleet",
13
13
  "source": "./",
14
14
  "description": "Read fleet state and dispatch commands across the machines registered to one account. Read-only MCP surface: the five exposed tools cannot change anything.",
15
- "version": "1.1.19",
15
+ "version": "1.1.20",
16
16
  "author": {
17
17
  "name": "TwinsEarth"
18
18
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "w2m-fleet",
3
3
  "description": "Drive the same project on online Windows, macOS and Linux machines from one account: read fleet state, dispatch commands and read results. The MCP surface is deliberately read-only.",
4
- "version": "1.1.19",
4
+ "version": "1.1.20",
5
5
  "author": {
6
6
  "name": "TwinsEarth"
7
7
  },
package/CHANGELOG.md CHANGED
@@ -2,6 +2,44 @@
2
2
 
3
3
  All notable changes to this project are documented here.
4
4
 
5
+ ## [1.1.20] — 2026-10-18
6
+
7
+ **The developer declares this release STABLE.** The fleet panel now shows what each machine's owner actually typed into DSH.
8
+
9
+ ### What it does
10
+
11
+ - the host route learns the conversation key from **account material + project directory name**, so the same project on
12
+ two machines is one conversation and nothing has to be configured;
13
+ - a 2-second read-only watcher looks at the newest \`session.v4.jsonl.zstd\` for that project, extracts **only the user's
14
+ messages** (`role: 'user'`/`'prompt'`), and publishes the new ones to the relay;
15
+ - the panel colours them: **red** for this machine's own prompts (marked "来自会话"), **green** for messages typed into the
16
+ fleet box here, **white** for other machines — each machine also gets a colour on its whale avatar derived from its id.
17
+
18
+ ### The rules that are enforced, not promised
19
+
20
+ - **the session is never written** — \`test/session-readonly.test.mjs\` scans the two modules for any file-mutating API and
21
+ fails the gate if one appears;
22
+ - **no injection into DSH** — nothing is appended to a conversation; the panel is a mirror;
23
+ - **no assistant replies, tool calls or results** — only the user's own words;
24
+ - **own broadcasts are not shown as remote** — the echo rule is a tested function, not a convention.
25
+
26
+ ### What the gate caught on the way
27
+
28
+ Adding the panel's newest pieces put four real defects in front of the tests: a state declared in the wrong component
29
+ (both components have a `busy`), an `accountMaterial` getter that named a variable outside its scope, a repair that ate
30
+ the closing braces of the route registration, and lint errors from an unused import plus over-escaped regexes. The gate
31
+ held at RED until each was fixed; this entry exists because it finally went green twice.
32
+
33
+ ### Not verified
34
+
35
+ The end-to-end path (type in DSH on machine A, see it in machine B's panel) has **not been run across two machines yet**.
36
+ The reader, the extractor, the sync rules, the route and the panel are each tested; their composition is not. That is stated
37
+ here rather than implied by a green gate.
38
+
39
+ ### Verified
40
+
41
+ Gate GREEN twice, 15 of 15. 2502 tests / 2488 pass / 0 fail / 14 skip.
42
+
5
43
  ## [1.1.19] — 2026-10-18
6
44
 
7
45
  **The chat panel exists in the browser.**
package/README.md CHANGED
@@ -82,6 +82,28 @@ npm install -g ./twinsearth-w2m-dsh-plugin-1.1.19.tgz
82
82
 
83
83
  Every release carries `SHA256SUMS` for exactly this reason. If a release is missing it, do not install that release.
84
84
 
85
+ ### 6. Beta (prerelease — never on npm)
86
+
87
+ A beta is a **GitHub prerelease**, not an npm version. Nothing about it is resolved by `npm install`, and `latest` never
88
+ points at one. It exists for a developer who has been granted `beta-access` and accepts that it can break.
89
+
90
+ ```bash
91
+ # 1. find the newest prerelease (a beta is marked "Pre-release" on the releases page)
92
+ # https://github.com/TwinsEarth/dsh-windows2macos/releases -> latest entry labelled Pre-release
93
+ # 2. download BOTH files attached to it: twinsearth-w2m-dsh-plugin-<version>.tgz and SHA256SUMS
94
+ sha256sum -c SHA256SUMS # verify before installing, always
95
+ npm install -g ./twinsearth-w2m-dsh-plugin-<version>.tgz
96
+ ```
97
+
98
+ - **Access**: the beta workflow waits on the protected `beta-access` environment, so a reviewer must approve each run
99
+ before the artifact exists at all.
100
+ - **Risk acknowledgment**: install it only if you have read [SECURITY.md](SECURITY.md) and accept that a beta may fail
101
+ where a stable release does not.
102
+ - **Going back**: `npm install -g @twinsearth/w2m-dsh-plugin@latest` returns you to the stable channel.
103
+ - **Why not npm**: there is no `npm publish` line in the beta workflow. A channel cannot leak into the default install if
104
+ the publication cannot happen at all.
105
+
106
+
85
107
  ---
86
108
 
87
109
  ## Quick start
@@ -303,6 +325,25 @@ npm install -g ./twinsearth-w2m-dsh-plugin-1.1.19.tgz
303
325
 
304
326
  每个 release 都带 `SHA256SUMS` 正是为了这一步。若某个 release 缺少它,**不要安装该版本**。
305
327
 
328
+ #### 6. Beta(预发布版 —— 不进 npm)
329
+
330
+ Beta 是 **GitHub prerelease**,不是 npm 版本:`npm install` 永远拿不到它,`latest` 也不会指向它。它是给**已获
331
+ `beta-access` 授权、且接受它可能出问题**的开发者用的。
332
+
333
+ ```bash
334
+ # 1. 在 releases 页面找标着 Pre-release 的最新条目
335
+ # https://github.com/TwinsEarth/dsh-windows2macos/releases
336
+ # 2. 下载该条目的两个文件:twinsearth-w2m-dsh-plugin-<版本>.tgz 与 SHA256SUMS
337
+ sha256sum -c SHA256SUMS # 安装前务必校验
338
+ npm install -g ./twinsearth-w2m-dsh-plugin-<版本>.tgz
339
+ ```
340
+
341
+ - **权限**:beta 流水线挂在受保护的 `beta-access` 环境上,**每次运行都需要审批者批准**,产物才会存在;
342
+ - **风险确认**:安装前请阅读 [SECURITY.md](SECURITY.md),并接受 beta 可能比稳定版更容易失败;
343
+ - **回退**:`npm install -g @twinsearth/w2m-dsh-plugin@latest` 即回到稳定版通道;
344
+ - **为什么不走 npm**:beta 工作流里**没有 `npm publish`** —— 只要发布动作不可能发生,这个通道就漏不进默认安装。
345
+
346
+
306
347
  ### 快速开始
307
348
 
308
349
  ```text
@@ -12,6 +12,6 @@
12
12
 
13
13
  [mcp_servers.w2m-fleet]
14
14
  command = "npx"
15
- args = ["-y", "-p", "@twinsearth/w2m-dsh-plugin@1.1.19", "w2m-mcp"]
15
+ args = ["-y", "-p", "@twinsearth/w2m-dsh-plugin@1.1.20", "w2m-mcp"]
16
16
  startup_timeout_sec = 20
17
17
  tool_timeout_sec = 60