@twinsearth/w2m-dsh-plugin 0.4.8 → 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,25 @@ 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
|
+
|
|
7
26
|
## [0.4.8] — 2026-10-09
|
|
8
27
|
|
|
9
28
|
### Added
|
|
@@ -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.
|
|
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",
|
package/src/plugin/tools.mjs
CHANGED
|
@@ -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.
|
|
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;
|