@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 +61 -0
- package/package.json +1 -1
- package/src/plugin/tools.mjs +4691 -4622
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.
|
|
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",
|