@twinsearth/w2m-dsh-plugin 0.9.1 → 0.9.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
@@ -4,6 +4,46 @@ All notable changes to this project are documented here. The format follows
4
4
  [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project
5
5
  adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [0.9.2] — 2026-10-14
8
+
9
+ **The gate added in v0.8.11 pointed at a file that had never been committed, so it failed on all four CI platforms.**
10
+
11
+ ### What was broken
12
+
13
+ `verify:join` was wired in three places across two releases:
14
+
15
+ | where | when |
16
+ |---|---|
17
+ | `package.json` → `"verify:join": "node scripts/verify-join.mjs"` | v0.8.11 |
18
+ | `.github/workflows/ci.yml` → `- run: npm run verify:join` | (pushed in v0.9.1) |
19
+ | `.github/workflows/release.yml` → `- run: npm run verify:join` | (pushed in v0.9.1) |
20
+
21
+ **`scripts/verify-join.mjs` itself was never in the repository.** It existed only in the working tree that built the tarballs, so every CI platform failed with the least interesting error available:
22
+
23
+ ```
24
+ Error: Cannot find module '/home/runner/work/dsh-windows2macos/dsh-windows2macos/scripts/verify-join.mjs'
25
+ code: 'MODULE_NOT_FOUND'
26
+ ```
27
+
28
+ On `ubuntu-latest/22`, `windows-latest/22`, `windows-latest/20` and `macos-latest/22` alike. A file-existence check would have caught it; a review of the diff would not, because the diff was of files that existed.
29
+
30
+ ### How it was found
31
+
32
+ By reading the CI failure logs rather than the CI summary. The summary said *"The fleet join reaches a token (stub agent, no relay)"* failed — which reads like the check *ran and disagreed*. It had not run at all. The summary named the step; only the log said `MODULE_NOT_FOUND`.
33
+
34
+ The same class of mistake as the four files an earlier push left behind (see v0.9.1), and it is worth naming the shared root cause: **the v0.8.x tarballs were packed from a working tree, while the repository was written to by listing files individually.** A pack packs everything; an explicit list omits what the author forgets. The durable fix is to stop enumerating — but until this release the enumeration is what the tree had.
35
+
36
+ So this release does the one thing v0.9.1 should have: it diffs the working tree against the repository in **both** directions. Exactly one file was present locally and absent remotely, and it was this one.
37
+
38
+ ### Verified
39
+
40
+ - `node scripts/verify-join.mjs` — 16/16 locally, which it always was; the defect was never in the script.
41
+ - The script is now in the repository, which is the only place `verify:join` can run from: `claims.test.mjs` pins
42
+ `FORBIDDEN_IN_RELEASE = ['test', 'scripts', ...]`, so `scripts/` is deliberately **not** in `package.json#files` and
43
+ a published tarball carries no `scripts/` directory by design. `verify:join`, `pack` and `verify` are source-tree
44
+ and CI commands, not consumer commands. An earlier draft of this entry called the absent `scripts/` a packaging
45
+ defect; that was wrong, and the constraint above is why.
46
+
7
47
  ## [0.9.1] — 2026-10-14
8
48
 
9
49
  **A powered-off machine stayed `online` and selectable in every fleet view, because `online` was never derived from contact.**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twinsearth/w2m-dsh-plugin",
3
- "version": "0.9.1",
3
+ "version": "0.9.2",
4
4
  "description": "DSH: Windows2MacOS — drive the same project on online Windows and macOS machines from one DeepSeek account, across networks and regions. P2P hole punching is the default path (relay + shared server as rendezvous, ledger and fallback), with a bundled STUN responder, Tailscale/public-VPS/tunnel shapes, Rabbit relay + per-machine Localside + eight DSH tools (replicate / split), nine aggregate verdicts and signed requests.",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
@@ -180,7 +180,7 @@ const MAX_STAGES = 16;
180
180
  * `package.json` during `scripts/pack.mjs` rather than hand-maintained, and `W2M_PLUGIN_VERSION`
181
181
  * overrides it at runtime for tests and packagers.
182
182
  */
183
- const PLUGIN_VERSION = '0.9.1';
183
+ const PLUGIN_VERSION = '0.9.2';
184
184
 
185
185
  /** How long any single HTTP call may take before it is aborted, in milliseconds. */
186
186
  const DEFAULT_REQUEST_TIMEOUT_MS = 15_000;