instar 1.3.986 → 1.3.988
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/dist/core/MachineSshEndpoint.d.ts.map +1 -1
- package/dist/core/MachineSshEndpoint.js +5 -1
- package/dist/core/MachineSshEndpoint.js.map +1 -1
- package/dist/core/MutualSshVerifier.d.ts.map +1 -1
- package/dist/core/MutualSshVerifier.js +3 -1
- package/dist/core/MutualSshVerifier.js.map +1 -1
- package/dist/core/PeerAuthorizedKeys.d.ts.map +1 -1
- package/dist/core/PeerAuthorizedKeys.js +5 -1
- package/dist/core/PeerAuthorizedKeys.js.map +1 -1
- package/dist/core/SshBootstrapAdvert.d.ts.map +1 -1
- package/dist/core/SshBootstrapAdvert.js +3 -1
- package/dist/core/SshBootstrapAdvert.js.map +1 -1
- package/dist/core/StandingSshVerifier.d.ts.map +1 -1
- package/dist/core/StandingSshVerifier.js +3 -1
- package/dist/core/StandingSshVerifier.js.map +1 -1
- package/dist/threadline/ThreadlineBootstrap.d.ts +9 -0
- package/dist/threadline/ThreadlineBootstrap.d.ts.map +1 -1
- package/dist/threadline/ThreadlineBootstrap.js +14 -0
- package/dist/threadline/ThreadlineBootstrap.js.map +1 -1
- package/dist/threadline/relayConnectionObserver.d.ts +76 -0
- package/dist/threadline/relayConnectionObserver.d.ts.map +1 -0
- package/dist/threadline/relayConnectionObserver.js +86 -0
- package/dist/threadline/relayConnectionObserver.js.map +1 -0
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +2 -2
- package/upgrades/1.3.987.md +100 -0
- package/upgrades/1.3.988.md +55 -0
- package/upgrades/side-effects/relay-drop-was-unrecorded.md +160 -0
- package/upgrades/side-effects/ssh2-cjs-named-imports.md +183 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MachineSshEndpoint.d.ts","sourceRoot":"","sources":["../../src/core/MachineSshEndpoint.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MachineSshEndpoint.d.ts","sourceRoot":"","sources":["../../src/core/MachineSshEndpoint.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAE1F,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B,EAAE,MAAM,CAAC;IACnC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,cAAc,EAAE,qBAAqB,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,gBAAgB,KAAK,cAAc,CAAC;IACrF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,mFAAmF;AACnF,qBAAa,kBAAkB;IAOjB,OAAO,CAAC,QAAQ,CAAC,OAAO;IANpC,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,cAAc,CAA6D;IACnF,OAAO,CAAC,UAAU,CAA6B;gBAClB,OAAO,EAAE,yBAAyB;IAEzD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IA0G3E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,6EAA6E;IAC7E,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAM/B,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAK9C,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,gBAAgB;CASzB;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,GAAG,MAAM,CAWxF"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import net from 'node:net';
|
|
3
3
|
import { verify } from 'node:crypto';
|
|
4
|
-
import
|
|
4
|
+
import ssh2 from 'ssh2';
|
|
5
|
+
// `ssh2` is CommonJS: a NAMED esm import throws at load
|
|
6
|
+
// ("does not provide an export named 'Server'"). Types are erased at compile time
|
|
7
|
+
// so `import type` is safe; VALUES must come off the default namespace.
|
|
8
|
+
const { Server, utils } = ssh2;
|
|
5
9
|
/** Restricted SSH server: public-key auth plus the `instar-rpc` subsystem only. */
|
|
6
10
|
export class MachineSshEndpoint {
|
|
7
11
|
options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MachineSshEndpoint.js","sourceRoot":"","sources":["../../src/core/MachineSshEndpoint.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MachineSshEndpoint.js","sourceRoot":"","sources":["../../src/core/MachineSshEndpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MutualSshVerifier.d.ts","sourceRoot":"","sources":["../../src/core/MutualSshVerifier.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MutualSshVerifier.d.ts","sourceRoot":"","sources":["../../src/core/MutualSshVerifier.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,yBAAyB,EAAE,MAAM,CAAC;IAClC,uBAAuB,EAAE,MAAM,CAAC;IAChC,wBAAwB,EAAE,MAAM,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8EAA8E;IAC9E,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,yBAAyB,EAAE,MAAM,CAAC;IAClC,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,0BAA0B,EAAE,MAAM,CAAC;IACnC,kCAAkC,EAAE,MAAM,CAAC;IAC3C,qBAAqB,EAAE,CAAC,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAChF,SAAS,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,MAAM,CAAC;CAClD;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,kBAAkB,GAAG,qBAAqB,CAAC,GAAG,MAAM,CASjI;AAED,qBAAa,iBAAiB;IACtB,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,SAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAgDnF,MAAM,CAAC,MAAM,CACX,IAAI,EAAE,mBAAmB,GAAG,SAAS,EACrC,IAAI,EAAE,mBAAmB,GAAG,SAAS,EACrC,GAAG,SAAa,EAChB,OAAO,CAAC,EAAE;QACR,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,uBAAuB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtD,qBAAqB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACrD,GACA,OAAO;CAUX"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import { createHash, randomBytes } from 'node:crypto';
|
|
3
|
-
import
|
|
3
|
+
import ssh2 from 'ssh2';
|
|
4
|
+
// `ssh2` is CommonJS — named esm imports throw at load. Destructure at runtime.
|
|
5
|
+
const { Client, utils } = ssh2;
|
|
4
6
|
import { canonicalSshResponse } from './MachineSshEndpoint.js';
|
|
5
7
|
export function canonicalDirectionalSshProof(proof) {
|
|
6
8
|
return JSON.stringify({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MutualSshVerifier.js","sourceRoot":"","sources":["../../src/core/MutualSshVerifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"MutualSshVerifier.js","sourceRoot":"","sources":["../../src/core/MutualSshVerifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PeerAuthorizedKeys.d.ts","sourceRoot":"","sources":["../../src/core/PeerAuthorizedKeys.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PeerAuthorizedKeys.d.ts","sourceRoot":"","sources":["../../src/core/PeerAuthorizedKeys.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAIE,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,eAAe,CAAuB;gBAElC,SAAS,EAAE,MAAM,EAAmB,MAAM,EAAE,OAAO;IAM/D,SAAS,CAAC,GAAG,EAAE,iBAAiB,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE;IAiBxE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE;IAWjF,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE;IAe5G,GAAG,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO;IAOpC,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,KAAK;IAcb,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,QAAQ;IA+ChB,OAAO,CAAC,eAAe;CAWxB"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { randomUUID } from 'node:crypto';
|
|
4
|
-
import
|
|
4
|
+
import ssh2 from 'ssh2';
|
|
5
|
+
// `ssh2` is CommonJS: a NAMED esm import throws at load
|
|
6
|
+
// ("Named export 'utils' not found"). Default-import the namespace and destructure
|
|
7
|
+
// at runtime. See ssh2-cjs-named-imports side-effects artifact.
|
|
8
|
+
const { utils } = ssh2;
|
|
5
9
|
import { SafeFsExecutor } from './SafeFsExecutor.js';
|
|
6
10
|
const MARKER = 'instar-peer-access';
|
|
7
11
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PeerAuthorizedKeys.js","sourceRoot":"","sources":["../../src/core/PeerAuthorizedKeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"PeerAuthorizedKeys.js","sourceRoot":"","sources":["../../src/core/PeerAuthorizedKeys.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SshBootstrapAdvert.d.ts","sourceRoot":"","sources":["../../src/core/SshBootstrapAdvert.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SshBootstrapAdvert.d.ts","sourceRoot":"","sources":["../../src/core/SshBootstrapAdvert.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,GAAG,KAAK,GAAG,YAAY,CAAA;KAAE,CAAC,CAAC;IAC7F,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IACtF,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,GAAG,MAAM,CAUxG;AAED,gGAAgG;AAChG,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,kBAAkB,CAcrJ"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import net from 'node:net';
|
|
2
|
-
import
|
|
2
|
+
import ssh2 from 'ssh2';
|
|
3
|
+
// `ssh2` is CommonJS — named esm imports throw at load. Destructure at runtime.
|
|
4
|
+
const { utils } = ssh2;
|
|
3
5
|
export function canonicalSshBootstrapAdvert(advert) {
|
|
4
6
|
return JSON.stringify({
|
|
5
7
|
machineId: advert.machineId, agentId: advert.agentId, pairingEpoch: advert.pairingEpoch,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SshBootstrapAdvert.js","sourceRoot":"","sources":["../../src/core/SshBootstrapAdvert.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"SshBootstrapAdvert.js","sourceRoot":"","sources":["../../src/core/SshBootstrapAdvert.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StandingSshVerifier.d.ts","sourceRoot":"","sources":["../../src/core/StandingSshVerifier.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StandingSshVerifier.d.ts","sourceRoot":"","sources":["../../src/core/StandingSshVerifier.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,8EAA8E;AAC9E,qBAAa,mBAAmB;IAC9B,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CAuChD"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
|
-
import
|
|
2
|
+
import ssh2 from 'ssh2';
|
|
3
|
+
// `ssh2` is CommonJS — named esm imports throw at load. Destructure at runtime.
|
|
4
|
+
const { Client, utils } = ssh2;
|
|
3
5
|
/** Proves that the dedicated key can execute through the host's real sshd. */
|
|
4
6
|
export class StandingSshVerifier {
|
|
5
7
|
probe(target) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StandingSshVerifier.js","sourceRoot":"","sources":["../../src/core/StandingSshVerifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"StandingSshVerifier.js","sourceRoot":"","sources":["../../src/core/StandingSshVerifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ import { HandshakeManager } from './HandshakeManager.js';
|
|
|
17
17
|
import { AgentDiscovery } from './AgentDiscovery.js';
|
|
18
18
|
import { ThreadlineClient } from './client/ThreadlineClient.js';
|
|
19
19
|
import { InboundMessageGate } from './InboundMessageGate.js';
|
|
20
|
+
import { type RelayConnectionEvent } from './relayConnectionObserver.js';
|
|
20
21
|
import { AgentTrustManager } from './AgentTrustManager.js';
|
|
21
22
|
export interface ThreadlineBootstrapConfig {
|
|
22
23
|
/** Agent name */
|
|
@@ -64,6 +65,14 @@ export interface ThreadlineBootstrapResult {
|
|
|
64
65
|
inboundGate?: InboundMessageGate;
|
|
65
66
|
/** Trust manager */
|
|
66
67
|
trustManager?: AgentTrustManager;
|
|
68
|
+
/**
|
|
69
|
+
* Most recent relay connection-LOSS event, or null if the relay has never
|
|
70
|
+
* dropped. Exists so a status surface can report WHY the relay is down rather
|
|
71
|
+
* than only that it is — the distinction the 2026-07-26 incident turned on,
|
|
72
|
+
* when the only record available said "connected" for a connection that was
|
|
73
|
+
* gone. See relayConnectionObserver.ts.
|
|
74
|
+
*/
|
|
75
|
+
getLastRelayEvent?: () => RelayConnectionEvent | null;
|
|
67
76
|
}
|
|
68
77
|
/**
|
|
69
78
|
* Bootstrap the Threadline protocol stack.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadlineBootstrap.d.ts","sourceRoot":"","sources":["../../src/threadline/ThreadlineBootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAO3D,MAAM,WAAW,yBAAyB;IACxC,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,UAAU,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IAC/C,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,MAAM;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,uBAAuB,EAAE,OAAO,CAAA;KAAE,CAAC;CAC1G;AAED,MAAM,WAAW,yBAAyB;IACxC,8CAA8C;IAC9C,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,8BAA8B;IAC9B,SAAS,EAAE,cAAc,CAAC;IAC1B,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,+CAA+C;IAC/C,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,iDAAiD;IACjD,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,oBAAoB;IACpB,YAAY,CAAC,EAAE,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"ThreadlineBootstrap.d.ts","sourceRoot":"","sources":["../../src/threadline/ThreadlineBootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAA4B,KAAK,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAO3D,MAAM,WAAW,yBAAyB;IACxC,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,UAAU,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IAC/C,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,MAAM;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,uBAAuB,EAAE,OAAO,CAAA;KAAE,CAAC;CAC1G;AAED,MAAM,WAAW,yBAAyB;IACxC,8CAA8C;IAC9C,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,8BAA8B;IAC9B,SAAS,EAAE,cAAc,CAAC;IAC1B,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,+CAA+C;IAC/C,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,iDAAiD;IACjD,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,oBAAoB;IACpB,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,oBAAoB,GAAG,IAAI,CAAC;CACvD;AAID;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,yBAAyB,CAAC,CAqRpC"}
|
|
@@ -24,6 +24,7 @@ import { DEFAULT_RELAY_URL } from './constants.js';
|
|
|
24
24
|
import { resolveThreadlineMcpEntry } from './mcpEntry.js';
|
|
25
25
|
import { ThreadlineClient } from './client/ThreadlineClient.js';
|
|
26
26
|
import { InboundMessageGate } from './InboundMessageGate.js';
|
|
27
|
+
import { attachRelayObservability } from './relayConnectionObserver.js';
|
|
27
28
|
import { AgentTrustManager } from './AgentTrustManager.js';
|
|
28
29
|
import { SafeFsExecutor } from '../core/SafeFsExecutor.js';
|
|
29
30
|
import { IdentityManager } from './client/IdentityManager.js';
|
|
@@ -147,6 +148,7 @@ export async function bootstrapThreadline(config) {
|
|
|
147
148
|
}
|
|
148
149
|
}
|
|
149
150
|
let relayClient;
|
|
151
|
+
let relayObservability;
|
|
150
152
|
let inboundGate;
|
|
151
153
|
let trustManager;
|
|
152
154
|
// Always create trust manager when relay is enabled — needed for processing
|
|
@@ -249,6 +251,14 @@ export async function bootstrapThreadline(config) {
|
|
|
249
251
|
relayClient.on('auto-discovered', (info) => {
|
|
250
252
|
console.log(`Threadline: auto-discovered ${info.count} agent(s) on relay`);
|
|
251
253
|
});
|
|
254
|
+
// Record connection LOSS, not just connection. Without this the successful
|
|
255
|
+
// connect line below is the last word the record can ever contain, so a relay
|
|
256
|
+
// that drops afterwards — including the terminal `displaced` case, which
|
|
257
|
+
// disarms reconnect permanently — is invisible. See relayConnectionObserver.ts
|
|
258
|
+
// for the incident this closes.
|
|
259
|
+
relayObservability = attachRelayObservability(relayClient, {
|
|
260
|
+
logDir: path.join(config.stateDir, '..', 'logs'),
|
|
261
|
+
});
|
|
252
262
|
try {
|
|
253
263
|
await relayClient.connect();
|
|
254
264
|
console.log(`Threadline: relay connected (fingerprint: ${relayClient.fingerprint})`);
|
|
@@ -273,6 +283,10 @@ export async function bootstrapThreadline(config) {
|
|
|
273
283
|
discovery,
|
|
274
284
|
trustManager,
|
|
275
285
|
relayClient,
|
|
286
|
+
/** Most recent relay connection-loss event, or null if it has never dropped.
|
|
287
|
+
* Lets a status surface report WHY the relay is down instead of only that it
|
|
288
|
+
* is — the distinction the 2026-07-26 incident turned on. */
|
|
289
|
+
getLastRelayEvent: () => relayObservability?.getLastEvent() ?? null,
|
|
276
290
|
inboundGate,
|
|
277
291
|
shutdown: async () => {
|
|
278
292
|
stopHeartbeat();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadlineBootstrap.js","sourceRoot":"","sources":["../../src/threadline/ThreadlineBootstrap.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ThreadlineBootstrap.js","sourceRoot":"","sources":["../../src/threadline/ThreadlineBootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Observability for the server's relay connection.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS EXISTS
|
|
5
|
+
* ---------------
|
|
6
|
+
* On 2026-07-26 the agent could not send to a peer. The peer was healthy and
|
|
7
|
+
* listening; this agent's relay was down. Diagnosing it was impossible from the
|
|
8
|
+
* record, because the record could only ever say one thing:
|
|
9
|
+
*
|
|
10
|
+
* Threadline: relay connected (fingerprint: …)
|
|
11
|
+
*
|
|
12
|
+
* `RelayClient` emits BOTH `disconnected` (socket close) and `displaced` (another
|
|
13
|
+
* connection claimed the same identity). `ThreadlineBootstrap` subscribed to
|
|
14
|
+
* `message`, `unknown-sender` and `auto-discovered` — and to NEITHER of those two.
|
|
15
|
+
* So a connection that dropped after startup left the successful connect line as
|
|
16
|
+
* the last word forever.
|
|
17
|
+
*
|
|
18
|
+
* THE PART THAT MAKES IT WORTH A MODULE. `displaced` sets `shouldReconnect = false`
|
|
19
|
+
* permanently — deliberately, so two processes do not fight over one identity. That
|
|
20
|
+
* is a *terminal* state: the exponential backoff that would otherwise recover the
|
|
21
|
+
* connection is switched off and never re-armed for the life of the process. A
|
|
22
|
+
* terminal state that is never recorded is the worst combination available: the
|
|
23
|
+
* channel is gone for good and nothing says so.
|
|
24
|
+
*
|
|
25
|
+
* The bootstrap itself documents a known "displacement race" between the server's
|
|
26
|
+
* client and the standalone listener daemon. Whether that race is what fired here
|
|
27
|
+
* is UNKNOWN — and unknowable from the existing record, which is precisely the
|
|
28
|
+
* defect. This module does not diagnose the cause; it makes the next occurrence
|
|
29
|
+
* diagnosable.
|
|
30
|
+
*
|
|
31
|
+
* SCOPE — deliberately narrow. This RECORDS transitions. It does not reconnect,
|
|
32
|
+
* does not re-arm anything, and never changes the client's behaviour. Any recovery
|
|
33
|
+
* fix belongs after this, and would be unverifiable before it.
|
|
34
|
+
*/
|
|
35
|
+
/** One recorded relay-connection transition. */
|
|
36
|
+
export interface RelayConnectionEvent {
|
|
37
|
+
ts: string;
|
|
38
|
+
/**
|
|
39
|
+
* `disconnected` — socket closed; the client's backoff will retry.
|
|
40
|
+
* `displaced` — another connection took this identity. TERMINAL: retry is
|
|
41
|
+
* disarmed permanently and this process will not reconnect.
|
|
42
|
+
*/
|
|
43
|
+
event: 'disconnected' | 'displaced';
|
|
44
|
+
/** Reason string from the client, clamped. Never trusted as structured data. */
|
|
45
|
+
reason: string;
|
|
46
|
+
fingerprint: string;
|
|
47
|
+
/**
|
|
48
|
+
* True only for `displaced`. Recorded explicitly rather than left implicit,
|
|
49
|
+
* because "will retry" and "will never retry" are the two states a reader
|
|
50
|
+
* actually needs to tell apart, and they are otherwise indistinguishable.
|
|
51
|
+
*/
|
|
52
|
+
terminal: boolean;
|
|
53
|
+
}
|
|
54
|
+
/** Minimal shape this module needs — keeps it testable without a real socket. */
|
|
55
|
+
export interface RelayEventSource {
|
|
56
|
+
on(event: string, listener: (...args: unknown[]) => void): unknown;
|
|
57
|
+
readonly fingerprint?: string | null;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Subscribe to the relay client's connection-loss events and record each one.
|
|
61
|
+
*
|
|
62
|
+
* Returns a getter for the most recent event so a status surface can report WHY
|
|
63
|
+
* the connection is down rather than only that it is. Returns null until one
|
|
64
|
+
* fires — which correctly distinguishes "never dropped" from "dropped, cause X".
|
|
65
|
+
*/
|
|
66
|
+
export declare function attachRelayObservability(client: RelayEventSource, opts: {
|
|
67
|
+
/** Directory for the durable record. Created if absent. */
|
|
68
|
+
logDir: string;
|
|
69
|
+
/** Injected so tests capture output instead of writing to the console. */
|
|
70
|
+
log?: (line: string) => void;
|
|
71
|
+
/** Injected for the same reason. */
|
|
72
|
+
logError?: (line: string) => void;
|
|
73
|
+
}): {
|
|
74
|
+
getLastEvent: () => RelayConnectionEvent | null;
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=relayConnectionObserver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relayConnectionObserver.d.ts","sourceRoot":"","sources":["../../src/threadline/relayConnectionObserver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAKH,gDAAgD;AAChD,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX;;;;OAIG;IACH,KAAK,EAAE,cAAc,GAAG,WAAW,CAAC;IACpC,gFAAgF;IAChF,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC;IACnE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AASD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE;IACJ,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,oCAAoC;IACpC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,GACA;IAAE,YAAY,EAAE,MAAM,oBAAoB,GAAG,IAAI,CAAA;CAAE,CA6CrD"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Observability for the server's relay connection.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS EXISTS
|
|
5
|
+
* ---------------
|
|
6
|
+
* On 2026-07-26 the agent could not send to a peer. The peer was healthy and
|
|
7
|
+
* listening; this agent's relay was down. Diagnosing it was impossible from the
|
|
8
|
+
* record, because the record could only ever say one thing:
|
|
9
|
+
*
|
|
10
|
+
* Threadline: relay connected (fingerprint: …)
|
|
11
|
+
*
|
|
12
|
+
* `RelayClient` emits BOTH `disconnected` (socket close) and `displaced` (another
|
|
13
|
+
* connection claimed the same identity). `ThreadlineBootstrap` subscribed to
|
|
14
|
+
* `message`, `unknown-sender` and `auto-discovered` — and to NEITHER of those two.
|
|
15
|
+
* So a connection that dropped after startup left the successful connect line as
|
|
16
|
+
* the last word forever.
|
|
17
|
+
*
|
|
18
|
+
* THE PART THAT MAKES IT WORTH A MODULE. `displaced` sets `shouldReconnect = false`
|
|
19
|
+
* permanently — deliberately, so two processes do not fight over one identity. That
|
|
20
|
+
* is a *terminal* state: the exponential backoff that would otherwise recover the
|
|
21
|
+
* connection is switched off and never re-armed for the life of the process. A
|
|
22
|
+
* terminal state that is never recorded is the worst combination available: the
|
|
23
|
+
* channel is gone for good and nothing says so.
|
|
24
|
+
*
|
|
25
|
+
* The bootstrap itself documents a known "displacement race" between the server's
|
|
26
|
+
* client and the standalone listener daemon. Whether that race is what fired here
|
|
27
|
+
* is UNKNOWN — and unknowable from the existing record, which is precisely the
|
|
28
|
+
* defect. This module does not diagnose the cause; it makes the next occurrence
|
|
29
|
+
* diagnosable.
|
|
30
|
+
*
|
|
31
|
+
* SCOPE — deliberately narrow. This RECORDS transitions. It does not reconnect,
|
|
32
|
+
* does not re-arm anything, and never changes the client's behaviour. Any recovery
|
|
33
|
+
* fix belongs after this, and would be unverifiable before it.
|
|
34
|
+
*/
|
|
35
|
+
import fs from 'node:fs';
|
|
36
|
+
import path from 'node:path';
|
|
37
|
+
const MAX_REASON_CHARS = 300;
|
|
38
|
+
function clampReason(reason) {
|
|
39
|
+
const s = typeof reason === 'string' ? reason : String(reason ?? '');
|
|
40
|
+
return s.length > MAX_REASON_CHARS ? `${s.slice(0, MAX_REASON_CHARS)}…` : s;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Subscribe to the relay client's connection-loss events and record each one.
|
|
44
|
+
*
|
|
45
|
+
* Returns a getter for the most recent event so a status surface can report WHY
|
|
46
|
+
* the connection is down rather than only that it is. Returns null until one
|
|
47
|
+
* fires — which correctly distinguishes "never dropped" from "dropped, cause X".
|
|
48
|
+
*/
|
|
49
|
+
export function attachRelayObservability(client, opts) {
|
|
50
|
+
const log = opts.log ?? ((line) => console.log(line));
|
|
51
|
+
const logError = opts.logError ?? ((line) => console.error(line));
|
|
52
|
+
let lastEvent = null;
|
|
53
|
+
const record = (event, reason, terminal) => {
|
|
54
|
+
const entry = {
|
|
55
|
+
ts: new Date().toISOString(),
|
|
56
|
+
event,
|
|
57
|
+
reason: clampReason(reason),
|
|
58
|
+
fingerprint: client.fingerprint ?? 'unknown',
|
|
59
|
+
terminal,
|
|
60
|
+
};
|
|
61
|
+
lastEvent = entry;
|
|
62
|
+
// Loud on the console FIRST. If the durable write fails, the operator still
|
|
63
|
+
// sees the transition — the whole point is that this must not be silent.
|
|
64
|
+
if (terminal) {
|
|
65
|
+
logError(`Threadline: relay DISPLACED by another connection using this identity — ${entry.reason}. `
|
|
66
|
+
+ 'Reconnect is now disarmed for the life of this process; this agent cannot send or '
|
|
67
|
+
+ 'receive until it restarts.');
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
log(`Threadline: relay disconnected — ${entry.reason}. Client will retry with backoff.`);
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
fs.mkdirSync(opts.logDir, { recursive: true });
|
|
74
|
+
fs.appendFileSync(path.join(opts.logDir, 'threadline-relay-events.jsonl'), `${JSON.stringify(entry)}\n`, 'utf-8');
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
// Never throw out of an event handler — a failed audit write must not take
|
|
78
|
+
// down the connection path it is observing.
|
|
79
|
+
logError(`Threadline: failed to record relay ${event} — ${err instanceof Error ? err.message : err}`);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
client.on('disconnected', (reason) => record('disconnected', reason, false));
|
|
83
|
+
client.on('displaced', (reason) => record('displaced', reason, true));
|
|
84
|
+
return { getLastEvent: () => lastEvent };
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=relayConnectionObserver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relayConnectionObserver.js","sourceRoot":"","sources":["../../src/threadline/relayConnectionObserver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AA4B7B,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,SAAS,WAAW,CAAC,MAAe;IAClC,MAAM,CAAC,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACrE,OAAO,CAAC,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAwB,EACxB,IAOC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,IAAI,SAAS,GAAgC,IAAI,CAAC;IAElD,MAAM,MAAM,GAAG,CAAC,KAAoC,EAAE,MAAe,EAAE,QAAiB,EAAQ,EAAE;QAChG,MAAM,KAAK,GAAyB;YAClC,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC5B,KAAK;YACL,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;YAC3B,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,SAAS;YAC5C,QAAQ;SACT,CAAC;QACF,SAAS,GAAG,KAAK,CAAC;QAElB,4EAA4E;QAC5E,yEAAyE;QACzE,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CACN,2EAA2E,KAAK,CAAC,MAAM,IAAI;kBACzF,oFAAoF;kBACpF,4BAA4B,CAC/B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,oCAAoC,KAAK,CAAC,MAAM,mCAAmC,CAAC,CAAC;QAC3F,CAAC;QAED,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,EAAE,CAAC,cAAc,CACf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,+BAA+B,CAAC,EACvD,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAC5B,OAAO,CACR,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,2EAA2E;YAC3E,4CAA4C;YAC5C,QAAQ,CAAC,sCAAsC,KAAK,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACxG,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IACtF,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAE/E,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;AAC3C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-07-
|
|
5
|
-
"instarVersion": "1.3.
|
|
4
|
+
"generatedAt": "2026-07-26T20:17:37.749Z",
|
|
5
|
+
"instarVersion": "1.3.988",
|
|
6
6
|
"entryCount": 202,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- assembled-by: assemble-next-md -->
|
|
4
|
+
<!-- bump: patch -->
|
|
5
|
+
|
|
6
|
+
## What Changed
|
|
7
|
+
|
|
8
|
+
**When the agent-to-agent relay connection dropped, nothing recorded it — so the startup line
|
|
9
|
+
saying it had connected stayed the last word forever, whatever happened afterwards.**
|
|
10
|
+
|
|
11
|
+
`RelayClient` emits two connection-loss events: `disconnected` (socket close; the client retries
|
|
12
|
+
with exponential backoff) and `displaced` (another connection claimed this identity — **terminal**,
|
|
13
|
+
because `case 'displaced': shouldReconnect = false` disarms retry for the life of the process).
|
|
14
|
+
`ThreadlineBootstrap` subscribed to `message`, `unknown-sender` and `auto-discovered` — and to
|
|
15
|
+
**neither** loss event. Only `listener-daemon.ts` handled them.
|
|
16
|
+
|
|
17
|
+
**Observed (2026-07-26).** The agent could not send to a peer; two send paths refused with
|
|
18
|
+
`Relay not connected and local delivery unavailable`. The peer's own server reported
|
|
19
|
+
`ready: true, relay.connected: true` and had been listening since the previous day — the peer was
|
|
20
|
+
healthy. This agent reported `ready: false, relay.connected: false`, while its last written word on
|
|
21
|
+
the subject was `Threadline: relay connected` at `18:21:27Z`, with no disconnect line anywhere.
|
|
22
|
+
|
|
23
|
+
**The property that made this worth fixing rather than noting: the defect concealed its own cause.**
|
|
24
|
+
A `displaced` frame would fully explain why backoff never recovered the connection, and
|
|
25
|
+
`ThreadlineBootstrap` documents a known displacement race between the server's client and the
|
|
26
|
+
standalone listener daemon. Whether that is what fired is **unknowable**, because nothing recorded
|
|
27
|
+
it — the absence of evidence was produced by the defect itself.
|
|
28
|
+
|
|
29
|
+
The server now subscribes to both and records each transition, appending to
|
|
30
|
+
`logs/threadline-relay-events.jsonl` and exposing the latest event on the bootstrap result.
|
|
31
|
+
|
|
32
|
+
**Ordering note.** This ships observability and *not* reconnection, reversing the author's first
|
|
33
|
+
plan. A reconnect fix built first would have been unverifiable — there would have been no way to
|
|
34
|
+
observe whether it held.
|
|
35
|
+
|
|
36
|
+
## What to Tell Your User
|
|
37
|
+
|
|
38
|
+
If I have ever been unable to reach another agent and could not tell you why, this is one reason.
|
|
39
|
+
My link to the shared relay could go down and leave behind a note saying it was up — not merely
|
|
40
|
+
silent, but actively misleading, because that startup note was the only note that could ever exist.
|
|
41
|
+
|
|
42
|
+
Two things can end that connection. An ordinary drop, which retries by itself and usually recovers.
|
|
43
|
+
And being displaced, where another process takes the same identity — in which case retrying is
|
|
44
|
+
switched off deliberately and permanently, so the link is gone until a restart. Those demand
|
|
45
|
+
opposite reactions from anyone reading, and both were equally invisible.
|
|
46
|
+
|
|
47
|
+
Now a drop is reported calmly and says a retry is coming, and a displacement is reported as an error
|
|
48
|
+
that says plainly the agent cannot send or receive until it restarts.
|
|
49
|
+
|
|
50
|
+
Two honest limits. This does not reconnect anything — a restart still fixes it, as before, and
|
|
51
|
+
recovery is separate work. And it cannot explain the outage that prompted it, because that evidence
|
|
52
|
+
was never created; what changes is that the next one is diagnosable.
|
|
53
|
+
|
|
54
|
+
## Summary of New Capabilities
|
|
55
|
+
|
|
56
|
+
- A relay disconnection is recorded durably instead of passing silently.
|
|
57
|
+
- A relay *displacement* is recorded, flagged terminal, and reported at error level with its
|
|
58
|
+
consequence stated — that retry is disarmed and the agent cannot send or receive until restart.
|
|
59
|
+
- The two are distinguishable, so a reader can tell "wait for the retry" from "this is over".
|
|
60
|
+
- Every occurrence is appended rather than overwriting the last, so a flapping connection is
|
|
61
|
+
visible — the shape a reconnection bug actually takes.
|
|
62
|
+
- The most recent loss event is exposed on the bootstrap result, so a status surface can report
|
|
63
|
+
*why* the relay is down rather than only that it is.
|
|
64
|
+
- A connection that has never dropped records nothing and reports no last event, keeping
|
|
65
|
+
"never dropped" distinct from "dropped, cause unknown".
|
|
66
|
+
|
|
67
|
+
## Evidence
|
|
68
|
+
|
|
69
|
+
**Before**, on the affected agent:
|
|
70
|
+
|
|
71
|
+
| surface | reading |
|
|
72
|
+
|---|---|
|
|
73
|
+
| peer's own server | `ready: true`, `relay.connected: true`, listening since 2026-07-25 |
|
|
74
|
+
| this agent | `ready: false`, `relay.connected: false` |
|
|
75
|
+
| this agent's log, last relay line | `Threadline: relay connected` @ `18:21:27Z` |
|
|
76
|
+
| disconnect / displacement lines | none — no handler existed |
|
|
77
|
+
|
|
78
|
+
**After** — every row asserted by a test:
|
|
79
|
+
|
|
80
|
+
| event | recorded | terminal | reported as | says |
|
|
81
|
+
|---|---|---|---|---|
|
|
82
|
+
| `disconnected` | yes | `false` | log | will retry with backoff |
|
|
83
|
+
| `displaced` | yes | `true` | **error** | retry disarmed; cannot send/receive until restart |
|
|
84
|
+
| never dropped | nothing written | — | — | last event is `null`, not a falsy "unknown" |
|
|
85
|
+
| 5 consecutive drops | 5 rows appended | — | — | flapping stays visible |
|
|
86
|
+
| unwritable log dir | handler does not throw | — | error | console + in-memory state still correct |
|
|
87
|
+
| 5,000-char reason | clamped below 400 | — | — | untrusted text is not written whole |
|
|
88
|
+
| null fingerprint | `"unknown"` | — | — | recorded honestly, not as empty string |
|
|
89
|
+
|
|
90
|
+
**Three guards refuse.** Each regression was introduced deliberately and the suite re-run:
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
remove the 'displaced' subscription → 4 failed | 6 passed (10)
|
|
94
|
+
remove the 'disconnected' subscription → 7 failed | 3 passed (10)
|
|
95
|
+
collapse terminal into one verdict (false) → 4 failed | 6 passed (10)
|
|
96
|
+
restored → 10 passed (10)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Scope run:** `npx tsc --noEmit` clean; tree-scanning tests plus every threadline test — counts in
|
|
100
|
+
the PR body.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- assembled-by: assemble-next-md -->
|
|
4
|
+
<!-- bump: patch -->
|
|
5
|
+
|
|
6
|
+
## What Changed
|
|
7
|
+
|
|
8
|
+
Five `src/core/` modules took named value imports from `ssh2`, which is CommonJS.
|
|
9
|
+
Node's ESM loader cannot statically detect CJS named exports, so each threw at load
|
|
10
|
+
and `mutual-ssh` / `peer-execution` failed to initialise at every server boot —
|
|
11
|
+
warning-level, surfaced nowhere. Fixed by default-importing the namespace and
|
|
12
|
+
destructuring at runtime; type-only imports are unchanged.
|
|
13
|
+
|
|
14
|
+
A regression guard scans `src/` for named value imports from a CJS allowlist. It is
|
|
15
|
+
a source scan rather than an import assertion because an import assertion cannot
|
|
16
|
+
observe this bug class: vitest transforms through Vite, which rewrites CJS interop,
|
|
17
|
+
so the broken source passes in-process. `tsc` is likewise blind — the types are real.
|
|
18
|
+
|
|
19
|
+
## What to Tell Your User
|
|
20
|
+
|
|
21
|
+
If you run instar on more than one machine, one of the ways those machines can talk
|
|
22
|
+
to each other — the direct SSH channel — has been failing at every server start, in a
|
|
23
|
+
way that only ever showed up as a warning line in a boot log. It could not have worked.
|
|
24
|
+
That specific failure is now gone.
|
|
25
|
+
|
|
26
|
+
Be honest about the size of this: the channel now *starts*. Whether it then connects
|
|
27
|
+
to another machine end to end has not been demonstrated here, and should not be
|
|
28
|
+
claimed. If you were relying on mutual-SSH and it was silently doing nothing, this
|
|
29
|
+
removes the first reason why. If you run on a single machine, nothing changes for you.
|
|
30
|
+
|
|
31
|
+
There is a related gap deliberately left open: this subsystem does not appear on the
|
|
32
|
+
guard inventory at all when it fails, because it registers itself
|
|
33
|
+
after the point where it was crashing. So "it's not listed" did not mean "it's fine".
|
|
34
|
+
That is tracked separately.
|
|
35
|
+
|
|
36
|
+
## Summary of New Capabilities
|
|
37
|
+
|
|
38
|
+
None. This is a repair, not a new capability. Five modules that could never load now
|
|
39
|
+
load; no route, config key, or user-visible surface is added or changed.
|
|
40
|
+
|
|
41
|
+
## Evidence
|
|
42
|
+
|
|
43
|
+
- Built output loaded under Node's real ESM loader: all five modules load; all five
|
|
44
|
+
previously threw.
|
|
45
|
+
- Guard refuses a reverted import, naming file and statement:
|
|
46
|
+
`× core/MutualSshVerifier.ts: import { Client, utils } from 'ssh2'`.
|
|
47
|
+
- First-attempt import-assertion guard passed 8/8 against broken source; `tsc` exit 0.
|
|
48
|
+
Both recorded in the side-effects artifact.
|
|
49
|
+
|
|
50
|
+
## Known limits
|
|
51
|
+
|
|
52
|
+
Loading is not functioning: whether the runtime then binds, finds keys and reaches a
|
|
53
|
+
peer is untested here and not claimed. `multiMachine.mutualSsh.enabled` registers with
|
|
54
|
+
`guardRegistry` inside the failing try block, so the failure is absent from the guard
|
|
55
|
+
inventory (88 rows, no mutualSsh row) — tracked, not fixed here. <!-- tracked: CMT-1044 -->
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# Side-Effects Review — a relay that dropped left "connected" as the last word
|
|
2
|
+
|
|
3
|
+
**Version / slug:** `relay-drop-was-unrecorded`
|
|
4
|
+
**Date:** `2026-07-26`
|
|
5
|
+
**Author:** `Echo (instar-dev agent)`
|
|
6
|
+
**Second-pass reviewer:** `see Phase 5`
|
|
7
|
+
|
|
8
|
+
## Summary of the change
|
|
9
|
+
|
|
10
|
+
`RelayClient` emits two connection-loss events: `disconnected` (socket close, client
|
|
11
|
+
retries with backoff) and `displaced` (another connection claimed this identity —
|
|
12
|
+
**terminal**, because `case 'displaced': shouldReconnect = false` disarms retry for
|
|
13
|
+
the life of the process). `ThreadlineBootstrap` subscribed to `message`,
|
|
14
|
+
`unknown-sender` and `auto-discovered` — and to **neither** loss event. Verified by
|
|
15
|
+
grep: both return empty in that file. Only `listener-daemon.ts` handles them.
|
|
16
|
+
|
|
17
|
+
So the server logged `Threadline: relay connected (fingerprint: …)` and could log
|
|
18
|
+
nothing afterwards, whatever happened.
|
|
19
|
+
|
|
20
|
+
**Observed (2026-07-26, topic 29723).** The agent could not send to peer
|
|
21
|
+
`instar-codey`; two send paths refused with `Relay not connected and local delivery
|
|
22
|
+
unavailable`. The peer's own server reported `ready:true, relay.connected:true`,
|
|
23
|
+
listening since 2026-07-25 — the peer was fine. This agent reported
|
|
24
|
+
`ready:false, relay.connected:false`, while its last written word on the subject was
|
|
25
|
+
`relay connected` at 18:21:27Z, with no disconnect line anywhere.
|
|
26
|
+
|
|
27
|
+
**The property that makes this worth fixing rather than noting: the defect conceals
|
|
28
|
+
its own cause.** `displaced` would fully explain why exponential backoff never
|
|
29
|
+
recovered the connection. Whether a `displaced` frame arrived is **unknowable**,
|
|
30
|
+
because nothing recorded it. The absence of evidence is produced by the defect.
|
|
31
|
+
`ThreadlineBootstrap` itself documents a known "displacement race" between the
|
|
32
|
+
server's client and the standalone listener daemon — a candidate, **not asserted**.
|
|
33
|
+
|
|
34
|
+
This change RECORDS transitions. It does not reconnect and does not alter client
|
|
35
|
+
behaviour. That ordering is deliberate and is a correction to my own first plan
|
|
36
|
+
("reconnect, then observe"): a reconnect fix built first would have been
|
|
37
|
+
unverifiable, because there would be no way to see whether it held.
|
|
38
|
+
|
|
39
|
+
## Decision-point inventory
|
|
40
|
+
|
|
41
|
+
| point | classification | note |
|
|
42
|
+
|---|---|---|
|
|
43
|
+
| `disconnected` → record, non-terminal | `invariant` | Deterministic event subscription. |
|
|
44
|
+
| `displaced` → record, terminal + error-level | `invariant` | Same. `terminal` is stored explicitly rather than inferred, because "will retry" vs "will never retry" is the distinction a reader needs and they are otherwise identical. |
|
|
45
|
+
| reason string clamped to 300 chars | `invariant` | The reason originates off-machine; it is treated as untrusted text, never structured data. |
|
|
46
|
+
| audit-write failure swallowed | `invariant` | An observer must not throw out of a handler on the path it observes. |
|
|
47
|
+
|
|
48
|
+
No judgment points. No model call. Nothing gates or blocks.
|
|
49
|
+
|
|
50
|
+
## 1. Over-block
|
|
51
|
+
|
|
52
|
+
Nothing is blocked. The observer only appends and logs; it cannot refuse a
|
|
53
|
+
connection, a send, or a message. The strongest available failure is noise in the
|
|
54
|
+
log if the relay flaps — which is information, not a block, and is the signal a
|
|
55
|
+
future reconnect fix will be judged against.
|
|
56
|
+
|
|
57
|
+
## 2. Under-block
|
|
58
|
+
|
|
59
|
+
**It does not fix the outage.** The relay is still down as of writing, and this
|
|
60
|
+
change does not reconnect it. Restarting the server restores the connection; that is
|
|
61
|
+
unchanged and untouched.
|
|
62
|
+
|
|
63
|
+
**It does not identify tonight's cause.** That evidence was destroyed before it
|
|
64
|
+
existed. The honest claim is narrower than it looks: the *next* occurrence becomes
|
|
65
|
+
diagnosable, this one does not become explicable.
|
|
66
|
+
|
|
67
|
+
**It observes only the server's client.** The MCP server and the listener daemon each
|
|
68
|
+
construct their own client. The daemon already handles both events; the MCP path is
|
|
69
|
+
untouched and remains unobserved. Recorded, not silently deferred.
|
|
70
|
+
|
|
71
|
+
**A record that is never read is only half of observability.** This writes a durable
|
|
72
|
+
JSONL and exposes the latest event through the bootstrap result. Surfacing it on
|
|
73
|
+
`/threadline/status` is the obvious next step and is deliberately not bundled — this
|
|
74
|
+
PR's refusal evidence is about recording, and mixing a route change in would blur it.
|
|
75
|
+
|
|
76
|
+
## 3. Level-of-abstraction fit
|
|
77
|
+
|
|
78
|
+
A pure-ish module (`fs` only), below the bootstrap, testable with a fake
|
|
79
|
+
`EventEmitter` and no socket. The bootstrap owns wiring; the module owns recording.
|
|
80
|
+
|
|
81
|
+
**A smarter component already exists and was consulted, not duplicated.**
|
|
82
|
+
`listener-daemon.ts` handles both events and writes `listener-displaced-alert.json` —
|
|
83
|
+
a single-slot file. This deliberately appends instead: a one-slot file cannot show a
|
|
84
|
+
flapping connection, which is exactly the shape a reconnect bug takes.
|
|
85
|
+
|
|
86
|
+
## 4. Signal vs authority compliance
|
|
87
|
+
|
|
88
|
+
Pure signal. It records and logs; it holds no authority over anything. It cannot
|
|
89
|
+
block a send, refuse a connection, or influence reconnection. `docs/signal-vs-authority.md`
|
|
90
|
+
is satisfied trivially — there is no decision to misplace.
|
|
91
|
+
|
|
92
|
+
The one risk an observer can carry is taking down what it watches. That is closed by
|
|
93
|
+
swallowing audit-write failures, asserted by a test.
|
|
94
|
+
|
|
95
|
+
## 4b. Judgment-point check (Judgment Within Floors standard)
|
|
96
|
+
|
|
97
|
+
None introduced. Every branch is a deterministic event subscription.
|
|
98
|
+
|
|
99
|
+
## 5. Interactions
|
|
100
|
+
|
|
101
|
+
- **`listener-daemon.ts`** — already handles both events independently; unchanged.
|
|
102
|
+
Its single-slot alert file is left alone; this is a second, additive record.
|
|
103
|
+
- **`ThreadlineClient` / `RelayClient`** — unchanged. No new emissions, no altered
|
|
104
|
+
reconnect behaviour, no change to `shouldReconnect`.
|
|
105
|
+
- **The daemon-handles-relay branch** — when the daemon owns the relay, the server
|
|
106
|
+
never connects and the observer is never attached. Correct: nothing to observe.
|
|
107
|
+
- **`/threadline/status`** — unchanged in this PR (see §2).
|
|
108
|
+
|
|
109
|
+
## 6. External surfaces
|
|
110
|
+
|
|
111
|
+
One new durable file, `logs/threadline-relay-events.jsonl`, and one optional field on
|
|
112
|
+
the bootstrap result. No route, no config key, no CLI flag, no message to any user.
|
|
113
|
+
|
|
114
|
+
**Content:** timestamps, event names, this agent's own fingerprint, and a clamped
|
|
115
|
+
reason string from the relay. No message bodies, no peer content.
|
|
116
|
+
|
|
117
|
+
## 6b. Operator-surface quality
|
|
118
|
+
|
|
119
|
+
Two new log lines. The displacement line is error-level and states the consequence in
|
|
120
|
+
plain terms — that retry is disarmed and the agent cannot send or receive until
|
|
121
|
+
restart — rather than naming the event and leaving the reader to infer what it means.
|
|
122
|
+
The disconnect line is calm and says a retry is coming. That difference is the entire
|
|
123
|
+
point; a reader must be able to tell "wait" from "this is over".
|
|
124
|
+
|
|
125
|
+
## 7. Multi-machine posture (Cross-Machine Coherence)
|
|
126
|
+
|
|
127
|
+
Machine-local by design. Each machine observes its own relay client and writes its own
|
|
128
|
+
record; a relay connection is per-process and cannot be reasoned about remotely. No
|
|
129
|
+
replication, no lease interaction, no shared state, no generated URL.
|
|
130
|
+
|
|
131
|
+
## 8. Rollback cost
|
|
132
|
+
|
|
133
|
+
Low. Delete the module, remove one import, one declaration, one call, one optional
|
|
134
|
+
result field. No migration, no persisted state anyone reads yet, no config default,
|
|
135
|
+
nothing installed into an agent home. The test would fail on revert, announcing it.
|
|
136
|
+
|
|
137
|
+
## Phase 5 — Second-pass review
|
|
138
|
+
|
|
139
|
+
The change touches the session/dispatch family only in the sense that it observes it;
|
|
140
|
+
it holds no authority, gates nothing, and cannot alter connection behaviour, so the
|
|
141
|
+
high-risk trigger list (block/allow decisions, session lifecycle, trust) is not
|
|
142
|
+
engaged. Author-applied lenses, disclosed:
|
|
143
|
+
|
|
144
|
+
**Adversarial — "how would I make this useless?"** By recording to a single slot (a
|
|
145
|
+
flap would overwrite itself) or by letting a write failure kill the handler. Both are
|
|
146
|
+
closed and asserted by tests.
|
|
147
|
+
|
|
148
|
+
**"Did I fix the symptom or the cause?"** Neither — deliberately. This fixes the
|
|
149
|
+
*blindness*, which is a precondition for diagnosing the cause. Stated plainly in §2
|
|
150
|
+
rather than implied.
|
|
151
|
+
|
|
152
|
+
**"Would it have caught the incident?"** It would have recorded the transition and,
|
|
153
|
+
if a displacement occurred, said so at error level with the consequence spelled out.
|
|
154
|
+
It would not have prevented it.
|
|
155
|
+
|
|
156
|
+
**Weakest point:** §2's last item. A durable record that no status surface reads is
|
|
157
|
+
observability only for someone who knows the file exists. I judged the route change
|
|
158
|
+
worth separating to keep this PR's refusal evidence unambiguous, but a reader could
|
|
159
|
+
reasonably call that half a job — which is why it is written down here rather than
|
|
160
|
+
left for them to notice.
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# Side-Effects Review — five modules that threw at load, and a guard that could not see it
|
|
2
|
+
|
|
3
|
+
**Version / slug:** `ssh2-cjs-named-imports`
|
|
4
|
+
**Date:** `2026-07-26`
|
|
5
|
+
**Author:** `Echo (instar-dev agent)`
|
|
6
|
+
**Second-pass reviewer:** `see Phase 5`
|
|
7
|
+
|
|
8
|
+
## Summary of the change
|
|
9
|
+
|
|
10
|
+
`ssh2` is CommonJS. Five files took named VALUE imports from it
|
|
11
|
+
(`import { Server, utils } from 'ssh2'`). Node's ESM loader cannot statically detect
|
|
12
|
+
CJS named exports, so each of those modules threw at load. Observed at every server
|
|
13
|
+
boot, warning-level, surfaced nowhere:
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
[mutual-ssh] initialization blocked: The requested module 'ssh2' does not provide
|
|
17
|
+
an export named 'Server' (server.ts:21596)
|
|
18
|
+
[peer-execution] disabled-grant cleanup blocked: Named export 'utils' not found.
|
|
19
|
+
(server.ts:21491)
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Fix: default-import the namespace, destructure at runtime, keep the type import
|
|
23
|
+
type-only (types are erased, so `import type { Connection }` is safe and unchanged).
|
|
24
|
+
|
|
25
|
+
Verified against the built output under Node's real loader — all five previously
|
|
26
|
+
threw, all five now load:
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
$ npm run build && node --input-type=module -e "…await import('./dist/core/'+m+'.js')…"
|
|
30
|
+
LOADS PeerAuthorizedKeys / MachineSshEndpoint / MutualSshVerifier
|
|
31
|
+
LOADS StandingSshVerifier / SshBootstrapAdvert
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## The guard is a source scan, and that was not the first attempt
|
|
35
|
+
|
|
36
|
+
The obvious regression guard — import each module, assert no throw — was written,
|
|
37
|
+
passed, and was **wrong**. Reverting one file to the broken form left it fully green:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
$ npx vitest run tests/unit/ssh2-modules-load-under-esm.test.ts # BROKEN source
|
|
41
|
+
✓ (8 tests) — Tests 8 passed (8)
|
|
42
|
+
$ npx tsc --noEmit # BROKEN source
|
|
43
|
+
tsc exit=0
|
|
44
|
+
$ node --input-type=module -e "import { Server } from 'ssh2';"
|
|
45
|
+
SyntaxError: Named export 'Server' not found…
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Vitest transforms through Vite, which rewrites CJS interop; production runs the
|
|
49
|
+
compiled output under Node's loader, which does not. An in-process import assertion
|
|
50
|
+
is **structurally incapable** of observing this class — it does not merely miss it.
|
|
51
|
+
`tsc` is blind for a different reason: the types are genuinely correct.
|
|
52
|
+
|
|
53
|
+
The replacement scans source text for named value imports from a CJS allowlist. It
|
|
54
|
+
refuses correctly:
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
$ npx vitest run … # after reverting src/core/MutualSshVerifier.ts
|
|
58
|
+
× REGRESSION: no source file takes a named value import from a CJS-only package
|
|
59
|
+
→ core/MutualSshVerifier.ts: import { Client, utils } from 'ssh2'
|
|
60
|
+
Tests 1 failed | 5 passed (6)
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Decision-point inventory
|
|
64
|
+
|
|
65
|
+
| point | classification | note |
|
|
66
|
+
|---|---|---|
|
|
67
|
+
| import form per file | `invariant` | Mechanical; no runtime branch introduced. |
|
|
68
|
+
| scan allowlist (`CJS_ONLY_PACKAGES`) | `invariant` | Explicit list, currently `['ssh2']`. Deliberately not auto-derived — see §2. |
|
|
69
|
+
| comment/string stripping before match | `invariant` | Asserted by a test using this file's own prose. |
|
|
70
|
+
|
|
71
|
+
No judgment points. No model call. Nothing gates or blocks at runtime.
|
|
72
|
+
|
|
73
|
+
## 1. Over-block
|
|
74
|
+
|
|
75
|
+
The scan is the only thing that can refuse, and it refuses at test time, never at
|
|
76
|
+
runtime. Its over-block risk is flagging an innocent file whose *prose* contains the
|
|
77
|
+
forbidden shape — the known weakness of text checks, and one this codebase has been
|
|
78
|
+
bitten by three times. Closed by stripping comments and string literals first, with a
|
|
79
|
+
test that feeds it this very file's description of the bug and asserts zero matches.
|
|
80
|
+
Both safe forms (`import ssh2 from 'ssh2'`, `import type { … }`) are asserted to pass.
|
|
81
|
+
|
|
82
|
+
## 2. Under-block
|
|
83
|
+
|
|
84
|
+
**The allowlist is manual.** A named value import from some *other* CJS package is
|
|
85
|
+
not caught. Auto-deriving it (reading every dependency's `package.json` type field)
|
|
86
|
+
was considered and rejected for this change: it turns a two-line list into a
|
|
87
|
+
resolution problem with its own failure modes, and would have shipped untested. The
|
|
88
|
+
list is the honest, visible limit. <!-- tracked: CMT-1044 -->
|
|
89
|
+
|
|
90
|
+
**It scans `src/` only.** Scripts, hooks, and templates are not covered.
|
|
91
|
+
|
|
92
|
+
**Loading is not working.** This proves five modules load. Whether `mutualSshRuntime.start()`
|
|
93
|
+
then binds, finds keys, and reaches a peer is untested here and is NOT claimed. The
|
|
94
|
+
precise claim: the channel could not have worked before, and one specific blocker is gone.
|
|
95
|
+
|
|
96
|
+
**The guard cannot see the compiled reality.** A source scan infers the runtime
|
|
97
|
+
failure from the source shape. The direct check — importing built output under Node —
|
|
98
|
+
runs in this review but is not wired into CI, because it requires a build step the
|
|
99
|
+
unit shard does not have.
|
|
100
|
+
|
|
101
|
+
## 3. Level-of-abstraction fit
|
|
102
|
+
|
|
103
|
+
The fix is at the only possible layer: the import statements themselves. The guard sits
|
|
104
|
+
in the unit shard, which is where a cheap always-runs check belongs. A lint rule
|
|
105
|
+
(`eslint-plugin-import`) would be the more conventional home; it is not adopted here
|
|
106
|
+
because the repo has no such plugin configured and adding one is a larger change than
|
|
107
|
+
the bug warrants.
|
|
108
|
+
|
|
109
|
+
## 4. Signal vs authority compliance
|
|
110
|
+
|
|
111
|
+
No runtime authority is introduced or moved. The change removes a load-time crash; it
|
|
112
|
+
adds no gate, no branch, no decision. The test-time scan holds authority over CI only,
|
|
113
|
+
which is the appropriate place for a brittle text check per `docs/signal-vs-authority.md`
|
|
114
|
+
— brittleness is acceptable when the blast radius is a red build, not a blocked action.
|
|
115
|
+
|
|
116
|
+
## 4b. Judgment-point check (Judgment Within Floors standard)
|
|
117
|
+
|
|
118
|
+
None introduced.
|
|
119
|
+
|
|
120
|
+
## 5. Interactions
|
|
121
|
+
|
|
122
|
+
- **`MutualSshRuntime` / mesh transport** — unchanged. This only lets its dependencies load.
|
|
123
|
+
- **`guardRegistry`** — see §6b. Not modified here.
|
|
124
|
+
- **Type imports** — `import type { Connection, Server as SshServerType }` retained in
|
|
125
|
+
`MachineSshEndpoint.ts`; `Server` needed splitting into a value binding and a type
|
|
126
|
+
alias because it is used as both. Caught by `tsc`, not by me.
|
|
127
|
+
|
|
128
|
+
## 6. External surfaces
|
|
129
|
+
|
|
130
|
+
None. No route, no config key, no log line, no user-visible message, no persisted state.
|
|
131
|
+
|
|
132
|
+
## 6b. Operator-surface quality — the finding this change does NOT fix
|
|
133
|
+
|
|
134
|
+
`multiMachine.mutualSsh.enabled` registers itself with `guardRegistry` **inside** the
|
|
135
|
+
try block that threw. So the failure removed itself from the inventory built to catch
|
|
136
|
+
exactly this. Confirmed against the live pre-fix server:
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
total guard rows: 88
|
|
140
|
+
mutualSsh/peerExecution rows: 1 → multiMachine.peerExecution.enabled
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
`mutualSsh` has no row at all — not "off", not "errored", absent. This is the same
|
|
144
|
+
shape as tonight's relay defect (a dropped connection left "connected" as the only
|
|
145
|
+
record): **the defect deletes its own evidence.** Registering guards before the
|
|
146
|
+
fallible construction, so a crashed subsystem still appears as `errored`, is a real
|
|
147
|
+
change to a shared registry and is deliberately not bundled here. <!-- tracked: CMT-1044 -->
|
|
148
|
+
|
|
149
|
+
## 7. Multi-machine posture (Cross-Machine Coherence)
|
|
150
|
+
|
|
151
|
+
Machine-local by design — a module either loads in this process or does not. No
|
|
152
|
+
replication, no lease interaction, no shared state, no generated URL. The *feature*
|
|
153
|
+
being repaired is cross-machine, but this change to it is not.
|
|
154
|
+
|
|
155
|
+
## 8. Rollback cost
|
|
156
|
+
|
|
157
|
+
Low. Five import statements and one test file. No migration, no persisted state, no
|
|
158
|
+
config default, nothing installed into an agent home. Reverting restores the previous
|
|
159
|
+
behaviour exactly — a warning at boot and a dead channel — and the guard would fail
|
|
160
|
+
loudly on the way, which is the intended announcement.
|
|
161
|
+
|
|
162
|
+
## Phase 5 — Second-pass review
|
|
163
|
+
|
|
164
|
+
Touches no block/allow decision, no session lifecycle, no trust level, no gate or
|
|
165
|
+
sentinel, so the high-risk trigger list is not engaged. Author-applied lenses, disclosed:
|
|
166
|
+
|
|
167
|
+
**Adversarial — "how would I make this useless?"** By writing a guard that cannot
|
|
168
|
+
observe the failure. I did exactly that on the first attempt, and only caught it
|
|
169
|
+
because the refusal step is mandatory rather than optional. Recorded in §2 as the
|
|
170
|
+
central lesson rather than quietly replaced.
|
|
171
|
+
|
|
172
|
+
**"Did I fix the symptom or the cause?"** The cause, for the load failure. Not for the
|
|
173
|
+
invisibility — §6b is the cause of *why nobody noticed for so long*, and it is left
|
|
174
|
+
open and tracked rather than half-done.
|
|
175
|
+
|
|
176
|
+
**"Would it have caught the incident?"** The guard would have failed the build the day
|
|
177
|
+
the named import was introduced. It would not have surfaced the boot warning; nothing
|
|
178
|
+
here changes observability.
|
|
179
|
+
|
|
180
|
+
**Weakest point:** §2's last item. The scan infers a runtime property from source
|
|
181
|
+
text. The direct check exists and passes, but runs by hand in this review rather than
|
|
182
|
+
in CI — so the thing CI actually enforces is one inference removed from the thing that
|
|
183
|
+
broke.
|