instar 1.3.194 → 1.3.196

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.
Files changed (44) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +32 -3
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/core/HttpLeaseTransport.d.ts +21 -0
  5. package/dist/core/HttpLeaseTransport.d.ts.map +1 -1
  6. package/dist/core/HttpLeaseTransport.js +58 -1
  7. package/dist/core/HttpLeaseTransport.js.map +1 -1
  8. package/dist/core/LeaseCoordinator.d.ts +38 -0
  9. package/dist/core/LeaseCoordinator.d.ts.map +1 -1
  10. package/dist/core/LeaseCoordinator.js +36 -0
  11. package/dist/core/LeaseCoordinator.js.map +1 -1
  12. package/dist/core/MultiMachineCoordinator.d.ts +39 -0
  13. package/dist/core/MultiMachineCoordinator.d.ts.map +1 -1
  14. package/dist/core/MultiMachineCoordinator.js +130 -4
  15. package/dist/core/MultiMachineCoordinator.js.map +1 -1
  16. package/dist/core/PostUpdateMigrator.js +1 -1
  17. package/dist/core/seamlessnessConfig.d.ts +2 -0
  18. package/dist/core/seamlessnessConfig.d.ts.map +1 -1
  19. package/dist/core/seamlessnessConfig.js +13 -0
  20. package/dist/core/seamlessnessConfig.js.map +1 -1
  21. package/dist/core/types.d.ts +9 -0
  22. package/dist/core/types.d.ts.map +1 -1
  23. package/dist/core/types.js.map +1 -1
  24. package/dist/core/uncaughtExceptionPolicy.d.ts.map +1 -1
  25. package/dist/core/uncaughtExceptionPolicy.js +11 -0
  26. package/dist/core/uncaughtExceptionPolicy.js.map +1 -1
  27. package/dist/scaffold/templates.js +1 -1
  28. package/dist/server/AgentServer.d.ts +6 -0
  29. package/dist/server/AgentServer.d.ts.map +1 -1
  30. package/dist/server/AgentServer.js +1 -0
  31. package/dist/server/AgentServer.js.map +1 -1
  32. package/dist/server/machineRoutes.d.ts +8 -0
  33. package/dist/server/machineRoutes.d.ts.map +1 -1
  34. package/dist/server/machineRoutes.js +12 -0
  35. package/dist/server/machineRoutes.js.map +1 -1
  36. package/package.json +1 -1
  37. package/scripts/check-spec-review-link.mjs +63 -0
  38. package/src/data/builtin-manifest.json +22 -22
  39. package/src/scaffold/templates.ts +1 -1
  40. package/src/templates/scripts/convergence-check.sh +20 -0
  41. package/upgrades/1.3.195.md +33 -0
  42. package/upgrades/1.3.196.md +27 -0
  43. package/upgrades/side-effects/fix-activepull-solo-demotion.md +75 -0
  44. package/upgrades/side-effects/multi-machine-robust-lease-propagation.md +120 -0
@@ -42,6 +42,7 @@ export declare class HttpLeaseTransport implements LeaseTransport {
42
42
  private lastObserved;
43
43
  private lastNonceByHolder;
44
44
  private lastBroadcastOkAt;
45
+ private lastPullOkAt;
45
46
  private readonly windowMs;
46
47
  constructor(deps: HttpLeaseTransportDeps);
47
48
  private now;
@@ -64,5 +65,25 @@ export declare class HttpLeaseTransport implements LeaseTransport {
64
65
  * FencedLease.acceptTunnelLease which reads this map).
65
66
  */
66
67
  recordObserved(lease: LeaseRecord): void;
68
+ /**
69
+ * Active PULL (Cross-Machine Coherence): GET a peer's current lease over the
70
+ * authenticated channel and fold it into our effective view via the SAME
71
+ * recordObserved path the push receiver uses. This lets a standby *ask* for the
72
+ * holder's lease instead of only waiting to be pushed to — so a quiet or one-way
73
+ * network can't blind it. Returns the peer's lease (may name a third machine as
74
+ * holder — re-served), or null when the peer has none / is unreachable.
75
+ *
76
+ * Uses POST /api/lease/pull with a signed empty body: machine-auth is body-hash
77
+ * based (signs SHA256(body)), so a POST with `{}` authenticates cleanly where a
78
+ * GET (whose body fetch would drop) cannot. A successful pull — even one that
79
+ * returns no lease — proves reachability.
80
+ */
81
+ pullPeer(peer: LeasePeer): Promise<LeaseRecord | null>;
82
+ /**
83
+ * Best-effort fan-out pull of every peer's lease. Failures are advisory (a peer
84
+ * being unreachable is data, not an error) — mirrors broadcast()'s tolerance.
85
+ * Cadence/jitter is owned by the caller (the standby loop), not here.
86
+ */
87
+ pullAllPeers(): Promise<void>;
67
88
  }
