instar 1.3.633 → 1.3.634

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 (73) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +59 -4
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/config/ConfigDefaults.d.ts.map +1 -1
  5. package/dist/config/ConfigDefaults.js +18 -1
  6. package/dist/config/ConfigDefaults.js.map +1 -1
  7. package/dist/core/LeaseCoordinator.d.ts +7 -0
  8. package/dist/core/LeaseCoordinator.d.ts.map +1 -1
  9. package/dist/core/LeaseCoordinator.js +9 -0
  10. package/dist/core/LeaseCoordinator.js.map +1 -1
  11. package/dist/core/MachinePoolRegistry.d.ts +8 -0
  12. package/dist/core/MachinePoolRegistry.d.ts.map +1 -1
  13. package/dist/core/MachinePoolRegistry.js +1 -0
  14. package/dist/core/MachinePoolRegistry.js.map +1 -1
  15. package/dist/core/MultiMachineCoordinator.d.ts +69 -0
  16. package/dist/core/MultiMachineCoordinator.d.ts.map +1 -1
  17. package/dist/core/MultiMachineCoordinator.js +183 -0
  18. package/dist/core/MultiMachineCoordinator.js.map +1 -1
  19. package/dist/core/churnBreaker.d.ts +68 -0
  20. package/dist/core/churnBreaker.d.ts.map +1 -0
  21. package/dist/core/churnBreaker.js +98 -0
  22. package/dist/core/churnBreaker.js.map +1 -0
  23. package/dist/core/clockSkewAlarm.d.ts +61 -0
  24. package/dist/core/clockSkewAlarm.d.ts.map +1 -0
  25. package/dist/core/clockSkewAlarm.js +68 -0
  26. package/dist/core/clockSkewAlarm.js.map +1 -0
  27. package/dist/core/configCoherence.d.ts +39 -0
  28. package/dist/core/configCoherence.d.ts.map +1 -0
  29. package/dist/core/configCoherence.js +52 -0
  30. package/dist/core/configCoherence.js.map +1 -0
  31. package/dist/core/leaseLiveness.d.ts +42 -0
  32. package/dist/core/leaseLiveness.d.ts.map +1 -0
  33. package/dist/core/leaseLiveness.js +34 -0
  34. package/dist/core/leaseLiveness.js.map +1 -0
  35. package/dist/core/pollIntent.d.ts +65 -0
  36. package/dist/core/pollIntent.d.ts.map +1 -0
  37. package/dist/core/pollIntent.js +112 -0
  38. package/dist/core/pollIntent.js.map +1 -0
  39. package/dist/core/pollerCount.d.ts +61 -0
  40. package/dist/core/pollerCount.d.ts.map +1 -0
  41. package/dist/core/pollerCount.js +62 -0
  42. package/dist/core/pollerCount.js.map +1 -0
  43. package/dist/core/types.d.ts +57 -1
  44. package/dist/core/types.d.ts.map +1 -1
  45. package/dist/core/types.js.map +1 -1
  46. package/dist/lifeline/TelegramLifeline.d.ts +18 -0
  47. package/dist/lifeline/TelegramLifeline.d.ts.map +1 -1
  48. package/dist/lifeline/TelegramLifeline.js +99 -0
  49. package/dist/lifeline/TelegramLifeline.js.map +1 -1
  50. package/dist/lifeline/pollDecision.d.ts +47 -0
  51. package/dist/lifeline/pollDecision.d.ts.map +1 -0
  52. package/dist/lifeline/pollDecision.js +50 -0
  53. package/dist/lifeline/pollDecision.js.map +1 -0
  54. package/dist/server/routes.d.ts.map +1 -1
  55. package/dist/server/routes.js +17 -0
  56. package/dist/server/routes.js.map +1 -1
  57. package/package.json +1 -1
  58. package/src/data/builtin-manifest.json +48 -48
  59. package/upgrades/1.3.634.md +59 -0
  60. package/upgrades/side-effects/mm-lease-poll-robustness-b1-lifeline-consumer.md +43 -0
  61. package/upgrades/side-effects/mm-lease-poll-robustness-b1-poll-decision.md +38 -0
  62. package/upgrades/side-effects/mm-lease-poll-robustness-b1-poll-intent-producer.md +37 -0
  63. package/upgrades/side-effects/mm-lease-poll-robustness-b2-churn-breaker.md +42 -0
  64. package/upgrades/side-effects/mm-lease-poll-robustness-b3-renew-timer.md +43 -0
  65. package/upgrades/side-effects/mm-lease-poll-robustness-b4-clockskew-alarm-core.md +25 -0
  66. package/upgrades/side-effects/mm-lease-poll-robustness-b4-d9-freeze-vs-skew.md +71 -0
  67. package/upgrades/side-effects/mm-lease-poll-robustness-b4-skew-immune-liveness.md +41 -0
  68. package/upgrades/side-effects/mm-lease-poll-robustness-b5-poller-count-route.md +24 -0
  69. package/upgrades/side-effects/mm-lease-poll-robustness-b5-poller-count.md +38 -0
  70. package/upgrades/side-effects/mm-lease-poll-robustness-b5-pollingactive-heartbeat.md +38 -0
  71. package/upgrades/side-effects/mm-lease-poll-robustness-ci-housekeeping.md +17 -0
  72. package/upgrades/side-effects/mm-lease-poll-robustness-config-coherence.md +23 -0
  73. package/upgrades/1.3.633.md +0 -37
