@twinsearth/w2m-dsh-plugin 0.4.7 → 0.4.9

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.4.9] — 2026-10-10
8
+
9
+ ### Fixed
10
+
11
+ * **The Windows supervisor silently dropped every `-AgentArgs` value.** `install-service.ps1` writes
12
+ `agentArgs` into `agent.json`, and `ConvertTo-Json` collapses a single-element array to a string —
13
+ while the supervisor's passthrough only handled an array. So `-AgentArgs '--p2p-mode auto'` was
14
+ accepted, written, and then ignored, and the agent ran on its defaults. Nothing failed; the field
15
+ simply had no effect. It now accepts both shapes (a string is split on whitespace) — the same class
16
+ of bug as the camelCase key mismatch fixed in v0.4.4: **a config field that is read but not
17
+ understood is indistinguishable from one that was never set.**
18
+ * Found while pinning this machine's punch port (`--p2p-port 51820`), which was the first agent
19
+ argument whose absence would have been visible — that is what exposed the dropped-arguments path.
20
+
21
+ ### Notes
22
+
23
+ * No protocol change, and no behavioural change for an `agentArgs` that was already an array (what
24
+ the installer writes for two or more arguments). This makes the documented `-AgentArgs` real.
25
+
26
+ ## [0.4.8] — 2026-10-09
27
+
28
+ ### Added
29
+
30
+ * **The listing badge, with the URL it actually resolves to.** The plugin is listed on
31
+ dsh-plugin.org as `twinsearth/dsh-windows2macos` under Workflow & Automation, marked
32
+ **Verified** — it was auto-discovered through the `dsh-plugin` topic and reviewed by hand
33
+ before this release. The badge links to that page rather than to a guessed slug.
34
+
35
+ ### Notes
36
+
37
+ * The listing's own snapshot was stale (it still showed v0.3.8 and an install command the hub
38
+ derived itself), so a submission issue was filed with the hub's template —
39
+ [dshplugin/dsh-plugin-hub#141](https://github.com/dshplugin/dsh-plugin-hub/issues/141) — which
40
+ is what triggers a re-scan. Nothing about being listed had to be requested: the topic is the
41
+ entry point, and this repository already carried it.
42
+ * The package is on npm as `@twinsearth/w2m-dsh-plugin` (latest 0.4.7 at the time of this
43
+ release). With the package now existing, npm **trusted publishing** can be configured for this
44
+ repository and `release.yml` — after that every future release publishes itself with provenance,
45
+ and no token or one-time code is involved.
46
+
7
47
  ## [0.4.7] — 2026-10-09
8
48
 
9
49
  ### Fixed
package/README.md CHANGED
@@ -6,6 +6,7 @@ English | [中文](#中文说明)
6
6
 
7
7
  [![CI](https://github.com/TwinsEarth/dsh-windows2macos/actions/workflows/ci.yml/badge.svg)](https://github.com/TwinsEarth/dsh-windows2macos/actions/workflows/ci.yml)
8
8
  [![npm](https://img.shields.io/npm/v/@twinsearth/w2m-dsh-plugin?label=npm)](https://www.npmjs.com/package/@twinsearth/w2m-dsh-plugin)
9
+ [![Listed on dsh-plugin.org](https://dsh-plugin.org/badges/listed.svg)](https://dsh-plugin.org/plugins/twinsearth/dsh-windows2macos)
9
10
  [![DSH plugin](https://img.shields.io/badge/DSH-plugin-4c6ef5)](#install)
10
11
  [![dependencies](https://img.shields.io/badge/runtime%20dependencies-0-brightgreen)](#design-notes)
11
12
  [![license](https://img.shields.io/badge/license-MIT-green)](LICENSE)
@@ -128,7 +128,12 @@ const consumed = new Set([
128
128
  ]);
129
129
  const passthrough = [];
130
130
  const fileAgentArgs = file.agentArgs ?? file['agent-args'];
131
+ // BOTH SHAPES, because both happen. The installer writes an array, but `ConvertTo-Json` collapses a
132
+ // single-element array to a string -- and this only handled the array, so `--p2p-mode auto` was
133
+ // silently dropped and the agent ran on its defaults. Silent, because an ignored field is not an
134
+ // error. A string is split on whitespace instead.
131
135
  if (Array.isArray(fileAgentArgs)) passthrough.push(...fileAgentArgs.map(String));
136
+ else if (typeof fileAgentArgs === 'string') passthrough.push(...fileAgentArgs.split(/\s+/).filter(Boolean));
132
137
  if (typeof args['agent-args'] === 'string') passthrough.push(...args['agent-args'].split(/\s+/).filter(Boolean));
133
138
  for (const [key, value] of Object.entries(args)) {
134
139
  if (consumed.has(key)) continue;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twinsearth/w2m-dsh-plugin",
3
- "version": "0.4.7",
3
+ "version": "0.4.9",
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",
@@ -110,7 +110,7 @@ const MAX_STAGES = 16;
110
110
  * `package.json` during `scripts/pack.mjs` rather than hand-maintained, and `W2M_PLUGIN_VERSION`
111
111
  * overrides it at runtime for tests and packagers.
112
112
  */
113
- const PLUGIN_VERSION = '0.4.7';
113
+ const PLUGIN_VERSION = '0.4.9';
114
114
 
115
115
  /** How long any single HTTP call may take before it is aborted, in milliseconds. */
116
116
  const DEFAULT_REQUEST_TIMEOUT_MS = 15_000;