68
89
  //# sourceMappingURL=HttpLeaseTransport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HttpLeaseTransport.d.ts","sourceRoot":"","sources":["../../src/core/HttpLeaseTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,KAAK,EAAE,MAAM,SAAS,EAAE,CAAC;IACzB,kFAAkF;IAClF,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,iDAAiD;IACjD,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,qFAAqF;IACrF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED,qBAAa,kBAAmB,YAAW,cAAc;IACvD,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAyB;IAC3C,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,IAAI,EAAE,sBAAsB;IAKxC,OAAO,CAAC,GAAG;IAGX,OAAO,CAAC,GAAG;IAIX;;;;OAIG;IACG,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IA6BrD,QAAQ,IAAI;QAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IAIpF,WAAW,IAAI,OAAO;IAItB;;;;;OAKG;IACH,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;CAYzC"}
1
+ {"version":3,"file":"HttpLeaseTransport.d.ts","sourceRoot":"","sources":["../../src/core/HttpLeaseTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,KAAK,EAAE,MAAM,SAAS,EAAE,CAAC;IACzB,kFAAkF;IAClF,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,iDAAiD;IACjD,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,qFAAqF;IACrF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED,qBAAa,kBAAmB,YAAW,cAAc;IACvD,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAyB;IAC3C,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,IAAI,EAAE,sBAAsB;IAKxC,OAAO,CAAC,GAAG;IAGX,OAAO,CAAC,GAAG;IAIX;;;;OAIG;IACG,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IA6BrD,QAAQ,IAAI;QAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IAIpF,WAAW,IAAI,OAAO;IAStB;;;;;OAKG;IACH,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAaxC;;;;;;;;;;;;OAYG;IACG,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IA0B5D;;;;OAIG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAKpC"}
@@ -22,6 +22,7 @@ export class HttpLeaseTransport {
22
22
  lastObserved = null;
23
23
  lastNonceByHolder = {};
24
24
  lastBroadcastOkAt = 0;
25
+ lastPullOkAt = 0;
25
26
  windowMs;
26
27
  constructor(deps) {
27
28
  this.d = deps;
@@ -71,7 +72,12 @@ export class HttpLeaseTransport {
71
72
  return { lease: this.lastObserved, lastNonceByHolder: { ...this.lastNonceByHolder } };
72
73
  }
73
74
  isReachable() {
74
- return this.now() - this.lastBroadcastOkAt <= this.windowMs;
75
+ // Reachability is bidirectional: a successful broadcast (we pushed to a peer) OR
76
+ // a successful pull (we reached a peer to read its lease) both prove a live
77
+ // medium. A standby behind a one-way NAT — can pull but can't be pushed to — is
78
+ // now correctly seen as connected.
79
+ const last = Math.max(this.lastBroadcastOkAt, this.lastPullOkAt);
80
+ return this.now() - last <= this.windowMs;
75
81
  }
76
82
  /**
77
83
  * Record a lease received from a peer (called by the /api/lease endpoint after
@@ -93,5 +99,56 @@ export class HttpLeaseTransport {
93
99
  this.lastObserved = lease;
94
100
  }
95
101
  }
102
+ /**
103
+ * Active PULL (Cross-Machine Coherence): GET a peer's current lease over the
104
+ * authenticated channel and fold it into our effective view via the SAME
105
+ * recordObserved path the push receiver uses. This lets a standby *ask* for the
106
+ * holder's lease instead of only waiting to be pushed to — so a quiet or one-way
107
+ * network can't blind it. Returns the peer's lease (may name a third machine as
108
+ * holder — re-served), or null when the peer has none / is unreachable.
109
+ *
110
+ * Uses POST /api/lease/pull with a signed empty body: machine-auth is body-hash
111
+ * based (signs SHA256(body)), so a POST with `{}` authenticates cleanly where a
112
+ * GET (whose body fetch would drop) cannot. A successful pull — even one that
113
+ * returns no lease — proves reachability.
114
+ */
115
+ async pullPeer(peer) {
116
+ const fetchImpl = this.d.fetchImpl ?? fetch;
117
+ try {
118
+ const body = {};
119
+ const headers = signRequest(this.d.selfMachineId, this.d.signingKeyPem, body, this.d.nextSequence());
120
+ const res = await fetchImpl(`${peer.url.replace(/\/$/, '')}/api/lease/pull`, {
121
+ method: 'POST',
122
+ headers: { 'Content-Type': 'application/json', ...headers },
123
+ body: JSON.stringify(body),
124
+ });
125
+ if (!res || !res.ok)
126
+ return null;
127
+ const data = (await res.json().catch(() => null));
128
+ // A successful response (even one carrying no lease) proves the medium is live.
129
+ this.lastPullOkAt = this.now();
130
+ const lease = data?.lease ?? null;
131
+ if (lease && typeof lease.epoch === 'number') {
132
+ this.recordObserved(lease);
133
+ return lease;
134
+ }
135
+ return null;
136
+ }
137
+ catch (err) {
138
+ this.log(`pull from ${peer.machineId} failed: ${err instanceof Error ? err.message : String(err)}`);
139
+ return null;
140
+ }
141
+ }
142
+ /**
143
+ * Best-effort fan-out pull of every peer's lease. Failures are advisory (a peer
144
+ * being unreachable is data, not an error) — mirrors broadcast()'s tolerance.
145
+ * Cadence/jitter is owned by the caller (the standby loop), not here.
146
+ */
147
+ async pullAllPeers() {
148
+ const peers = this.d.peers();
149
+ if (peers.length === 0)
150
+ return;
151
+ await Promise.all(peers.map((p) => this.pullPeer(p).catch(() => null)));
152
+ }
96
153
  }
97
154
  //# sourceMappingURL=HttpLeaseTransport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HttpLeaseTransport.js","sourceRoot":"","sources":["../../src/core/HttpLeaseTransport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpLeaseTransport.js","sourceRoot":"","sources":["../../src/core/HttpLeaseTransport.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,17 @@ export interface LeaseTransport {
63
63
  };
64
64
  /** Whether the tunnel medium is currently reachable. */
65
65
  isReachable(): boolean;
66
+ /**
67
+ * Cross-Machine Coherence — active PULL of a single peer's current lease over
68
+ * the authenticated channel, folding the result into observed() via the same
69
+ * receive path. Optional: a git-only mesh has no pull-capable transport.
70
+ */
71
+ pullPeer?(peer: {
72
+ machineId: string;
73
+ url: string;
74
+ }): Promise<LeaseRecord | null>;
75
+ /** Best-effort fan-out pull of every peer's lease. Optional (see pullPeer). */
76
+ pullAllPeers?(): Promise<void>;
66
77
  }