@@ -21,6 +21,9 @@ import { SecurityLog } from './SecurityLog.js';
21
21
  import { NonceStore } from './NonceStore.js';
22
22
  import { SEAMLESSNESS_PROTOCOL_VERSION } from './seamlessnessConfig.js';
23
23
  import { FailureEpisodeLatch } from './FailureEpisodeLatch.js';
24
+ import { ChurnBreaker } from './churnBreaker.js';
25
+ import { writePollIntent } from './pollIntent.js';
26
+ import { resolveDevAgentGate } from './devAgentGate.js';
24
27
  import { DegradationReporter } from '../monitoring/DegradationReporter.js';
25
28
  // ── Constants ────────────────────────────────────────────────────────
26
29
  const HEARTBEAT_WRITE_INTERVAL_MS = 2 * 60_000; // Write heartbeat every 2 min
@@ -29,6 +32,15 @@ const TICK_WATCHDOG_INTERVAL_MS = 60_000; // F1b — independent tick-stall watc
29
32
  const DEFAULT_FAILOVER_TIMEOUT_MS = 15 * 60_000; // 15 min before failover
30
33
  /** Cross-Machine Coherence — default active lease-PULL cadence over the tunnel. */
31
34
  const DEFAULT_LEASE_PULL_INTERVAL_MS = 5_000;
35
+ /**
36
+ * B3 (multimachine-lease-poll-robustness) — the dedicated renew timer fires at
37
+ * `clamp(leaseTtlMs × RENEW_SAFETY_FACTOR, [MIN, MAX])` so a holder renews (same
38
+ * epoch) BEFORE its lease lapses, instead of re-acquiring at epoch+1 on the slow
39
+ * heartbeat tick. Default TTL 60s → 30s renew cadence (well under TTL).
40
+ */
41
+ const RENEW_SAFETY_FACTOR = 0.5;
42
+ const MIN_RENEW_INTERVAL_MS = 5_000;
43
+ const MAX_RENEW_INTERVAL_MS = 60_000;
32
44
  // ── Coordinator ──────────────────────────────────────────────────────
