@twinsearth/w2m-dsh-plugin 0.38.0 → 0.40.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 +114 -0
- package/docs/1.0.0-ACCEPTANCE.md +100 -24
- package/package.json +6 -4
- package/src/plugin/tools.mjs +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,120 @@ 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.40.0] — 2026-10-15
|
|
8
|
+
|
|
9
|
+
**The acceptance document, converged — and bound to the pre-flight so it cannot drift.**
|
|
10
|
+
|
|
11
|
+
### Three statuses, decided by a checkable rule
|
|
12
|
+
|
|
13
|
+
Every criterion now carries one of three values, and **the rule decides it rather than opinion**:
|
|
14
|
+
|
|
15
|
+
| Status | Test |
|
|
16
|
+
|---|---|
|
|
17
|
+
| **ENFORCED** | delete the thing and run `scripts/preflight.mjs`; it goes red |
|
|
18
|
+
| **MEASURED** | something checks and prints, and the run stays green |
|
|
19
|
+
| **UNVERIFIED** | nothing checks it, or the check's own documentation says it cannot see this |
|
|
20
|
+
|
|
21
|
+
**MEASURED is not ENFORCED, and §4 says so with the receipt:** the reachability classifier named **465
|
|
22
|
+
exports** and could not tell a defect from a library, so a gate built on it would have been disabled within a
|
|
23
|
+
week. **A check that cannot fail is a report.**
|
|
24
|
+
|
|
25
|
+
**17 criteria are ENFORCED**, including §1.5 — the orphan gate added in 0.39.0. **Six are MEASURED**, of which
|
|
26
|
+
two are the ones worth naming: **§1.6, because the classifier cannot classify**, and **§3.10, because
|
|
27
|
+
`field-authority` still has no production caller.** **Seven are UNVERIFIED**, and `4.7` is the widest of them —
|
|
28
|
+
**the plugin this machine runs is thirty versions behind the source under test**, so every source-level
|
|
29
|
+
conclusion about its runtime is void.
|
|
30
|
+
|
|
31
|
+
### The corrections, kept rather than tidied away
|
|
32
|
+
|
|
33
|
+
Seven claims were written down in this span, acted on, and later found wrong. **Four of the seven were a claim
|
|
34
|
+
about wiring or delivery that a single check disproved:**
|
|
35
|
+
|
|
36
|
+
* *"v4.8.0 shipped"* — the block and lineage are real; **the authority-driven half was never built.**
|
|
37
|
+
* *"the already-shipped rate limiter as its front door"* — **never built.**
|
|
38
|
+
* *"**the connection now exists**"* (CHANGELOG 0.29.0, of `field-authority`) — **it exists inside that module
|
|
39
|
+
and nowhere else.**
|
|
40
|
+
* *"v4.10.0 shipped in 0.11.0"* — the falsifying tests **are** asserted, and **nothing routed a question to
|
|
41
|
+
it** until 0.37.0.
|
|
42
|
+
|
|
43
|
+
**Two of the seven were corrected by the same instrument** — the reachability classifier, which was built
|
|
44
|
+
*because* the first two had happened, and which then found two more. **That is the only argument for a check
|
|
45
|
+
this project accepts: it found something the previous rounds had missed.**
|
|
46
|
+
|
|
47
|
+
### The document is now checked, because a parallel list is a second source of truth
|
|
48
|
+
|
|
49
|
+
`test/acceptance-doc.test.mjs` reads the pre-flight's own `DECLARED_CHECKS` and fails if the document names a
|
|
50
|
+
gate that does not exist, if any of the three statuses stops being defined, or if the corrections section is
|
|
51
|
+
emptied. **A criterion cannot quietly become unenforced while the file keeps claiming otherwise.**
|
|
52
|
+
|
|
53
|
+
### Three errors of mine, all in the test rather than the subject
|
|
54
|
+
|
|
55
|
+
* I demanded eight **exact** check names; the document sensibly uses short forms.
|
|
56
|
+
* I matched `gate` inside `approval-gate.mjs` and flagged **a filename as a gate**.
|
|
57
|
+
* I then demanded the document name `lint` and `mojibake` — **gates on the code's tidiness, not criteria for
|
|
58
|
+
what 1.0.0 must prove.** The document was right not to list them. **A test asserting its own assumption is
|
|
59
|
+
indistinguishable from a test asserting a property, until it fails.**
|
|
60
|
+
|
|
61
|
+
**6 new tests, 0 failures.**
|
|
62
|
+
|
|
63
|
+
## [0.39.0] — 2026-10-15
|
|
64
|
+
|
|
65
|
+
**The orphan gate: a module nothing reaches now fails the pre-flight unless a reason is written down.**
|
|
66
|
+
|
|
67
|
+
### What checking the remaining loops found — and it corrects a claim I made
|
|
68
|
+
|
|
69
|
+
0.36.0's classifier reported 86 closed loops and **could not say which were defects**, so it printed and
|
|
70
|
+
exited 0. This sorts them, and the result is uncomfortable and precise:
|
|
71
|
+
|
|
72
|
+
**Eight orphan modules, 72 exports, every one of them written in this span** — and **two were described as
|
|
73
|
+
delivered** while nothing ran them.
|
|
74
|
+
|
|
75
|
+
`approval-gate.mjs` **is** wired: `tools.mjs` imports it, constructs it, and calls `mayRaise` on the raise path.
|
|
76
|
+
**`field-authority.mjs` is not.** Reading the tree rather than my own changelog:
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
grep 'field-authority' src/ → comments and documentation only. Nothing imports it.
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**0.29.0 said "the connection now exists". It exists inside that module and nowhere else.** That is now
|
|
83
|
+
recorded as a correction in `scripts/accepted-orphans.mjs`, in the entry that keeps it on the list.
|
|
84
|
+
|
|
85
|
+
### A dead branch, found by the test that could not be written
|
|
86
|
+
|
|
87
|
+
I added **second-order reachability** so that a module reached *through* another could be called a library
|
|
88
|
+
rather than an orphan. The test for it failed, and the reason is arithmetic:
|
|
89
|
+
|
|
90
|
+
> a row is `closed-loop` **only when no source file imports anything from it at all** — which is exactly what
|
|
91
|
+
> the `sibling-imported` class already excludes. **So there is never a first-order importer for a second-order
|
|
92
|
+
> walk to start from**, and the library case **cannot arise**.
|
|
93
|
+
|
|
94
|
+
Measured: **72 orphan, 0 library, 14 cli** — and **the zero was a tautology, not a finding.** The library
|
|
95
|
+
bucket is removed rather than printed as a permanent zero, and `LOOP_KIND.LIBRARY_UNREACHABLE` records *why*
|
|
96
|
+
so the next reader does not re-derive the idea. **Being a library is a claim about intent, and the import
|
|
97
|
+
graph cannot carry it — so the claim is made where it can be checked.**
|
|
98
|
+
|
|
99
|
+
### `scripts/accepted-orphans.mjs`, and why a list rather than a rule
|
|
100
|
+
|
|
101
|
+
Each accepted orphan names a **reason**, and **what would remove it**. `library` is a design choice;
|
|
102
|
+
`interface-unrouted` **is the defect**, kept only because removing it needs a decision about *where* it should
|
|
103
|
+
be reached from.
|
|
104
|
+
|
|
105
|
+
The gate is `checkOrphans` in the pre-flight: **a closed loop is red unless its file is on that list.** The
|
|
106
|
+
eight known ones are decisions somebody made; **a ninth fails the run and forces the same conversation.**
|
|
107
|
+
A stale entry — one that names a file no longer an orphan — also fails, so the list cannot quietly claim a
|
|
108
|
+
problem that is gone.
|
|
109
|
+
|
|
110
|
+
Four of the eight are marked `interface-unrouted` and said so plainly: `health` (the sensor the user asked for
|
|
111
|
+
by name), `log-bounds` (the answer to the 40× log growth, shipped in 0.12.0 and called by nothing), `storage`,
|
|
112
|
+
and `field-authority`.
|
|
113
|
+
|
|
114
|
+
### My own error, the same one as two rounds ago
|
|
115
|
+
|
|
116
|
+
`await` in a **non-async callback**, caught by `node --check` — **the second time in this span.** The fix is
|
|
117
|
+
the same both times: import it up front rather than reaching for it where it is not allowed.
|
|
118
|
+
|
|
119
|
+
**13 new tests, 0 failures.**
|
|
120
|
+
|
|
7
121
|
## [0.38.0] — 2026-10-15
|
|
8
122
|
|
|
9
123
|
**A seven-phase council run on MacMini — real-machine evidence for the tool that had never touched one.**
|
package/docs/1.0.0-ACCEPTANCE.md
CHANGED
|
@@ -3,11 +3,20 @@
|
|
|
3
3
|
**Status: DRAFT, and deliberately incomplete.** Nothing here is an announcement that 1.0.0 is close. This file
|
|
4
4
|
exists because the goal names three properties — **分模块 / 分层级 / 分权限** — and a version number means
|
|
5
5
|
nothing without a definition that can fail. It is written to be argued with, and every row says **where the
|
|
6
|
-
claim is checked and whether that check
|
|
6
|
+
claim is checked and whether that check can actually fail**.
|
|
7
7
|
|
|
8
8
|
The rule applied throughout: **a criterion that nothing measures is not a criterion.** Where a check exists
|
|
9
9
|
but has no caller, that is stated in its own column rather than hidden behind a tick.
|
|
10
10
|
|
|
11
|
+
**Every criterion carries one of three statuses, decided by a rule rather than by opinion** — **ENFORCED**
|
|
12
|
+
(the pre-flight goes red without it), **MEASURED** (something checks and prints, and the run stays green), or
|
|
13
|
+
**UNVERIFIED**. **MEASURED is not ENFORCED**, and §4 says how to tell them apart in one command.
|
|
14
|
+
|
|
15
|
+
**The statuses in §4 are themselves checked.** `test/acceptance-doc.test.mjs` reads the pre-flight's own
|
|
16
|
+
`DECLARED_CHECKS` list and fails if this document names a check that does not exist — so a criterion cannot
|
|
17
|
+
silently become unenforced while this file keeps claiming otherwise. **A document that restates what a check
|
|
18
|
+
does is a second source of truth unless something binds the two together.**
|
|
19
|
+
|
|
11
20
|
---
|
|
12
21
|
|
|
13
22
|
## 1. 分模块 — modules with a declared identity
|
|
@@ -150,33 +159,100 @@ decision about who this release is for, not a defect to fix.
|
|
|
150
159
|
|
|
151
160
|
---
|
|
152
161
|
|
|
153
|
-
## 4.
|
|
162
|
+
## 4. The status of every criterion, in three values
|
|
163
|
+
|
|
164
|
+
**One rule decides the status, and it is checkable rather than a matter of opinion:**
|
|
165
|
+
|
|
166
|
+
| Status | What it means | How to tell |
|
|
167
|
+
|---|---|---|
|
|
168
|
+
| **ENFORCED** | the pre-flight **fails** if this stops being true | delete the thing and run `scripts/preflight.mjs`; it goes red |
|
|
169
|
+
| **MEASURED** | something checks it and **prints**, but the run stays green | the check exists and exits 0 either way |
|
|
170
|
+
| **UNVERIFIED** | nothing checks it, or the check cannot see this | there is no check, or its own documentation says it cannot |
|
|
171
|
+
|
|
172
|
+
**MEASURED is not ENFORCED**, and this project has already paid for confusing them: the reachability classifier
|
|
173
|
+
named **465 exports** and could not say which were defects, so a gate built on it would have been turned off
|
|
174
|
+
within a week. **A check that cannot fail is a report.**
|
|
154
175
|
|
|
155
|
-
|
|
176
|
+
### ENFORCED — the pre-flight goes red without it
|
|
156
177
|
|
|
157
|
-
|
|
|
158
|
-
|
|
159
|
-
|
|
|
160
|
-
|
|
|
161
|
-
|
|
|
162
|
-
|
|
|
163
|
-
| **
|
|
164
|
-
|
|
|
165
|
-
|
|
|
166
|
-
|
|
|
178
|
+
| # | Criterion | The gate |
|
|
179
|
+
|---|---|---|
|
|
180
|
+
| 1.1 | every module belongs to exactly one declared layer | `layer-check` |
|
|
181
|
+
| 1.2 | every dependency edge is declared, and every declared edge is used | `layer-check` |
|
|
182
|
+
| 1.3 | every suite on disk is named by a script | `test wiring` |
|
|
183
|
+
| 1.4 | every document's claim about the artifact matches the artifact | `claims`, 48 claims |
|
|
184
|
+
| **1.5** | **no orphan module without a written reason** | **`reachable or accepted`** |
|
|
185
|
+
| 2.1–2.4 | ranked layers, an allow-list of edges, no upward edge | `layer-check` |
|
|
186
|
+
| 3.2 | every declared capability is reachable by some band | `auditCapabilities`, asserted |
|
|
187
|
+
| 3.4 | the dispatch path consults the gate | `tools.test.mjs`, end to end |
|
|
188
|
+
| 3.5 | an undeclared capability is refused | `permission.test.mjs` |
|
|
189
|
+
| 3.6 | escalation is exactly one band | asserted across the whole table |
|
|
190
|
+
| 3.7 | nothing destructive auto-settles | `mayAutoSettle`, asserted |
|
|
191
|
+
| 3.9 | the queue's front door meters raising only | `approval-gate.test.mjs` |
|
|
192
|
+
| 3.12 | a level is chosen by name, never typed | `authority-choice.test.mjs` |
|
|
193
|
+
| 3.13 | a misconfigured level is reported | `w2m_status.actor_authority` |
|
|
194
|
+
| 5.1 | the packed tarball registers all eleven tools | `packed tarball` |
|
|
195
|
+
| 5.2 | the CHANGELOG is newest-first with a title above the newest entry | `CHANGELOG shape` |
|
|
196
|
+
|
|
197
|
+
### MEASURED — checked, printed, and able to fail silently
|
|
198
|
+
|
|
199
|
+
| # | Criterion | What is actually measured |
|
|
200
|
+
|---|---|---|
|
|
201
|
+
| 1.6 | **reachability itself** | 72 orphan, 14 cli. **The classifier cannot tell a defect from a library**, so the *decision* is enforced (§1.5) while the *classification* is not |
|
|
202
|
+
| 3.1 | capabilities declared with a cost | the table is read by `permission.mjs`; a new capability with no caller would still be listed |
|
|
203
|
+
| 3.10 | **field-level memory acceptance driven by the authority model** | the mechanism is asserted; **it has no production caller** and is on the accepted-orphan list as `interface-unrouted` |
|
|
204
|
+
| 3.11 | the gate is on by default | `requireAuthorityLevel` makes it enforceable **per machine**; the default is still off |
|
|
205
|
+
| 4.1 | four suites run on MacMini | verified once, in 0.28.0, with that machine's exit code. **Nothing re-runs them** |
|
|
206
|
+
|
|
207
|
+
### UNVERIFIED — nothing checks this, and saying so is the point
|
|
208
|
+
|
|
209
|
+
| # | Criterion | Why it is unverified |
|
|
210
|
+
|---|---|---|
|
|
211
|
+
| 4.2 | the other 69 suites on MacMini | eight were tried in 0.32.0 and failed; **the cause is a hypothesis, not a finding** |
|
|
212
|
+
| 4.3 | `w2m_council` as a *tool* | its **modules** ran on MacMini (7 phases, dissent, recount, exit 0); the **tool registration path** has only ever run here |
|
|
213
|
+
| 4.4 | `P2P_PUNCH_FAILED` | cause unverified; **three hypotheses measured and excluded** (BLAKE2s, the wider primitive set, version skew) |
|
|
214
|
+
| 4.5 | the queue survives a restart | it does not, by design — and it is **not** an audit log |
|
|
215
|
+
| 4.6 | any scale claim | 3 usable machines of 5. `fleet-scale.mjs` **refuses to extrapolate** from five, and `ROADMAP.md` refuses to plan v4.11.0+ for the same reason |
|
|
216
|
+
| 4.7 | the plugin this machine runs is current | **installed 0.9.5 against 0.39.0 of source — thirty versions apart.** Every source-level conclusion about this machine's runtime is void |
|
|
167
217
|
|
|
168
218
|
---
|
|
169
219
|
|
|
170
|
-
## 5.
|
|
220
|
+
## 5. Claims this work corrected, kept rather than tidied away
|
|
221
|
+
|
|
222
|
+
A document that only shows its final state hides how it got there, and **every entry below was a statement that
|
|
223
|
+
was written down, acted on, and later found wrong.** They are kept because the pattern is the finding: four of
|
|
224
|
+
the seven were **a claim about wiring or delivery that a single check disproved.**
|
|
171
225
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
226
|
+
| Claim | Where it was made | What checking found |
|
|
227
|
+
|---|---|---|
|
|
228
|
+
| "v4.8.0 shipped, suite verified on MacMini" | `ROADMAP.md` | the block and lineage are real; **"per-field acceptance driven by the authority model" was never built** — `blocks.mjs` did not import `authority.mjs` at all |
|
|
229
|
+
| "the already-shipped rate limiter as its front door" | `ROADMAP.md`, v4.9.0 | **never built** — `approval-index.mjs` imports `authority.mjs` and nothing else |
|
|
230
|
+
| "**the connection now exists**" | CHANGELOG 0.29.0, of `field-authority` | **it exists inside that module and nowhere else.** Nothing imports it; it is an accepted orphan today |
|
|
231
|
+
| "v4.10.0 shipped in 0.11.0" | `ROADMAP.md` | the three falsifying tests **are** asserted — and **nothing routed a question to it.** Fixed in 0.37.0 by `w2m_council` |
|
|
232
|
+
| "zero is the all-clear" | `machine-test-packet.mjs` | false for every count but one; **zero means every file was ABSENT** — a total failure read as a clean run |
|
|
233
|
+
| "the eight suites failed on MacMini because of `node_modules`" | CHANGELOG 0.32.0 | recorded as a hypothesis then, **and measured in 0.38.0**: `council.mjs` runs there because it needs nothing, so the suites fail on **what their fixtures reach for** |
|
|
234
|
+
| "`log-bounds` fixes the 40× log growth" | CHANGELOG 0.12.0 | the module is correct and tested; **nothing calls it.** It is on the accepted-orphan list as `interface-unrouted` |
|
|
235
|
+
|
|
236
|
+
**Two of these seven were corrected by the same instrument** — the reachability classifier, which was built
|
|
237
|
+
*because* the first two had happened. **That is the only argument for a check that this project accepts: it
|
|
238
|
+
found something the previous three rounds had missed.**
|
|
239
|
+
|
|
240
|
+
---
|
|
179
241
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
242
|
+
## 6. What would make this file finished
|
|
243
|
+
|
|
244
|
+
1. **Flip §3.11's default.** `requireAuthorityLevel` exists and is tested; whether 1.0.0 ships with it on is a
|
|
245
|
+
decision about who the release is for. **A permission system that is off is one that has never run.**
|
|
246
|
+
2. **Wire the four `interface-unrouted` orphans**, or delete them. `health` is the sensor the user asked for by
|
|
247
|
+
name; `log-bounds` is the answer to a measured 40× growth; `storage` holds the undelatable tiers;
|
|
248
|
+
`field-authority` is the half of v4.8.0 that was claimed. **Each is on the list with what would remove it.**
|
|
249
|
+
3. **Re-run the 69 unverified suites on MacMini**, which needs `node_modules` there — an environment change
|
|
250
|
+
nobody has made.
|
|
251
|
+
4. **Promote every MEASURED row to ENFORCED**, so this document stops being a parallel list that can drift from
|
|
252
|
+
the pre-flight. **A document that restates what a check does is a second source of truth, and this project
|
|
253
|
+
has already paid for one of those.**
|
|
254
|
+
|
|
255
|
+
**This file is honest about being unfinished, which is the only useful thing a 1.0.0 definition can be before
|
|
256
|
+
1.0.0 exists.** The question it was written in answer to — *write the acceptance definition, or keep advancing
|
|
257
|
+
the roadmap?* — was asked in round 12 and answered by writing it. **Whether to act on items 1–4 is a decision
|
|
258
|
+
the person who owns this repository still has to make.**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@twinsearth/w2m-dsh-plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.40.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",
|
|
@@ -113,13 +113,13 @@
|
|
|
113
113
|
}
|
|
114
114
|
},
|
|
115
115
|
"scripts": {
|
|
116
|
-
"test": "node --test --test-force-exit test/relay.test.mjs test/broadcast.test.mjs test/agent.test.mjs test/authority.test.mjs test/blocks.test.mjs test/approval-index.test.mjs test/fleet-sync.test.mjs test/health.test.mjs test/storage.test.mjs test/exit-channel.test.mjs test/council.test.mjs test/council-session.test.mjs test/log-bounds.test.mjs test/test-report.test.mjs test/fleet-scale.test.mjs test/fleet-state.test.mjs test/crypto-blake2s.test.mjs test/installed-version.test.mjs test/permission.test.mjs test/machine-test-packet.test.mjs test/field-authority.test.mjs test/approval-gate.test.mjs test/authority-choice.test.mjs test/reachability-check.test.mjs test/reachability-classify.test.mjs test/layer-model.test.mjs test/memory.test.mjs test/tools.test.mjs test/claims.test.mjs test/fleet-target.test.mjs test/client-bundle.test.mjs test/schedule.test.mjs test/auto-update.test.mjs test/update-source.test.mjs test/update-install.test.mjs test/update-wiring.test.mjs test/signing.test.mjs test/stress.test.mjs test/shared-config.test.mjs test/metrics.test.mjs test/metrics-route.test.mjs test/tool-cards.test.mjs test/p2p-stun.test.mjs test/p2p-transport.test.mjs test/p2p-signaling.test.mjs test/p2p-node.test.mjs test/p2p-transport-fields.test.mjs test/p2p-plugin.test.mjs test/p2p-crypto.test.mjs test/stun-server.test.mjs test/loader-entry.test.mjs test/mdns-wire.test.mjs test/mdns-discover.test.mjs test/chatops-approval.test.mjs test/chatops-policy.test.mjs test/chatops-file-safety.test.mjs test/chatops-outbound-queue.test.mjs test/chatops-commands.test.mjs test/chatops-bridge.test.mjs test/chatops-config-route.test.mjs test/chatops-apply.test.mjs test/chatops-ilink-contract.test.mjs test/chatops-fleet.test.mjs test/chatops-account.test.mjs test/chatops-auth.test.mjs test/chatops-fleet-scope.test.mjs test/chatops-handoff.test.mjs test/chatops-fleet-wiring.test.mjs test/chatops-fleet-live.test.mjs test/chatops-takeover.test.mjs test/chatops-device-signing.test.mjs test/chatops-relay-verify.test.mjs test/chatops-durability.test.mjs test/chatops-run-command.test.mjs test/secrets-guard.test.mjs test/chatops-ilink-fleet-bridge.test.mjs test/chatops-fleet-join.test.mjs",
|
|
116
|
+
"test": "node --test --test-force-exit test/relay.test.mjs test/broadcast.test.mjs test/agent.test.mjs test/authority.test.mjs test/blocks.test.mjs test/approval-index.test.mjs test/fleet-sync.test.mjs test/health.test.mjs test/storage.test.mjs test/exit-channel.test.mjs test/council.test.mjs test/council-session.test.mjs test/log-bounds.test.mjs test/test-report.test.mjs test/fleet-scale.test.mjs test/fleet-state.test.mjs test/crypto-blake2s.test.mjs test/installed-version.test.mjs test/permission.test.mjs test/machine-test-packet.test.mjs test/field-authority.test.mjs test/approval-gate.test.mjs test/authority-choice.test.mjs test/reachability-check.test.mjs test/reachability-classify.test.mjs test/accepted-orphans.test.mjs test/acceptance-doc.test.mjs test/layer-model.test.mjs test/memory.test.mjs test/tools.test.mjs test/claims.test.mjs test/fleet-target.test.mjs test/client-bundle.test.mjs test/schedule.test.mjs test/auto-update.test.mjs test/update-source.test.mjs test/update-install.test.mjs test/update-wiring.test.mjs test/signing.test.mjs test/stress.test.mjs test/shared-config.test.mjs test/metrics.test.mjs test/metrics-route.test.mjs test/tool-cards.test.mjs test/p2p-stun.test.mjs test/p2p-transport.test.mjs test/p2p-signaling.test.mjs test/p2p-node.test.mjs test/p2p-transport-fields.test.mjs test/p2p-plugin.test.mjs test/p2p-crypto.test.mjs test/stun-server.test.mjs test/loader-entry.test.mjs test/mdns-wire.test.mjs test/mdns-discover.test.mjs test/chatops-approval.test.mjs test/chatops-policy.test.mjs test/chatops-file-safety.test.mjs test/chatops-outbound-queue.test.mjs test/chatops-commands.test.mjs test/chatops-bridge.test.mjs test/chatops-config-route.test.mjs test/chatops-apply.test.mjs test/chatops-ilink-contract.test.mjs test/chatops-fleet.test.mjs test/chatops-account.test.mjs test/chatops-auth.test.mjs test/chatops-fleet-scope.test.mjs test/chatops-handoff.test.mjs test/chatops-fleet-wiring.test.mjs test/chatops-fleet-live.test.mjs test/chatops-takeover.test.mjs test/chatops-device-signing.test.mjs test/chatops-relay-verify.test.mjs test/chatops-durability.test.mjs test/chatops-run-command.test.mjs test/secrets-guard.test.mjs test/chatops-ilink-fleet-bridge.test.mjs test/chatops-fleet-join.test.mjs",
|
|
117
117
|
"test:e2e": "node --test --test-force-exit test/e2e.test.mjs test/crossnetwork.test.mjs test/signing-e2e.test.mjs test/outbound-only.test.mjs test/recovery.test.mjs test/pipeline-e2e.test.mjs test/p2p-agent.test.mjs",
|
|
118
118
|
"test:relay": "node --test --test-force-exit test/relay.test.mjs",
|
|
119
119
|
"test:agent": "node --test --test-force-exit test/agent.test.mjs test/memory.test.mjs",
|
|
120
120
|
"test:tools": "node --test --test-force-exit test/tools.test.mjs",
|
|
121
121
|
"test:crossnetwork": "node --test --test-force-exit test/crossnetwork.test.mjs",
|
|
122
|
-
"test:all": "node --test --test-force-exit test/relay.test.mjs test/broadcast.test.mjs test/agent.test.mjs test/authority.test.mjs test/blocks.test.mjs test/approval-index.test.mjs test/fleet-sync.test.mjs test/health.test.mjs test/storage.test.mjs test/exit-channel.test.mjs test/council.test.mjs test/council-session.test.mjs test/log-bounds.test.mjs test/test-report.test.mjs test/fleet-scale.test.mjs test/fleet-state.test.mjs test/crypto-blake2s.test.mjs test/installed-version.test.mjs test/permission.test.mjs test/machine-test-packet.test.mjs test/field-authority.test.mjs test/approval-gate.test.mjs test/authority-choice.test.mjs test/reachability-check.test.mjs test/reachability-classify.test.mjs test/layer-model.test.mjs test/memory.test.mjs test/tools.test.mjs test/claims.test.mjs test/fleet-target.test.mjs test/client-bundle.test.mjs test/schedule.test.mjs test/auto-update.test.mjs test/update-source.test.mjs test/update-install.test.mjs test/update-wiring.test.mjs test/signing.test.mjs test/stress.test.mjs test/e2e.test.mjs test/crossnetwork.test.mjs test/signing-e2e.test.mjs test/outbound-only.test.mjs test/recovery.test.mjs test/pipeline-e2e.test.mjs test/shared-config.test.mjs test/metrics.test.mjs test/metrics-route.test.mjs test/tool-cards.test.mjs test/p2p-stun.test.mjs test/p2p-transport.test.mjs test/p2p-signaling.test.mjs test/p2p-node.test.mjs test/p2p-transport-fields.test.mjs test/p2p-plugin.test.mjs test/p2p-agent.test.mjs test/stun-server.test.mjs test/loader-entry.test.mjs test/mdns-wire.test.mjs test/mdns-discover.test.mjs test/p2p-crypto.test.mjs test/chatops-approval.test.mjs test/chatops-policy.test.mjs test/chatops-file-safety.test.mjs test/chatops-outbound-queue.test.mjs test/chatops-commands.test.mjs test/chatops-bridge.test.mjs test/chatops-config-route.test.mjs test/chatops-apply.test.mjs test/chatops-ilink-contract.test.mjs test/chatops-fleet.test.mjs test/chatops-account.test.mjs test/chatops-auth.test.mjs test/chatops-fleet-scope.test.mjs test/chatops-handoff.test.mjs test/chatops-fleet-wiring.test.mjs test/chatops-fleet-live.test.mjs test/chatops-takeover.test.mjs test/chatops-device-signing.test.mjs test/chatops-relay-verify.test.mjs test/chatops-durability.test.mjs test/chatops-run-command.test.mjs test/secrets-guard.test.mjs test/chatops-ilink-fleet-bridge.test.mjs test/chatops-fleet-join.test.mjs",
|
|
122
|
+
"test:all": "node --test --test-force-exit test/relay.test.mjs test/broadcast.test.mjs test/agent.test.mjs test/authority.test.mjs test/blocks.test.mjs test/approval-index.test.mjs test/fleet-sync.test.mjs test/health.test.mjs test/storage.test.mjs test/exit-channel.test.mjs test/council.test.mjs test/council-session.test.mjs test/log-bounds.test.mjs test/test-report.test.mjs test/fleet-scale.test.mjs test/fleet-state.test.mjs test/crypto-blake2s.test.mjs test/installed-version.test.mjs test/permission.test.mjs test/machine-test-packet.test.mjs test/field-authority.test.mjs test/approval-gate.test.mjs test/authority-choice.test.mjs test/reachability-check.test.mjs test/reachability-classify.test.mjs test/accepted-orphans.test.mjs test/acceptance-doc.test.mjs test/layer-model.test.mjs test/memory.test.mjs test/tools.test.mjs test/claims.test.mjs test/fleet-target.test.mjs test/client-bundle.test.mjs test/schedule.test.mjs test/auto-update.test.mjs test/update-source.test.mjs test/update-install.test.mjs test/update-wiring.test.mjs test/signing.test.mjs test/stress.test.mjs test/e2e.test.mjs test/crossnetwork.test.mjs test/signing-e2e.test.mjs test/outbound-only.test.mjs test/recovery.test.mjs test/pipeline-e2e.test.mjs test/shared-config.test.mjs test/metrics.test.mjs test/metrics-route.test.mjs test/tool-cards.test.mjs test/p2p-stun.test.mjs test/p2p-transport.test.mjs test/p2p-signaling.test.mjs test/p2p-node.test.mjs test/p2p-transport-fields.test.mjs test/p2p-plugin.test.mjs test/p2p-agent.test.mjs test/stun-server.test.mjs test/loader-entry.test.mjs test/mdns-wire.test.mjs test/mdns-discover.test.mjs test/p2p-crypto.test.mjs test/chatops-approval.test.mjs test/chatops-policy.test.mjs test/chatops-file-safety.test.mjs test/chatops-outbound-queue.test.mjs test/chatops-commands.test.mjs test/chatops-bridge.test.mjs test/chatops-config-route.test.mjs test/chatops-apply.test.mjs test/chatops-ilink-contract.test.mjs test/chatops-fleet.test.mjs test/chatops-account.test.mjs test/chatops-auth.test.mjs test/chatops-fleet-scope.test.mjs test/chatops-handoff.test.mjs test/chatops-fleet-wiring.test.mjs test/chatops-fleet-live.test.mjs test/chatops-takeover.test.mjs test/chatops-device-signing.test.mjs test/chatops-relay-verify.test.mjs test/chatops-durability.test.mjs test/chatops-run-command.test.mjs test/secrets-guard.test.mjs test/chatops-ilink-fleet-bridge.test.mjs test/chatops-fleet-join.test.mjs",
|
|
123
123
|
"pack": "node scripts/pack.mjs",
|
|
124
124
|
"verify:join": "node scripts/verify-join.mjs",
|
|
125
125
|
"lint": "eslint .",
|
|
@@ -153,7 +153,9 @@
|
|
|
153
153
|
"test:reachability": "node --test --test-force-exit test/reachability-check.test.mjs",
|
|
154
154
|
"reachability": "node scripts/reachability-check.mjs",
|
|
155
155
|
"reachability:classify": "node scripts/reachability-classify.mjs",
|
|
156
|
-
"test:council-session": "node --test --test-force-exit test/council-session.test.mjs"
|
|
156
|
+
"test:council-session": "node --test --test-force-exit test/council-session.test.mjs",
|
|
157
|
+
"orphans": "node --test --test-force-exit test/accepted-orphans.test.mjs",
|
|
158
|
+
"test:acceptance-doc": "node --test --test-force-exit test/acceptance-doc.test.mjs"
|
|
157
159
|
},
|
|
158
160
|
"keywords": [
|
|
159
161
|
"dsh-bundle",
|
package/src/plugin/tools.mjs
CHANGED
|
@@ -202,7 +202,7 @@ const MAX_STAGES = 16;
|
|
|
202
202
|
* `package.json` during `scripts/pack.mjs` rather than hand-maintained, and `W2M_PLUGIN_VERSION`
|
|
203
203
|
* overrides it at runtime for tests and packagers.
|
|
204
204
|
*/
|
|
205
|
-
const PLUGIN_VERSION = '0.
|
|
205
|
+
const PLUGIN_VERSION = '0.40.0';
|
|
206
206
|
|
|
207
207
|
/** How long any single HTTP call may take before it is aborted, in milliseconds. */
|
|
208
208
|
const DEFAULT_REQUEST_TIMEOUT_MS = 15_000;
|