67
78
  export interface LeaseCoordinatorDeps {
68
79
  lease: FencedLease;
@@ -153,6 +164,33 @@ export declare class LeaseCoordinator {
153
164
  /** The current effective epoch (for stamping writes/sends). */
154
165
  currentEpoch(): number;
155
166
  currentHolder(): string | null;
167
+ /**
168
+ * The current effective-view signed lease (max of tunnel-observed, git-committed,
169
+ * and this machine's self-issued renewal), or null. Used to SERVE an active PULL
170
+ * (POST /api/lease/pull, Cross-Machine Coherence): a peer asks for our lease and
171
+ * we return this. Includes the holder's self-issued lease (which the transport's
172
+ * observed() — receive-only — does not), so a holder serves its own current lease.
173
+ */
174
+ currentLease(): LeaseRecord | null;
175
+ /**
176
+ * Whether the attached transport can actively PULL peer leases (Cross-Machine
177
+ * Coherence). False on a git-only mesh — the standby pull loop is then a no-op.
178
+ */
179
+ canPullPeers(): boolean;
180
+ /**
181
+ * Active-pull every peer's current lease over the tunnel and fold the freshest
182
+ * into our observed view (the transport's recordObserved path). Safe no-op when
183
+ * the transport has no pull capability. Awaiting this then reading holdsLease()/
184
+ * observedPeerLease() reflects whatever a peer just disclosed.
185
+ */
186
+ pullFromPeers(): Promise<void>;
187
+ /**
188
+ * The RAW lease most-recently observed from a peer (push or pull), independent
189
+ * of our own self-issued/git view. effectiveView()'s max() masks a *same-epoch*
190
+ * peer (our self-issued wins the tie), so the standby pull loop reads this to
191
+ * detect a same-epoch contested split-brain that currentHolder() would hide.
192
+ */
193
+ observedPeerLease(): LeaseRecord | null;
156
194
  /**
157
195
  * Attempt to acquire (or self-renew) the lease if eligible. Returns true if
158
196
  * THIS machine holds the lease afterward. Implements the bounded-retry CAS
@@ -1 +1 @@
1
- {"version":3,"file":"LeaseCoordinator.d.ts","sourceRoot":"","sources":["../../src/core/LeaseCoordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LeaseCoordinator.d.ts","sourceRoot":"","sources":["../../src/core/LeaseCoordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,0DAA0D;AAC1D,MAAM,WAAW,UAAU;IACzB,gEAAgE;IAChE,IAAI,IAAI;QAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,WAAW,GAAG;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE;YAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAC1G;;;;;;;;OAQG;IACH,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC;CACtC;AAED,2DAA2D;AAC3D,MAAM,WAAW,cAAc;IAC7B,mEAAmE;IACnE,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,iFAAiF;IACjF,QAAQ,IAAI;QAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;IACrF,wDAAwD;IACxD,WAAW,IAAI,OAAO,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACjF,+EAA+E;IAC/E,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,wEAAwE;IACxE,mBAAmB,EAAE,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/C;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,kGAAkG;IAClG,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,kBAAkB,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC5F,8EAA8E;IAC9E,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,6FAA6F;IAC7F,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAuB;IACzC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAc;IACjC,OAAO,CAAC,YAAY,CAAK;IACzB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,SAAS,CAAS;IAC1B;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,CAA4B;gBAElC,IAAI,EAAE,oBAAoB;IAMtC,OAAO,CAAC,GAAG;IAGX;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAIpB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAGnB,OAAO,CAAC,GAAG;IAGX,OAAO,CAAC,SAAS;IAIjB,IAAI,aAAa,IAAI,MAAM,CAE1B;IACD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAkCrB,6EAA6E;IAC7E,UAAU,IAAI,OAAO;IAerB,+DAA+D;IAC/D,YAAY,IAAI,MAAM;IAItB,aAAa,IAAI,MAAM,GAAG,IAAI;IAI9B;;;;;;OAMG;IACH,YAAY,IAAI,WAAW,GAAG,IAAI;IAIlC;;;OAGG;IACH,YAAY,IAAI,OAAO;IAIvB;;;;;OAKG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC;;;;;OAKG;IACH,iBAAiB,IAAI,WAAW,GAAG,IAAI;IAIvC;;;;OAIG;IACG,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IA6C3C;;;;;;;;;;;;OAYG;IACG,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BpE;;;;;OAKG;IACG,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;YA2CjB,SAAS;IAUvB,OAAO,CAAC,SAAS;IAOjB;;;;OAIG;IACH,yBAAyB,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI;CAc5D"}
@@ -142,6 +142,42 @@ export class LeaseCoordinator {
142
142
  currentHolder() {
143
143
  return this.effectiveView().lease?.holder ?? null;
144
144
  }
145
+ /**
146
+ * The current effective-view signed lease (max of tunnel-observed, git-committed,
147
+ * and this machine's self-issued renewal), or null. Used to SERVE an active PULL
148
+ * (POST /api/lease/pull, Cross-Machine Coherence): a peer asks for our lease and
149
+ * we return this. Includes the holder's self-issued lease (which the transport's
150
+ * observed() — receive-only — does not), so a holder serves its own current lease.
151
+ */
152
+ currentLease() {
153
+ return this.effectiveView().lease;
154
+ }
155
+ /**
156
+ * Whether the attached transport can actively PULL peer leases (Cross-Machine
157
+ * Coherence). False on a git-only mesh — the standby pull loop is then a no-op.
158
+ */
159
+ canPullPeers() {
160
+ return typeof this.d.tunnel?.pullAllPeers === 'function';
161
+ }
162
+ /**
163
+ * Active-pull every peer's current lease over the tunnel and fold the freshest
164
+ * into our observed view (the transport's recordObserved path). Safe no-op when
165
+ * the transport has no pull capability. Awaiting this then reading holdsLease()/
166
+ * observedPeerLease() reflects whatever a peer just disclosed.
167
+ */
168
+ async pullFromPeers() {
169
+ if (this.d.tunnel?.pullAllPeers)
170
+ await this.d.tunnel.pullAllPeers();
171
+ }
172
+ /**
173
+ * The RAW lease most-recently observed from a peer (push or pull), independent
174
+ * of our own self-issued/git view. effectiveView()'s max() masks a *same-epoch*
175
+ * peer (our self-issued wins the tie), so the standby pull loop reads this to
176
+ * detect a same-epoch contested split-brain that currentHolder() would hide.
177
+ */
178
+ observedPeerLease() {
179
+ return this.d.tunnel?.observed().lease ?? null;
180
+ }
145
181
  /**
146
182
  * Attempt to acquire (or self-renew) the lease if eligible. Returns true if
147
183
  * THIS machine holds the lease afterward. Implements the bounded-retry CAS
@@ -1 +1 @@
1
- {"version":3,"file":"LeaseCoordinator.js","sourceRoot":"","sources":["../../src/core/LeaseCoordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAyEH,MAAM,OAAO,gBAAgB;IACV,CAAC,CAAuB;IACxB,EAAE,CAAc;IACzB,YAAY,GAAG,CAAC,CAAC;IACzB;;;;;;OAMG;IACK,iBAAiB,GAAG,CAAC,CAAC;IACtB,iBAAiB,GAAG,CAAC,CAAC;IACtB,SAAS,GAAG,KAAK,CAAC;IAC1B;;;;;;OAMG;IACK,UAAU,GAAuB,IAAI,CAAC;IAE9C,YAAY,IAA0B;QACpC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QACd,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACrB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,GAAG;QACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACpC,CAAC;IACD;;;;;OAKG;IACK,YAAY;QAClB,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;QACtD,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,QAAU,CAAC,CAAC;IACtD,CAAC;IACD;;;OAGG;IACK,WAAW;QACjB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IAC/C,CAAC;IACO,GAAG,CAAC,CAAS;QACnB,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IACO,SAAS;QACf,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;IAC/B,CAAC;IACD,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACK,aAAa;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC;QAC1B,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QACtB,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACd,wEAAwE;gBACxE,0EAA0E;gBAC1E,0EAA0E;gBAC1E,2EAA2E;gBAC3E,2EAA2E;gBAC3E,yEAAyE;gBACzE,yEAAyE;gBACzE,uEAAuE;gBACvE,2EAA2E;gBAC3E,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,GAAG,GAAG,CAAC,iBAAiB,CAAC;gBAC3E,KAAK,KAAK,CAAC;gBACX,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;gBAC7E,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC;oBAC/C,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC;oBACtB,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QACD,2EAA2E;QAC3E,yEAAyE;QACzE,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC;YACvG,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;YAC5B,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAChC,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IAC1D,CAAC;IAED,6EAA6E;IAC7E,UAAU;QACR,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QAC/E,2EAA2E;QAC3E,4EAA4E;QAC5E,0EAA0E;QAC1E,mEAAmE;QACnE,oEAAoE;QACpE,0EAA0E;QAC1E,wDAAwD;QACxD,IAAI,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAC/E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+DAA+D;IAC/D,YAAY;QACV,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC;IACpC,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,IAAI,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB;QACrB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,oEAAoE;YACpE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC;QAC1C,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,iDAAiD;QACjD,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAClC,qDAAqD;YACrD,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;gBACzG,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;YACtB,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAClE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;gBAClB,IAAI,CAAC,GAAG,CAAC,oBAAoB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBAChD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACrF,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;gBAC5B,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAChC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,2BAA2B,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;gBACvD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,uEAAuE;YACvE,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;YACzC,IAAI,aAAa,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;gBACrC,IAAI,CAAC,GAAG,CAAC,qBAAqB,aAAa,mBAAmB,SAAS,CAAC,KAAK,cAAc,CAAC,CAAC;gBAC7F,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;gBAC9B,0EAA0E;gBAC1E,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG;oBAAE,OAAO,KAAK,CAAC;YAClF,CAAC;YACD,OAAO,EAAE,CAAC;YACV,IAAI,IAAI,CAAC,EAAE,CAAC,4BAA4B,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;gBACpF,IAAI,CAAC,GAAG,CAAC,0BAA0B,OAAO,2BAA2B,IAAI,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC;gBAC5F,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,gBAAgB,CAAC,kBAA0B;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,IAAI,CAAC;QAC1C,IAAI,MAAM,IAAI,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,CAAC,+BAA+B;QAC9C,CAAC;QACD,IAAI,MAAM,IAAI,MAAM,KAAK,kBAAkB,EAAE,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,uCAAuC,kBAAkB,0BAA0B,MAAM,EAAE,CAAC,CAAC;YACtG,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACrF,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YACX,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAC5B,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAChC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,sCAAsC,SAAS,CAAC,KAAK,gBAAgB,kBAAkB,GAAG,CAAC,CAAC;YACrG,OAAO,IAAI,CAAC;QACd,CAAC;QACD,gFAAgF;QAChF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC,qCAAqC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa;YAAE,OAAO,KAAK,CAAC;QAE1E,wEAAwE;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAC/B,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK,CAAC,UAAU,EACrB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,EAClD,IAAI,CAAC,SAAS,EAAE,CACjB,CAAC;QAEF,4EAA4E;QAC5E,2EAA2E;QAC3E,wEAAwE;QACxE,uEAAuE;QACvE,oEAAoE;QACpE,IAAI,SAAkB,CAAC;QACvB,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAClB,SAAS,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YACjE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CACpB,gCAAgC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,sBAAsB,IAAI,CAAC,EAAE,CAAC,KAAK,+BAA+B,CACnI,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;YACvD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,yEAAyE;QACzE,sEAAsE;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,KAAkB;QACxC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;YAAE,OAAO;QAC3B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,EAAE;gBAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,qBAAqB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,KAAa;QAC7B,IAAI,KAAK,KAAK,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,yBAAyB,CAAC,kBAA0B;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3E,IAAI,UAAU,IAAI,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;YAC5E,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;gBAClB,kBAAkB;gBAClB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;gBACzB,MAAM,EAAE,gFAAgF;aACzF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"LeaseCoordinator.js","sourceRoot":"","sources":["../../src/core/LeaseCoordinator.ts"],"names":[],"mappings":"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"}
@@ -72,6 +72,18 @@ export declare class MultiMachineCoordinator extends EventEmitter {
72
72
  */
73
73
  private leaseCoordinator;
74
74
  private leaseTicking;
75
+ /**
76
+ * Cross-Machine Coherence — the active lease-PULL loop. A self-rearming
77
+ * (jittered) timer that asks each peer for its current lease at a constant
78
+ * cadence, independent of holder liveness. `leasePullContested` latches a
79
+ * pull-discovered same-epoch split-brain for the Near-Silent surface
80
+ * (getSyncStatus → dashboard) that the registry awakeMachineCount misses in a
81
+ * git-less mesh where each machine only sees itself as awake.
82
+ */
83
+ private leasePullTimer;
84
+ private leasePulling;
85
+ private leasePullContested;
86
+ private leasePullStopped;
75
87
  constructor(state: StateManager, config: CoordinatorConfig);
76
88
  /** Whether multi-machine is enabled (has identity). */
77
89
  get enabled(): boolean;
@@ -187,6 +199,33 @@ export declare class MultiMachineCoordinator extends EventEmitter {
187
199
  private tickLease;
188
200
  /** Bring _role + read-only into line with whether we hold the lease. */
189
201
  private reconcileRoleToLease;
202
+ /**
203
+ * Start the constant-cadence active lease-PULL loop. Self-rearming setTimeout
204
+ * (jittered ±20% so peers don't synchronize their pulls). Runs at
205
+ * leasePullIntervalMs (default 5s) REGARDLESS of holder liveness — the
206
+ * anti-blinding guarantee that a quiet or one-way (NAT) network can't hide a
207
+ * takeover or a same-epoch split-brain. No-op when the transport can't pull
208
+ * (git-only mesh). Tier-0: no LLM; a failed pull is data, retried next tick.
209
+ */
210
+ private startLeasePullLoop;
211
+ /**
212
+ * One pull tick: fan-out pull every peer, fold the freshest lease into our
213
+ * view, reconcile role (a pulled HIGHER-epoch peer fences us → auto-demote),
214
+ * then surface a SAME-epoch contested split-brain Near-Silently. Pull is for
215
+ * LEARNING (anti-blinding); the heartbeat tickLease remains the only path that
216
+ * ACTS (acquire/renew). Re-arms via `arm` even on failure.
217
+ */
218
+ private tickLeasePull;
219
+ /**
220
+ * Near-Silent split-brain surface. After a pull, if we STILL hold the lease yet
221
+ * a peer's RAW observed lease names a different holder at our epoch (a same-epoch
222
+ * tie a git-less LocalLeaseStore can produce — effectiveView()'s tie-break masks
223
+ * it because our self-issued lease wins), latch `leasePullContested` and log once
224
+ * on the rising edge. This feeds getSyncStatus().splitBrainState='contested' for
225
+ * the dashboard; it does NOT buzz the user (the unresolvable-partition Attention
226
+ * item is a separate, deduped escalation path). Clears on the falling edge.
227
+ */
228
+ private surfacePullDiscoveredSplitBrain;
190
229
  /**
191
230
  * Start periodic heartbeat writes (awake machine only).
192
231
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MultiMachineCoordinator.d.ts","sourceRoot":"","sources":["../../src/core/MultiMachineCoordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MultiMachineCoordinator.d.ts","sourceRoot":"","sources":["../../src/core/MultiMachineCoordinator.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,8 @@ import { SEAMLESSNESS_PROTOCOL_VERSION } from './seamlessnessConfig.js';
24
24
  const HEARTBEAT_WRITE_INTERVAL_MS = 2 * 60_000; // Write heartbeat every 2 min
25
25
  const HEARTBEAT_CHECK_INTERVAL_MS = 2 * 60_000; // Check heartbeat every 2 min
26
26
  const DEFAULT_FAILOVER_TIMEOUT_MS = 15 * 60_000; // 15 min before failover
27
+ /** Cross-Machine Coherence — default active lease-PULL cadence over the tunnel. */
28
+ const DEFAULT_LEASE_PULL_INTERVAL_MS = 5_000;
27
29
  // ── Coordinator ──────────────────────────────────────────────────────
28
30
  export class MultiMachineCoordinator extends EventEmitter {
29
31
  identityManager;
@@ -48,6 +50,18 @@ export class MultiMachineCoordinator extends EventEmitter {
48
50
  */
49
51
  leaseCoordinator = null;
50
52
  leaseTicking = false;
53
+ /**
54
+ * Cross-Machine Coherence — the active lease-PULL loop. A self-rearming
55
+ * (jittered) timer that asks each peer for its current lease at a constant
56
+ * cadence, independent of holder liveness. `leasePullContested` latches a
57
+ * pull-discovered same-epoch split-brain for the Near-Silent surface
58
+ * (getSyncStatus → dashboard) that the registry awakeMachineCount misses in a
59
+ * git-less mesh where each machine only sees itself as awake.
60
+ */
61
+ leasePullTimer = null;
62
+ leasePulling = false;
63
+ leasePullContested = false;
64
+ leasePullStopped = false;
51
65
  constructor(state, config) {
52
66
  super();
53
67
  this.state = state;
@@ -222,6 +236,11 @@ export class MultiMachineCoordinator extends EventEmitter {
222
236
  clearInterval(this.heartbeatCheckTimer);
223
237
  this.heartbeatCheckTimer = null;
224
238
  }
239
+ this.leasePullStopped = true;
240
+ if (this.leasePullTimer) {
241
+ clearTimeout(this.leasePullTimer);
242
+ this.leasePullTimer = null;
243
+ }
225
244
  this.nonceStore.destroy();
226
245
  }
227
246
  // ── Role Transitions ─────────────────────────────────────────────
@@ -360,7 +379,7 @@ export class MultiMachineCoordinator extends EventEmitter {
360
379
  const selfSuspended = this.leaseCoordinator?.isSuspended ?? false;
361
380
  const splitBrainState = selfSuspended
362
381
  ? 'self-suspended'
363
- : awakeMachineCount > 1
382
+ : (awakeMachineCount > 1 || this.leasePullContested)
364
383
  ? 'contested'
365
384
  : 'clear';
366
385
  return {
@@ -384,10 +403,16 @@ export class MultiMachineCoordinator extends EventEmitter {
384
403
  if (this.isLeaseObserveOnly) {
385
404
  // Silent standby: do NOT acquire — only observe the primary's lease.
386
405
  this.reconcileRoleToLease('lease-init-observe-only');
387
- return;
388
406
  }
389
- await this.leaseCoordinator.acquireIfEligible();
390
- this.reconcileRoleToLease('lease-init');
407
+ else {
408
+ await this.leaseCoordinator.acquireIfEligible();
409
+ this.reconcileRoleToLease('lease-init');
410
+ }
411
+ // Cross-Machine Coherence — start the active pull loop on every machine once
412
+ // the lease is attached. Pulling is read-only and benefits all roles (a
413
+ // standby learns of a takeover it was never pushed; a holder learns of a
414
+ // same-epoch contender). No-op when the transport can't pull (git-only mesh).
415
+ this.startLeasePullLoop();
391
416
  }
392
417
  /**
393
418
  * Acquire the lease on an explicit yield from the outgoing holder (planned
@@ -465,6 +490,107 @@ export class MultiMachineCoordinator extends EventEmitter {
465
490
  this.emit('demote');
466
491
  console.log(`[MultiMachine] Lease reconcile → ${desired} (${reason})`);
467
492
  }
493
+ // ── Cross-Machine Coherence: active lease PULL ───────────────────
494
+ /**
495
+ * Start the constant-cadence active lease-PULL loop. Self-rearming setTimeout
496
+ * (jittered ±20% so peers don't synchronize their pulls). Runs at
497
+ * leasePullIntervalMs (default 5s) REGARDLESS of holder liveness — the
498
+ * anti-blinding guarantee that a quiet or one-way (NAT) network can't hide a
499
+ * takeover or a same-epoch split-brain. No-op when the transport can't pull
500
+ * (git-only mesh). Tier-0: no LLM; a failed pull is data, retried next tick.
501
+ */
502
+ startLeasePullLoop() {
503
+ // Defensive: an injected coordinator may not implement the pull API (a
504
+ // partial test double, or a build predating active-pull) — never assume it.
505
+ if (!this.leaseCoordinator || typeof this.leaseCoordinator.canPullPeers !== 'function' || !this.leaseCoordinator.canPullPeers())
506
+ return;
507
+ if (this.leasePullTimer)
508
+ return; // already running
509
+ this.leasePullStopped = false;
510
+ const base = this.config.multiMachine?.leasePullIntervalMs ?? DEFAULT_LEASE_PULL_INTERVAL_MS;
511
+ const arm = () => {
512
+ // Respect a stop() that landed while a tick was in-flight (its finally
513
+ // re-arms; this prevents the timer resurrecting after shutdown).
514
+ if (this.leasePullStopped)
515
+ return;
516
+ // ±20% jitter to de-synchronize peer pulls (floor 1s so a tiny config
517
+ // can't busy-loop).
518
+ const jitter = base * 0.2 * (Math.random() * 2 - 1);
519
+ const delay = Math.max(1_000, Math.round(base + jitter));
520
+ this.leasePullTimer = setTimeout(() => { void this.tickLeasePull(arm); }, delay);
521
+ if (this.leasePullTimer.unref)
522
+ this.leasePullTimer.unref();
523
+ };
524
+ arm();
525
+ }
526
+ /**
527
+ * One pull tick: fan-out pull every peer, fold the freshest lease into our
528
+ * view, reconcile role (a pulled HIGHER-epoch peer fences us → auto-demote),
529
+ * then surface a SAME-epoch contested split-brain Near-Silently. Pull is for
530
+ * LEARNING (anti-blinding); the heartbeat tickLease remains the only path that
531
+ * ACTS (acquire/renew). Re-arms via `arm` even on failure.
532
+ */
533
+ async tickLeasePull(arm) {
534
+ if (this.leasePulling) {
535
+ arm();
536
+ return;
537
+ }
538
+ this.leasePulling = true;
539
+ try {
540
+ await this.leaseCoordinator.pullFromPeers();
541
+ // Only reconcile role / surface split-brain when a peer lease was actually
542
+ // OBSERVED. A solo machine (no peers, or no peer lease seen this boot) must
543
+ // NEVER be demoted by the pull loop on a transient self-lease lapse — that
544
+ // is the heartbeat tickLease's job, which RE-ACQUIRES rather than just
545
+ // demoting. The pull's purpose is LEARNING from peers; with no peer signal
546
+ // there is nothing to learn and nothing to reconcile. Acting on the local
547
+ // lease state alone here turned the ~5s pull cadence into a demotion DoS:
548
+ // whenever a solo holder's lease momentarily lapsed between renewals it
549
+ // flipped to read-only standby, and a standby write crashed the server in a
550
+ // restart loop (incident 2026-06-02). Gating on an observed peer lease keeps
551
+ // the real feature intact (a standby pulling a higher-epoch holder still
552
+ // demotes) while removing the spurious solo demotion.
553
+ if (this.leaseCoordinator.observedPeerLease()) {
554
+ this.reconcileRoleToLease('lease-pull');
555
+ this.surfacePullDiscoveredSplitBrain();
556
+ }
557
+ }
558
+ catch {
559
+ // @silent-fallback-ok — a pull failure is retried next tick
560
+ }
561
+ finally {
562
+ this.leasePulling = false;
563
+ arm();
564
+ }
565
+ }
566
+ /**
567
+ * Near-Silent split-brain surface. After a pull, if we STILL hold the lease yet
568
+ * a peer's RAW observed lease names a different holder at our epoch (a same-epoch
569
+ * tie a git-less LocalLeaseStore can produce — effectiveView()'s tie-break masks
570
+ * it because our self-issued lease wins), latch `leasePullContested` and log once
571
+ * on the rising edge. This feeds getSyncStatus().splitBrainState='contested' for
572
+ * the dashboard; it does NOT buzz the user (the unresolvable-partition Attention
573
+ * item is a separate, deduped escalation path). Clears on the falling edge.
574
+ */
575
+ surfacePullDiscoveredSplitBrain() {
576
+ if (!this.leaseCoordinator || !this._identity)
577
+ return;
578
+ const self = this._identity.machineId;
579
+ const weHold = this.leaseCoordinator.holdsLease();
580
+ const peer = this.leaseCoordinator.observedPeerLease();
581
+ const ourEpoch = this.leaseCoordinator.currentEpoch();
582
+ const contested = !!(weHold && peer && peer.holder && peer.holder !== self && peer.epoch >= ourEpoch);
583
+ if (contested && !this.leasePullContested) {
584
+ this.leasePullContested = true;
585
+ console.warn(`[MultiMachine] lease-pull: same-epoch contested lease — peer ${peer.holder} ` +
586
+ `claims epoch ${peer.epoch} while we hold epoch ${ourEpoch} (near-silent split-brain signal)`);
587
+ this.emit('splitBrainDetected', { peer: peer.holder, peerEpoch: peer.epoch, ourEpoch });
588
+ }
589
+ else if (!contested && this.leasePullContested) {
590
+ this.leasePullContested = false;
591
+ console.log('[MultiMachine] lease-pull: contested lease cleared');
592
+ }
593
+ }
468
594
  // ── Private ──────────────────────────────────────────────────────
469
595
  /**
470
596
  * Start periodic heartbeat writes (awake machine only).
@@ -1 +1 @@
1
- {"version":3,"file":"MultiMachineCoordinator.js","sourceRoot":"","sources":["../../src/core/MultiMachineCoordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MultiMachineCoordinator.js","sourceRoot":"","sources":["../../src/core/MultiMachineCoordinator.ts"],"names":[],"mappings":"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"}
@@ -2558,7 +2558,7 @@ What this means for how I behave:
2558
2558
  Where to look (never guess mesh state — read it):
2559
2559
  - \`GET /health\` → \`multiMachine.syncStatus\` = \`{ leaseHolder, leaseEpoch, holdsLease, splitBrainState, awakeMachineCount, protocolVersion }\`. \`instar doctor\` surfaces the same.
2560
2560
  - A genuinely **unresolvable split-brain** (a machine looks alive but unreachable, so the lease can't move) surfaces as a single **Attention-queue** item with a Y/N decision ("demote machine X?") — it is deduped per partition episode, never per heartbeat. If I see one, I present the data and the decision to the user; I do not silently pick.
2561
- - Dials live under \`.instar/config.json\` → \`multiMachine\` (ingressHeartbeatMs, leaseTtlMs, liveTailMaxStalenessMs, handoffAckTimeoutMs, …). A nonsensical combination is rejected at startup with a clear message rather than degrading silently.
2561
+ - Dials live under \`.instar/config.json\` → \`multiMachine\` (ingressHeartbeatMs, leaseTtlMs, leasePullIntervalMs, liveTailMaxStalenessMs, handoffAckTimeoutMs, …). A nonsensical combination is rejected at startup with a clear message rather than degrading silently.
2562
2562
  `;
2563
2563
  content += '\n' + seamlessnessSection;
2564
2564
  patched = true;
@@ -22,6 +22,8 @@ export interface ResolvedSeamlessnessConfig {
22
22
  ingressHeartbeatMs: number;
23
23
  registrySyncDebounceMs: number;
24
24
  standbyPullIntervalMs: number;
25
+ /** Cross-Machine Coherence — active lease-PULL cadence over the tunnel. */
26
+ leasePullIntervalMs: number;
25
27
  failoverThresholdMs: number;
26
28
  leaseTtlMs: number;
27
29
  liveTailTransport: 'tunnel' | 'git';