33
45
  export class MultiMachineCoordinator extends EventEmitter {
34
46
  identityManager;
@@ -56,6 +68,26 @@ export class MultiMachineCoordinator extends EventEmitter {
56
68
  */
57
69
  hbWriteEpisode = new FailureEpisodeLatch({ signalAfterMs: 6 * 60_000 });
58
70
  heartbeatCheckTimer = null;
71
+ /**
72
+ * B3 (multimachine-lease-poll-robustness) — dedicated renew timer (TTL/2),
73
+ * decoupled from the slow heartbeat-check timer so a held lease never lapses
74
+ * between renewals. Null unless resilientRenew resolves on (dev-gate) AND a
75
+ * leaseCoordinator is attached.
76
+ */
77
+ leaseRenewTimer = null;
78
+ leaseRenewing = false;
79
+ leaseRenewStartLogged = false;
80
+ /**
81
+ * B2 (multimachine-lease-poll-robustness, Decision 8) — the lease flap
82
+ * circuit-breaker. Lazily built when the churnDetector gate resolves on.
83
+ */
84
+ churnBreaker = null;
85
+ /**
86
+ * B1 (multimachine-lease-poll-robustness, Decision 5) — a per-PROCESS boot id
87
+ * stamped into the poll-intent file so the lifeline can tell a current intent
88
+ * from one left by a prior incarnation of this server.
89
+ */
90
+ bootId = `${process.pid}-${process.hrtime.bigint().toString(36)}`;
59
91
  /** Integrated-Being v1 — tracks whether we've already emitted the
60
92
  * per-machine-ledger warning this boot. Spec §Multi-machine. */
61
93
  integratedBeingWarningEmitted = false;
@@ -327,6 +359,10 @@ export class MultiMachineCoordinator extends EventEmitter {
327
359
  clearTimeout(this.leasePullTimer);
328
360
  this.leasePullTimer = null;
329
361
  }
362
+ if (this.leaseRenewTimer) {
363
+ clearInterval(this.leaseRenewTimer);
364
+ this.leaseRenewTimer = null;
365
+ }
330
366
  this.nonceStore.destroy();
331
367
  }
332
368
  // ── Role Transitions ─────────────────────────────────────────────
@@ -433,6 +469,122 @@ export class MultiMachineCoordinator extends EventEmitter {
433
469
  attachLeaseCoordinator(lc) {
434
470
  this.leaseCoordinator = lc;
435
471
  }
472
+ /**
473
+ * B2 — the churn breaker, gated by `leaseSelfHeal.churnDetector` (OMIT `enabled`
474
+ * ⇒ developmentAgent gate). Returns null when off. Uses the monotonic clock so a
475
+ * wall-clock step can't fake or mask a flap.
476
+ */
477
+ getChurnBreaker() {
478
+ const c = this.config.multiMachine?.leaseSelfHeal?.churnDetector;
479
+ const enabled = resolveDevAgentGate(c?.enabled, this.config);
480
+ if (!enabled) {
481
+ this.churnBreaker = null;
482
+ return null;
483
+ }
484
+ if (!this.churnBreaker) {
485
+ this.churnBreaker = new ChurnBreaker({ maxFlipsPerWindow: c?.maxFlipsPerWindow, windowMs: c?.windowMs, maxLatchesPerHour: c?.maxLatchesPerHour }, () => this.monoNowMs());
486
+ }
487
+ return this.churnBreaker;
488
+ }
489
+ /**
490
+ * B1 — resolve the pollFollowsLease gate. OMIT `enabled` ⇒ developmentAgent
491
+ * gate. When on, the server writes its lease-derived poll intent to the
492
+ * cross-process file so the lifeline can follow the lease at runtime.
493
+ */
494
+ pollFollowsLeaseEnabled() {
495
+ const m = this.config.multiMachine;
496
+ return resolveDevAgentGate(m?.pollFollowsLease?.enabled, this.config);
497
+ }
498
+ /**
499
+ * B1 — write the lease-derived poll intent for the lifeline. No-op when the gate
500
+ * is off. Guarded: a write failure is logged once, never thrown into the
501
+ * caller's hot path (the intent file is advisory; a missed write degrades to the
502
+ * lifeline's "no current opinion" → hold, the safe direction).
503
+ */
504
+ writeLeasePollIntent(shouldPoll, role) {
505
+ if (!this.pollFollowsLeaseEnabled() || !this.leaseCoordinator)
506
+ return;
507
+ try {
508
+ writePollIntent(this.config.stateDir, {
509
+ shouldPoll,
510
+ leaseEpoch: this.leaseCoordinator.currentEpoch(),
511
+ role: role === 'awake' ? 'awake' : 'standby',
512
+ serverPid: process.pid,
513
+ bootId: this.bootId,
514
+ ts: Date.now(),
515
+ });
516
+ }
517
+ catch (err) {
518
+ console.log(`[MultiMachine] [poll-intent] write failed (non-fatal): ${err.message}`);
519
+ }
520
+ }
521
+ /**
522
+ * B3 — resolve the resilientRenew gate. OMITTED `enabled` ⇒ developmentAgent
523
+ * gate (live-on-dev / dark-on-fleet); an explicit boolean wins. Read live so a
524
+ * config flip applies on the next renew tick without a restart.
525
+ */
526
+ resilientRenewEnabled() {
527
+ const explicit = this.config.multiMachine?.leaseSelfHeal?.resilientRenew?.enabled;
528
+ return resolveDevAgentGate(explicit, this.config);
529
+ }
530
+ /** B3 — the renew cadence, clamped so it is always comfortably under the TTL. */
531
+ renewIntervalMs() {
532
+ const ttl = this.leaseCoordinator?.ttlMs ?? MAX_RENEW_INTERVAL_MS * 2;
533
+ return Math.max(MIN_RENEW_INTERVAL_MS, Math.min(MAX_RENEW_INTERVAL_MS, Math.round(ttl * RENEW_SAFETY_FACTOR)));
534
+ }
535
+ /**
536
+ * B3 — start the dedicated renew timer. No-op unless a leaseCoordinator is
537
+ * attached AND resilientRenew resolves on. Keeps the held lease fresh (renew =
538
+ * same epoch) so it never lapses between the slow heartbeat ticks → the
539
+ * epoch-climb stops. Pure timing: it only renews a lease THIS machine already
540
+ * holds; it never acquires, never relaxes the monotonic self-fence.
541
+ */
542
+ startLeaseRenewTimer() {
543
+ if (this.leaseRenewTimer) {
544
+ clearInterval(this.leaseRenewTimer);
545
+ this.leaseRenewTimer = null;
546
+ }
547
+ if (!this.leaseCoordinator || !this.resilientRenewEnabled())
548
+ return;
549
+ const interval = this.renewIntervalMs();
550
+ if (!this.leaseRenewStartLogged) {
551
+ console.log(`[MultiMachine] lease renew timer armed (every ${interval}ms; TTL ${this.leaseCoordinator.ttlMs}ms) — B3 resilient renew`);
552
+ this.leaseRenewStartLogged = true;
553
+ }
554
+ this.leaseRenewTimer = setInterval(() => { void this.leaseRenewTick(); }, interval);
555
+ if (this.leaseRenewTimer.unref)
556
+ this.leaseRenewTimer.unref();
557
+ }
558
+ /**
559
+ * B3 — one renew tick. Renews ONLY when this machine currently holds the lease
560
+ * (same-epoch refresh); a non-holder is left entirely to tickLease's acquire
561
+ * path. Re-entrancy-guarded and bounded by withTickTimeout so a hung broadcast
562
+ * can't wedge the timer.
563
+ */
564
+ async leaseRenewTick() {
565
+ if (this.leaseRenewing || !this.leaseCoordinator)
566
+ return;
567
+ // A muted/observe-only machine NEVER renews — same rule tickLease's
568
+ // observe-only branch enforces. Without this, a machine that booted
569
+ // observe-only while still NAMED in a persisted prior lease (the F3
570
+ // silent-standby zombie) would have its lease renewed/re-broadcast here for
571
+ // up to ~TTL, fighting the silent-standby-relinquish self-heal. (2nd-pass.)
572
+ if (this.isLeaseObserveOnly)
573
+ return;
574
+ // Only a current holder renews. A lapsed/non-holder is acquireIfEligible's job.
575
+ if (!this.leaseCoordinator.holdsLease())
576
+ return;
577
+ this.leaseRenewing = true;
578
+ try {
579
+ await this.withTickTimeout('lease-renew', () => this.leaseCoordinator.renew());
580
+ }
581
+ catch (err) {
582
+ console.log(`[MultiMachine] lease renew tick error (non-fatal): ${err.message}`);
583
+ }
584
+ finally {
585
+ this.leaseRenewing = false;
586
+ }
587
+ }
436
588
  /** Whether this machine structurally holds the lease (false if none attached). */
437
589
  holdsLease() {
438
590
  return this.leaseCoordinator?.holdsLease() ?? this._role === 'awake';
@@ -544,6 +696,13 @@ export class MultiMachineCoordinator extends EventEmitter {
544
696
  // standby learns of a takeover it was never pushed; a holder learns of a
545
697
  // same-epoch contender). No-op when the transport can't pull (git-only mesh).
546
698
  this.startLeasePullLoop();
699
+ // B3 — keep the held lease fresh (renew before it lapses) so the epoch stops
700
+ // climbing. No-op unless resilientRenew resolves on (dev-gate).
701
+ this.startLeaseRenewTimer();
702
+ // B1 — at boot the role isn't yet reconciled; publish the SAFE default
703
+ // (shouldPoll:false / mute) so a stale prior-boot {shouldPoll:true} can't
704
+ // resurrect a poller before the first reconcile decides the real role.
705
+ this.writeLeasePollIntent(false, 'standby');
547
706
  }
548
707
  /**
549
708
  * Acquire the lease on an explicit yield from the outgoing holder (planned
@@ -568,6 +727,9 @@ export class MultiMachineCoordinator extends EventEmitter {
568
727
  return;
569
728
  this.leaseTicking = true;
570
729
  this.leaseTickStartMonoMs = this.monoNowMs(); // F1b — for the watchdog's ceiling-gated guard reset
730
+ // B2 — advance the churn breaker so a settled system auto-resets the latch
731
+ // after a calm window (no-op when the churnDetector gate is off).
732
+ this.getChurnBreaker()?.tick();
571
733
  try {
572
734
  if (this.isLeaseObserveOnly) {
573
735
  // F3 (silentStandbyRelinquish, DARK) — LEVEL-TRIGGERED: a silent standby
@@ -644,6 +806,27 @@ export class MultiMachineCoordinator extends EventEmitter {
644
806
  else
645
807
  this.emit('demote');
646
808
  console.log(`[MultiMachine] Lease reconcile → ${desired} (${reason})`);
809
+ // B1 — publish the lease-derived poll intent for the lifeline (shouldPoll =
810
+ // awake). No-op unless pollFollowsLease resolves on. Nothing consumes it yet
811
+ // (the lifeline reconcile loop is the next increment), so this is a safe,
812
+ // observe-only producer — it cannot change ingress.
813
+ this.writeLeasePollIntent(holds, desired);
814
+ // B2 — feed the flap circuit-breaker on every REAL role transition (this is
815
+ // past the `desired === this._role` early-return, so it counts only true
816
+ // flips). Observe/dry-run: log the would-latch; applying the deterministic
817
+ // role is the live graduation (dryRun:false).
818
+ const breaker = this.getChurnBreaker();
819
+ if (breaker) {
820
+ const v = breaker.recordFlip();
821
+ if (v.latched) {
822
+ const pref = this.config.multiMachine?.leaseSelfHeal?.preferredAwakeMachineId;
823
+ const wouldRole = breaker.latchedRole(!!pref && pref === this._identity.machineId);
824
+ const dryRun = this.config.multiMachine?.leaseSelfHeal?.churnDetector?.dryRun !== false;
825
+ console.log(`[MultiMachine] [churn] breaker LATCHED — flips=${v.flipsInWindow}, latchesThisHour=${v.latchesInHour}` +
826
+ `${v.exhausted ? ' (EXHAUSTED — operator attention)' : ''} — ` +
827
+ `${dryRun ? `would hold role '${wouldRole}' (dry-run)` : `holding role '${wouldRole}'`}`);
828
+ }
829
+ }
647
830
  }
648
831
  // ── Cross-Machine Coherence: active lease PULL ───────────────────
649
832
  /**
@@ -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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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * B2 (multimachine-lease-poll-robustness, Decision 8) — the lease flap
3
+ * circuit-breaker. Implements the `leaseSelfHeal.churnDetector` config that ships
4
+ * today as DEAD config (a type + defaults with ZERO consumers).
5
+ *
6
+ * When the awake/standby role flips more than `maxFlipsPerWindow` times within
7
+ * `windowMs`, the breaker LATCHES: the machine stops contending and holds a
8
+ * DETERMINISTIC role (the `preferredAwakeMachineId` machine → awake, every other
9
+ * machine → standby) so the resting state is exactly-one-awake, never a random
10
+ * mid-flap snapshot (which on a 2-machine pair is a coin-flip → 25% both-standby
11
+ * silence / 25% both-awake dual-poll). It auto-resets after a calm `windowMs`.
12
+ *
13
+ * "Guard bypass carries its own cap" — a breaker that re-latches more than
14
+ * `maxLatchesPerHour` is itself an incident: it stops auto-resetting (stays
15
+ * latched) and surfaces a HIGH signal, rather than self-resetting forever.
16
+ *
17
+ * Pure + deterministic (clock injected) so the lifecycle is fully unit-testable.
18
+ * SIGNAL only at this layer — it returns a verdict; the coordinator decides what
19
+ * to do with it (and ships it dark/dry-run first).
20
+ */
21
+ export interface ChurnBreakerConfig {
22
+ /** Flips within windowMs that trip the breaker. Default 4. */
23
+ maxFlipsPerWindow: number;
24
+ /** Rolling window for the flip count AND the calm-reset interval. Default 600000 (10m). */
25
+ windowMs: number;
26
+ /** Latches within the trailing hour that exhaust the breaker (then no auto-reset). Default 3. */
27
+ maxLatchesPerHour: number;
28
+ }
29
+ export declare const DEFAULT_CHURN_CONFIG: ChurnBreakerConfig;
30
+ export interface ChurnVerdict {
31
+ /** Is the breaker currently latched (machine should stop contending)? */
32
+ latched: boolean;
33
+ /** Has the breaker exhausted its latch budget (stays latched, raise HIGH attention)? */
34
+ exhausted: boolean;
35
+ /** Flip count in the current window (for observability). */
36
+ flipsInWindow: number;
37
+ /** Latch count in the trailing hour (for observability). */
38
+ latchesInHour: number;
39
+ }
40
+ export declare class ChurnBreaker {
41
+ private readonly cfg;
42
+ private readonly now;
43
+ private flips;
44
+ private latches;
45
+ private latched;
46
+ private exhausted;
47
+ private lastFlipAt;
48
+ constructor(cfg: Partial<ChurnBreakerConfig>, now: () => number);
49
+ private prune;
50
+ /** Record a role transition. Returns the breaker verdict AFTER this flip. */
51
+ recordFlip(): ChurnVerdict;
52
+ /**
53
+ * Tick WITHOUT a flip — checks auto-reset. The breaker auto-resets once a full
54
+ * `windowMs` has elapsed with NO new flip (a calm window), UNLESS it is
55
+ * exhausted (then it stays latched until the operator clears it). Call this on
56
+ * the coordinator's heartbeat tick so a settled system un-latches on its own.
57
+ */
58
+ tick(): ChurnVerdict;
59
+ private verdict;
60
+ /**
61
+ * The DETERMINISTIC role this machine should hold while latched. Never a
62
+ * mid-flap snapshot: the preferred-awake machine holds awake, everyone else
63
+ * holds standby → exactly-one-awake resting state. Returns null when not
64
+ * latched (the lease decides normally).
65
+ */
66
+ latchedRole(isPreferredAwake: boolean): 'awake' | 'standby' | null;
67
+ }
68
+ //# sourceMappingURL=churnBreaker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"churnBreaker.d.ts","sourceRoot":"","sources":["../../src/core/churnBreaker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2FAA2F;IAC3F,QAAQ,EAAE,MAAM,CAAC;IACjB,iGAAiG;IACjG,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,oBAAoB,EAAE,kBAIlC,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,yEAAyE;IACzE,OAAO,EAAE,OAAO,CAAC;IACjB,wFAAwF;IACxF,SAAS,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,aAAa,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,aAAa,EAAE,MAAM,CAAC;CACvB;AAID,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAK;gBAEX,GAAG,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,MAAM,MAAM;IAS/D,OAAO,CAAC,KAAK;IAOb,6EAA6E;IAC7E,UAAU,IAAI,YAAY;IAa1B;;;;;OAKG;IACH,IAAI,IAAI,YAAY;IASpB,OAAO,CAAC,OAAO;IAUf;;;;;OAKG;IACH,WAAW,CAAC,gBAAgB,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI;CAInE"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * B2 (multimachine-lease-poll-robustness, Decision 8) — the lease flap
3
+ * circuit-breaker. Implements the `leaseSelfHeal.churnDetector` config that ships
4
+ * today as DEAD config (a type + defaults with ZERO consumers).
5
+ *
6
+ * When the awake/standby role flips more than `maxFlipsPerWindow` times within
7
+ * `windowMs`, the breaker LATCHES: the machine stops contending and holds a
8
+ * DETERMINISTIC role (the `preferredAwakeMachineId` machine → awake, every other
9
+ * machine → standby) so the resting state is exactly-one-awake, never a random
10
+ * mid-flap snapshot (which on a 2-machine pair is a coin-flip → 25% both-standby
11
+ * silence / 25% both-awake dual-poll). It auto-resets after a calm `windowMs`.
12
+ *
13
+ * "Guard bypass carries its own cap" — a breaker that re-latches more than
14
+ * `maxLatchesPerHour` is itself an incident: it stops auto-resetting (stays
15
+ * latched) and surfaces a HIGH signal, rather than self-resetting forever.
16
+ *
17
+ * Pure + deterministic (clock injected) so the lifecycle is fully unit-testable.
18
+ * SIGNAL only at this layer — it returns a verdict; the coordinator decides what
19
+ * to do with it (and ships it dark/dry-run first).
20
+ */
21
+ export const DEFAULT_CHURN_CONFIG = {
22
+ maxFlipsPerWindow: 4,
23
+ windowMs: 600_000,
24
+ maxLatchesPerHour: 3,
25
+ };
26
+ const HOUR_MS = 3_600_000;
27
+ export class ChurnBreaker {
28
+ cfg;
29
+ now;
30
+ flips = [];
31
+ latches = [];
32
+ latched = false;
33
+ exhausted = false;
34
+ lastFlipAt = 0;
35
+ constructor(cfg, now) {
36
+ this.cfg = {
37
+ maxFlipsPerWindow: cfg.maxFlipsPerWindow ?? DEFAULT_CHURN_CONFIG.maxFlipsPerWindow,
38
+ windowMs: cfg.windowMs ?? DEFAULT_CHURN_CONFIG.windowMs,
39
+ maxLatchesPerHour: cfg.maxLatchesPerHour ?? DEFAULT_CHURN_CONFIG.maxLatchesPerHour,
40
+ };
41
+ this.now = now;
42
+ }
43
+ prune(t) {
44
+ const winFloor = t - this.cfg.windowMs;
45
+ this.flips = this.flips.filter((x) => x > winFloor);
46
+ const hourFloor = t - HOUR_MS;
47
+ this.latches = this.latches.filter((x) => x > hourFloor);
48
+ }
49
+ /** Record a role transition. Returns the breaker verdict AFTER this flip. */
50
+ recordFlip() {
51
+ const t = this.now();
52
+ this.flips.push(t);
53
+ this.lastFlipAt = t;
54
+ this.prune(t);
55
+ if (!this.latched && this.flips.length > this.cfg.maxFlipsPerWindow) {
56
+ this.latched = true;
57
+ this.latches.push(t);
58
+ if (this.latches.length > this.cfg.maxLatchesPerHour)
59
+ this.exhausted = true;
60
+ }
61
+ return this.verdict(t);
62
+ }
63
+ /**
64
+ * Tick WITHOUT a flip — checks auto-reset. The breaker auto-resets once a full
65
+ * `windowMs` has elapsed with NO new flip (a calm window), UNLESS it is
66
+ * exhausted (then it stays latched until the operator clears it). Call this on
67
+ * the coordinator's heartbeat tick so a settled system un-latches on its own.
68
+ */
69
+ tick() {
70
+ const t = this.now();
71
+ this.prune(t);
72
+ if (this.latched && !this.exhausted && t - this.lastFlipAt >= this.cfg.windowMs) {
73
+ this.latched = false;
74
+ }
75
+ return this.verdict(t);
76
+ }
77
+ verdict(t) {
78
+ this.prune(t);
79
+ return {
80
+ latched: this.latched,
81
+ exhausted: this.exhausted,
82
+ flipsInWindow: this.flips.length,
83
+ latchesInHour: this.latches.length,
84
+ };
85
+ }
86
+ /**
87
+ * The DETERMINISTIC role this machine should hold while latched. Never a
88
+ * mid-flap snapshot: the preferred-awake machine holds awake, everyone else
89
+ * holds standby → exactly-one-awake resting state. Returns null when not
90
+ * latched (the lease decides normally).
91
+ */
92
+ latchedRole(isPreferredAwake) {
93
+ if (!this.latched)
94
+ return null;
95
+ return isPreferredAwake ? 'awake' : 'standby';
96
+ }
97
+ }
98
+ //# sourceMappingURL=churnBreaker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"churnBreaker.js","sourceRoot":"","sources":["../../src/core/churnBreaker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * B4 (multimachine-lease-poll-robustness, Decision 9) — the clock-skew alarm
3
+ * decision.
4
+ *
5
+ * The mesh RPC rejects a signed envelope whose timestamp is >30s off the
6
+ * receiver's clock (`MeshRpc.verifyEnvelope`). When two machines' clocks drift
7
+ * past that, the cross-machine handshake silently breaks (the 2026-06-20
8
+ * post-reboot incident: a transient skew 403'd every lease/heartbeat RPC, the lease
9
+ * couldn't settle, and nobody was told). This decides whether to raise an
10
+ * EARLY-WARNING — at a margin BELOW the 30s reject cliff — so an operator hears
11
+ * about drift before the handshake fails, not after.
12
+ *
13
+ * Two N=2 subtleties this encodes:
14
+ * - Attribution: with only two machines and no third reference, a measured
15
+ * offset is RELATIVE — each sees the other as skewed. So each machine checks
16
+ * its OWN NTP sync and, when ITS clock is unsynced, blames ITSELF rather than
17
+ * finger-pointing the peer (Decision 9). Only when our own clock is verified
18
+ * synced do we point at the peer.
19
+ * - Hysteresis: the measured offset is a noisy signal near the threshold;
20
+ * alarm at `alarmThresholdMs`, clear only below `clearThresholdMs`, so it
21
+ * doesn't flap the attention surface.
22
+ *
23
+ * Pure + deterministic → fully unit-testable. SIGNAL only — never widens the
24
+ * MeshRpc reject (replay-safety) and never gates; it raises an advisory alarm.
25
+ */
26
+ export type SkewBlame = 'self' | 'peer' | 'unknown' | 'local-freeze';
27
+ export interface ClockSkewInputs {
28
+ /** Measured offset to the peer in ms — use max(ewma, lastSample) so a STEP
29
+ * skew (the real incident) alarms immediately, not after an EWMA ramp. */
30
+ observedOffsetMs: number;
31
+ /** Is THIS machine's clock NTP-synced (probed via sntp/timedatectl)? undefined =
32
+ * unknown (couldn't probe) → don't confidently blame the peer. */
33
+ ownNtpSynced: boolean | undefined;
34
+ /** Raise threshold (ms). Default caller: 20000 (⅔ of the 30s reject cliff). */
35
+ alarmThresholdMs: number;
36
+ /** Hysteresis clear threshold (ms). Default caller: 12000. Must be < alarm. */
37
+ clearThresholdMs: number;
38
+ /** Current alarm state for this peer (hysteresis). */
39
+ currentlyAlarming: boolean;
40
+ /** ms since the last LOCAL event-loop STARVATION burst (e.g. SleepWakeDetector
41
+ * drift). undefined = no recent freeze observed. THE LIVE LESSON (2026-06-20,
42
+ * topic 13481): when this machine's event loop freezes for many seconds, mesh
43
+ * timestamps set BEFORE the freeze are verified AFTER it and look "stale" — so
44
+ * a large `observedOffsetMs` appears even when BOTH clocks are perfectly synced
45
+ * (measured: Laptop vs Mini = 1s). Without this guard the alarm would
46
+ * FALSE-POSITIVE as "peer clock skew" during a purely-local freeze. */
47
+ recentLocalStarvationAgeMs?: number;
48
+ /** How recent a local starvation counts as "could explain this offset" (ms).
49
+ * Default caller: 30000. Within this window a large offset is attributed to the
50
+ * freeze (blame 'local-freeze'), and the peer-skew alarm is SUPPRESSED — the
51
+ * safe direction: a genuine PERSISTENT skew still alarms once the freeze ages
52
+ * out, but we never finger-point a peer for our own freeze. */
53
+ starvationFreshnessMs?: number;
54
+ }
55
+ export interface ClockSkewVerdict {
56
+ alarming: boolean;
57
+ blame: SkewBlame;
58
+ reason: string;
59
+ }
60
+ export declare function evaluateClockSkew(i: ClockSkewInputs): ClockSkewVerdict;
61
+ //# sourceMappingURL=clockSkewAlarm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clockSkewAlarm.d.ts","sourceRoot":"","sources":["../../src/core/clockSkewAlarm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,cAAc,CAAC;AAErE,MAAM,WAAW,eAAe;IAC9B;+EAC2E;IAC3E,gBAAgB,EAAE,MAAM,CAAC;IACzB;uEACmE;IACnE,YAAY,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,+EAA+E;IAC/E,gBAAgB,EAAE,MAAM,CAAC;IACzB,+EAA+E;IAC/E,gBAAgB,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;;;;;4EAMwE;IACxE,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC;;;;oEAIgE;IAChE,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,eAAe,GAAG,gBAAgB,CAwCtE"}