@twinsearth/w2m-dsh-plugin 0.31.0 → 0.32.0
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 +46 -0
- package/docs/1.0.0-ACCEPTANCE.md +2 -1
- package/package.json +1 -1
- package/src/plugin/tools.mjs +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,52 @@ 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.32.0] — 2026-10-15
|
|
8
|
+
|
|
9
|
+
**Widening real-machine verification: eight suites tried, none passed, and the cause is a hypothesis.**
|
|
10
|
+
|
|
11
|
+
### What was measured
|
|
12
|
+
|
|
13
|
+
The eight suites dispatched to MacMini all returned **non-zero there while passing here**. The packed code
|
|
14
|
+
that reported this was at times ambiguous, so the run was repeated with a simpler encoding — **one bit per
|
|
15
|
+
suite, exit 0 or not** — and that is unambiguous: **the packed result was `0`, meaning no suite passed.**
|
|
16
|
+
|
|
17
|
+
### What was NOT measured, and is therefore not claimed
|
|
18
|
+
|
|
19
|
+
The likely cause is a **missing `node_modules` on that machine** — the suites import from `src/`, and some of
|
|
20
|
+
those modules reach for a dependency. **That was not established.** It is a hypothesis, and this release
|
|
21
|
+
records it as one. The acceptance document now says so in a row of its own rather than in a footnote.
|
|
22
|
+
|
|
23
|
+
### Five dispatches spent on a channel that carries eight bits
|
|
24
|
+
|
|
25
|
+
The attempts, in order, and what each one actually answered:
|
|
26
|
+
|
|
27
|
+
| Attempt | Question asked | What came back |
|
|
28
|
+
|---|---|---|
|
|
29
|
+
| 1 | four suites, two bits each (status + reason) | 8 bits, but the tail truncated — **unreadable** |
|
|
30
|
+
| 2 | eight suites, three bits each | 24 bits packed into 8 — **arithmetically impossible, and it returned 0** |
|
|
31
|
+
| 3 | re-read the saved outputs | the parse matched nothing, because it guessed Node's summary format |
|
|
32
|
+
| 4 | eight suites, one bit each | **`0` — no suite passed. Unambiguous.** |
|
|
33
|
+
| 5 | print the environment facts | ran to completion, **and stdout is not visible through a dispatch** |
|
|
34
|
+
|
|
35
|
+
**Every one of those was the same mistake**: asking a channel more than it carries, then reading the
|
|
36
|
+
truncation as an answer. `exit code` is one byte, and the correct instinct — already written into
|
|
37
|
+
`machine-test-packet.mjs` and ignored here — is to ask **one bit per suite and nothing else**.
|
|
38
|
+
|
|
39
|
+
`--inline` was added to that script so its loop can be delivered as a `node -e` one-liner, because a real
|
|
40
|
+
machine's allow-list **admits `node -e` and refuses `node scripts/…`**. The generated command is 486 characters
|
|
41
|
+
and self-checks locally. **Its stdout is still invisible through a dispatch**, which the docstring now says
|
|
42
|
+
plainly: the inline form is useful when the packed code is enough, and **when it is not, the answer is one
|
|
43
|
+
command run by a person rather than a cleverer encoding.**
|
|
44
|
+
|
|
45
|
+
### What is unchanged
|
|
46
|
+
|
|
47
|
+
**Two of the three decisions the user made are not in this release.** The authority-level *selector* — the
|
|
48
|
+
request that the level be **chosen rather than typed** — is not built, and the permission gate remains
|
|
49
|
+
**off by default**, which §3.11 of the acceptance draft still records as incompatible with claiming 分权限.
|
|
50
|
+
|
|
51
|
+
**No new tests.** The suites that exist all still pass; what changed is a measurement and a docstring.
|
|
52
|
+
|
|
7
53
|
## [0.31.0] — 2026-10-15
|
|
8
54
|
|
|
9
55
|
**The approval gate got a caller, and a draft acceptance definition for 1.0.0.**
|
package/docs/1.0.0-ACCEPTANCE.md
CHANGED
|
@@ -89,7 +89,8 @@ Recorded here so that absence is a decision rather than an omission:
|
|
|
89
89
|
| **Field authority reaches the memory layer** | `field-authority.mjs` has no production caller; `w2m_memory` does not use it. |
|
|
90
90
|
| **The queue survives a restart** | it is per-plugin-lifetime by design, and is **not** an audit log. |
|
|
91
91
|
| **Any scale claim** | this fleet is 3 usable machines of 5 paired. `ROADMAP.md` refuses to plan v4.11.0+ for exactly this reason, and `fleet-scale.mjs` refuses to extrapolate from five. |
|
|
92
|
-
| **MacMini verification of everything** | four suites were verified on that machine in 0.28.0; the other 69 were not. |
|
|
92
|
+
| **MacMini verification of everything** | four suites were verified on that machine in 0.28.0; the other 69 were not. **Measured in 0.32.0: the eight suites tried there did not pass, and the cause is not yet established.** |
|
|
93
|
+
| **The eight suites tried on MacMini in 0.32.0** | every one of them returned non-zero there while passing here. The likely cause is a missing `node_modules` on that machine, but **that was not measured**, so it is a hypothesis and not a finding. |
|
|
93
94
|
| **`P2P_PUNCH_FAILED`** | cause UNVERIFIED; three hypotheses measured and excluded. |
|
|
94
95
|
|
|
95
96
|
---
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@twinsearth/w2m-dsh-plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.32.0",
|
|
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
|
@@ -195,7 +195,7 @@ const MAX_STAGES = 16;
|
|
|
195
195
|
* `package.json` during `scripts/pack.mjs` rather than hand-maintained, and `W2M_PLUGIN_VERSION`
|
|
196
196
|
* overrides it at runtime for tests and packagers.
|
|
197
197
|
*/
|
|
198
|
-
const PLUGIN_VERSION = '0.
|
|
198
|
+
const PLUGIN_VERSION = '0.32.0';
|
|
199
199
|
|
|
200
200
|
/** How long any single HTTP call may take before it is aborted, in milliseconds. */
|
|
201
201
|
const DEFAULT_REQUEST_TIMEOUT_MS = 15_000;
|