@twinsearth/w2m-dsh-plugin 0.8.2 → 0.8.3

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,67 @@ 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.8.3] — 2026-10-14
8
+
9
+ **The last wire, and the reason it was never there.**
10
+
11
+ ### `autoStartAgent` was dead code
12
+
13
+ The option existed, was documented, and **threw on its first call**. `startLocalStack` built its
14
+ `createAgent` arguments as `projectDir` (the option is `project`), omitted `identity` (which is
15
+ required), and passed a `pairingCode` that `createAgent` does not accept.
16
+
17
+ Verified rather than inferred — calling `createAgent` with that exact shape:
18
+
19
+ ```
20
+ createAgent THREW: createAgent: project is required
21
+ ```
22
+
23
+ **So the code path that was supposed to bring an agent up had never run.** That is why the
24
+ fleet-join wire appeared to be missing: the place it was meant to live could not be reached at all.
25
+ An option that exists, is documented, and cannot execute is worse than one that is absent — it
26
+ reads as a feature.
27
+
28
+ ### Two more things wrong with the shape
29
+
30
+ * **It created a local relay unconditionally.** For a machine joining a shared fleet that is the
31
+ opposite of what is wanted: the machine must connect to the relay that already exists, not mint
32
+ another one — and with `rabbitUrl` pointing at a remote host it would have tried to bind a relay
33
+ on that hostname. It now stands up a local relay **only when the configured URL actually is
34
+ local**, and otherwise logs that it is joining the relay at the given address.
35
+ * **Nothing paired the agent.** Even a started agent could fetch no offers, which looks identical to
36
+ a fleet with no work.
37
+
38
+ ### Now
39
+
40
+ `startLocalStack` passes the option names `createAgent` actually documents, loads the identity from
41
+ the **same file the CLI uses** — so one machine has one identity whether the agent runs in-process
42
+ or as its own process, rather than each minting a keypair and overwriting the other's announcement
43
+ under a shared `machine_id` (the v0.6.2 defect, in a new place) — and **pairs by the account fleet
44
+ key**, falling back to a pairing code.
45
+
46
+ Pairing is attempted **before** `agent.start()`, and a failure is **named at warn level** rather than
47
+ swallowed: an agent that failed to pair runs and does nothing, which is indistinguishable from a
48
+ quiet fleet.
49
+
50
+ ### Config
51
+
52
+ `fleetKey` is read from the config layer or `W2M_FLEET_KEY`. The key must be **handed down** rather
53
+ than computed where it is used, because a standalone agent cannot read the signed-in account — which
54
+ is why it comes from the host.
55
+
56
+ ### Verified
57
+
58
+ **132 cases** across the tools, apply and fleet-join suites. `tools.mjs` loads. The 12 agent-suite
59
+ failures remain pre-existing and environmental, measured against an untouched clone of the same
60
+ commit.
61
+
62
+ ### ⚠️ Not yet proven on real hardware
63
+
64
+ The wiring is fixed and the mechanism was verified end to end in v0.8.2, but **no machine has yet
65
+ joined a fleet through this path in a live run**. That is the next check, and it needs a machine
66
+ that is not already paired.
67
+
7
68
  ## [0.8.2] — 2026-10-14
8
69
 
9
70
  **The client half of the auto-join.** v0.8.1 landed the credential and the relay's acceptance of
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twinsearth/w2m-dsh-plugin",
3
- "version": "0.8.2",
3
+ "version": "0.8.3",
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",