instar 1.3.689 → 1.3.691
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/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +9 -0
- package/dist/commands/server.js.map +1 -1
- package/dist/config/ConfigDefaults.d.ts.map +1 -1
- package/dist/config/ConfigDefaults.js +7 -0
- package/dist/config/ConfigDefaults.js.map +1 -1
- package/dist/core/MultiMachineCoordinator.d.ts +40 -0
- package/dist/core/MultiMachineCoordinator.d.ts.map +1 -1
- package/dist/core/MultiMachineCoordinator.js +96 -1
- package/dist/core/MultiMachineCoordinator.js.map +1 -1
- package/dist/core/nobodyPollingActuator.d.ts +61 -0
- package/dist/core/nobodyPollingActuator.d.ts.map +1 -0
- package/dist/core/nobodyPollingActuator.js +61 -0
- package/dist/core/nobodyPollingActuator.js.map +1 -0
- package/dist/core/nobodyPollingRecovery.d.ts +138 -0
- package/dist/core/nobodyPollingRecovery.d.ts.map +1 -0
- package/dist/core/nobodyPollingRecovery.js +147 -0
- package/dist/core/nobodyPollingRecovery.js.map +1 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +51 -0
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +47 -47
- package/upgrades/1.3.690.md +28 -0
- package/upgrades/1.3.691.md +28 -0
- package/upgrades/side-effects/mesh-self-heal-g2-core.md +32 -0
- package/upgrades/side-effects/mesh-self-heal-g2-enforce.md +38 -0
- package/upgrades/side-effects/mesh-self-heal-g2-observe.md +34 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MESH-SELF-HEAL G2 — enforce-mode ACTUATOR (dependency-injected, testable).
|
|
3
|
+
*
|
|
4
|
+
* Spec: MESH-SELF-HEAL-SPEC §3.2; build plan: MESH-SELF-HEAL-G2-BUILD.md.
|
|
5
|
+
*
|
|
6
|
+
* This is the ENFORCE half of G2: given a `claim` decision from
|
|
7
|
+
* `decideNobodyPollingClaim`, actually take poll-ownership — win the fenced
|
|
8
|
+
* epoch-CAS, RE-VERIFY live local poll-success (CAS-win is necessary-not-sufficient,
|
|
9
|
+
* Adv2-F1), then either start polling (drive the existing poll-follows-lease lever)
|
|
10
|
+
* or relinquish + self-exclude. The delicate cross-machine authority (the exact
|
|
11
|
+
* code whose hasty version caused the 2026-06-27 tug-of-war) is isolated behind
|
|
12
|
+
* INJECTED PORTS so it is unit-testable WITHOUT a live coordinator/lifeline, and so
|
|
13
|
+
* the dryRun gate is a single, auditable chokepoint.
|
|
14
|
+
*
|
|
15
|
+
* Ships DARK + dryRun-first. In dryRun it records "would actuate" and performs ZERO
|
|
16
|
+
* side effects (no CAS acquire, no poll-lever write) — pure observation. Only an
|
|
17
|
+
* explicit `dryRun:false` (the enforce promotion) ever touches the lease or polling.
|
|
18
|
+
*
|
|
19
|
+
* SECOND-PASS REVIEW REQUIRED before merge (this holds poll-ownership authority).
|
|
20
|
+
*/
|
|
21
|
+
import { decidePostCasSelfReverify } from './nobodyPollingRecovery.js';
|
|
22
|
+
/**
|
|
23
|
+
* Actuate a G2 claim decision. Pure control-flow over injected ports; the only
|
|
24
|
+
* authority is exercised through the ports, and ONLY when `dryRun` is false and the
|
|
25
|
+
* decision is a genuine self-claim. Idempotent per call.
|
|
26
|
+
*/
|
|
27
|
+
export async function applyNobodyPollingRecovery(args) {
|
|
28
|
+
const { decision, dryRun, ports, ledger, nowIso, log } = args;
|
|
29
|
+
// Only a genuine self-claim actuates. stand-down / veto / fail-closed / hold /
|
|
30
|
+
// escalate / await / no-op are non-actuating (the decision recorder already
|
|
31
|
+
// counted them); the actuator must NEVER touch the lease for those.
|
|
32
|
+
if (!decision.selfClaims || decision.action !== 'claim') {
|
|
33
|
+
return { result: 'no-action', reason: `decision=${decision.action}` };
|
|
34
|
+
}
|
|
35
|
+
// DARK / dryRun: observe only. Record the counterfactual; perform NO side effect.
|
|
36
|
+
if (dryRun) {
|
|
37
|
+
log?.(`[g2-actuator] DRY-RUN would claim poll-ownership (epoch n+1) — no CAS, no poll-lever write`);
|
|
38
|
+
return { result: 'dry-run-would-claim', reason: 'dry-run-observe-only' };
|
|
39
|
+
}
|
|
40
|
+
// ENFORCE: win the fenced epoch-CAS. Losing means a peer won the same episode —
|
|
41
|
+
// stand down (the single-claimant invariant holds via the fence, not our guess).
|
|
42
|
+
const won = await ports.acquireFencedCas();
|
|
43
|
+
if (!won) {
|
|
44
|
+
return { result: 'cas-lost', reason: 'another-machine-won-the-fenced-epoch' };
|
|
45
|
+
}
|
|
46
|
+
// CAS-win is necessary but NOT sufficient (Adv2-F1): re-verify OWN live poll
|
|
47
|
+
// freshness (current+local) before committing to serve.
|
|
48
|
+
const reverify = decidePostCasSelfReverify({ localPollSucceededFresh: ports.localPollSucceededFresh() });
|
|
49
|
+
if (!reverify.commit) {
|
|
50
|
+
ports.relinquishAndSelfExclude();
|
|
51
|
+
ledger.recordSelfExclusion(nowIso);
|
|
52
|
+
log?.(`[g2-actuator] won CAS but self-unfit on re-verify → relinquished + self-excluded`);
|
|
53
|
+
return { result: 'self-excluded', reason: reverify.reason };
|
|
54
|
+
}
|
|
55
|
+
// Committed: drive the poll-follows-lease lever to START polling at the won epoch.
|
|
56
|
+
// (The caller's post-claim live-verify confirms lifeline-poll-active.json advances.)
|
|
57
|
+
ports.startPolling(ports.currentEpoch());
|
|
58
|
+
log?.(`[g2-actuator] claimed poll-ownership + started polling at epoch ${ports.currentEpoch()}`);
|
|
59
|
+
return { result: 'claimed-serving', reason: 'cas-won-self-reverified-fit' };
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=nobodyPollingActuator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nobodyPollingActuator.js","sourceRoot":"","sources":["../../src/core/nobodyPollingActuator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAoCvE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,IAOhD;IACC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE9D,+EAA+E;IAC/E,4EAA4E;IAC5E,oEAAoE;IACpE,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QACxD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;IACxE,CAAC;IAED,kFAAkF;IAClF,IAAI,MAAM,EAAE,CAAC;QACX,GAAG,EAAE,CAAC,4FAA4F,CAAC,CAAC;QACpG,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;IAC3E,CAAC;IAED,gFAAgF;IAChF,iFAAiF;IACjF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,sCAAsC,EAAE,CAAC;IAChF,CAAC;IAED,6EAA6E;IAC7E,wDAAwD;IACxD,MAAM,QAAQ,GAAG,yBAAyB,CAAC,EAAE,uBAAuB,EAAE,KAAK,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;IACzG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,CAAC,wBAAwB,EAAE,CAAC;QACjC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACnC,GAAG,EAAE,CAAC,kFAAkF,CAAC,CAAC;QAC1F,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC9D,CAAC;IAED,mFAAmF;IACnF,qFAAqF;IACrF,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;IACzC,GAAG,EAAE,CAAC,mEAAmE,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACjG,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC;AAC9E,CAAC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MESH-SELF-HEAL G2 — nobody-polling detector + single-claimant recovery (pure core).
|
|
3
|
+
*
|
|
4
|
+
* Spec: docs/specs/MESH-SELF-HEAL-SPEC.md §3.2; build plan: MESH-SELF-HEAL-G2-BUILD.md.
|
|
5
|
+
*
|
|
6
|
+
* The silent-loss backstop. When NO machine is polling Telegram (the 3.5h-incident
|
|
7
|
+
* state — a zombie lease-holder that stopped fetching, the exact live condition on
|
|
8
|
+
* the Mini+Laptop pair 2026-06-27), exactly ONE fit machine must take poll-ownership
|
|
9
|
+
* — never zero (drops), never two (the 409 poll-war).
|
|
10
|
+
*
|
|
11
|
+
* This module is PURE + deterministic (no I/O) so every decision boundary is
|
|
12
|
+
* unit-testable on both sides. It REDUCES over the existing B5 detector
|
|
13
|
+
* (`pollerCount.ts` evaluatePollerCount) — it does NOT reinvent the poll-count fold.
|
|
14
|
+
* It is SIGNAL/decision only; the caller actuates via the existing
|
|
15
|
+
* poll-follows-lease / effectivePollIntent lever and the fenced epoch-CAS.
|
|
16
|
+
*
|
|
17
|
+
* Ships DARK + dryRun-first behind a flag (like G3) — the caller no-ops on a single
|
|
18
|
+
* machine or flag-off.
|
|
19
|
+
*/
|
|
20
|
+
import type { PollerCountVerdict } from './pollerCount.js';
|
|
21
|
+
/** A pool machine's fitness for taking poll-ownership this episode. */
|
|
22
|
+
export interface PollClaimMachine {
|
|
23
|
+
machineId: string;
|
|
24
|
+
/**
|
|
25
|
+
* fit = heartbeat-fresh AND advertising pollFresh AND not self-excluded this
|
|
26
|
+
* episode. The caller computes this from the advertised heartbeat booleans;
|
|
27
|
+
* the election only ever considers fit machines (an unfit machine is never a
|
|
28
|
+
* candidate). Self-exclusion (Adv3-F-A) is folded in here so a just-relinquished
|
|
29
|
+
* machine is skipped immediately rather than re-nominated for ~one interval.
|
|
30
|
+
*/
|
|
31
|
+
fit: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface NobodyPollingClaimInput {
|
|
34
|
+
/** This machine's id. */
|
|
35
|
+
selfMachineId: string;
|
|
36
|
+
/** The B5 verdict over the pool (from evaluatePollerCount / poolPollerVerdict). */
|
|
37
|
+
pollerVerdict: PollerCountVerdict;
|
|
38
|
+
/**
|
|
39
|
+
* True only when a `silence` verdict has PERSISTED across
|
|
40
|
+
* `nobodyPollingConfirmObservations` consecutive fresh evaluator ticks
|
|
41
|
+
* (finding Adv-F9 — a normal handoff gap is a transient silence and must NOT
|
|
42
|
+
* trip a claim). Caller owns the counter; this is the debounced edge.
|
|
43
|
+
*/
|
|
44
|
+
silenceConfirmed: boolean;
|
|
45
|
+
/** The F4 preferred-awake machine id, or null if none designated. */
|
|
46
|
+
preferredAwakeMachineId: string | null;
|
|
47
|
+
/** Every pool machine with its fitness (INCLUDING self). */
|
|
48
|
+
machines: PollClaimMachine[];
|
|
49
|
+
/**
|
|
50
|
+
* POSITIVE evidence the outage is GLOBAL (Telegram down for everyone), NOT just
|
|
51
|
+
* local: a fresh, signed heartbeat received from ≥1 live peer that ALSO reports
|
|
52
|
+
* its own poll as failing. "I can't hear any peer" must NEVER set this true
|
|
53
|
+
* (Adv2-F2 — a heartbeat-transport partition is not a global outage). When true,
|
|
54
|
+
* HOLD (do not claim) and route to escalation — claiming can't fix a global
|
|
55
|
+
* outage and would just churn.
|
|
56
|
+
*/
|
|
57
|
+
globalOutageEvidence: boolean;
|
|
58
|
+
}
|
|
59
|
+
export type NobodyPollingAction = 'no-op' | 'veto-dual' | 'fail-closed' | 'await-confirm' | 'hold-global' | 'escalate-no-fit' | 'claim' | 'stand-down';
|
|
60
|
+
export interface NobodyPollingDecision {
|
|
61
|
+
action: NobodyPollingAction;
|
|
62
|
+
/** The deterministically-elected single claimant (machineId), or null. */
|
|
63
|
+
claimant: string | null;
|
|
64
|
+
/** Should THIS machine actuate (acquire CAS + start polling)? Only true for 'claim'. */
|
|
65
|
+
selfClaims: boolean;
|
|
66
|
+
/** Short machine-readable reason for the audit log. */
|
|
67
|
+
reason: string;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Deterministic single-claimant election: the F4 preferred-awake machine IF it is
|
|
71
|
+
* itself fit, else the LOWEST-machineId fit machine (finding DC-OQ2). Returns null
|
|
72
|
+
* if no machine is fit. This is the heart of "single-claimant, NOT each-machine-
|
|
73
|
+
* decides" — every machine running this over the same inputs elects the SAME
|
|
74
|
+
* claimant, so there is no split-brain double-claim.
|
|
75
|
+
*/
|
|
76
|
+
export declare function electPollClaimant(preferredAwakeMachineId: string | null, machines: PollClaimMachine[]): string | null;
|
|
77
|
+
/**
|
|
78
|
+
* Decide whether THIS machine should claim poll-ownership. Pure; the caller
|
|
79
|
+
* actuates only on `selfClaims` (acquire the fenced epoch-CAS, then run
|
|
80
|
+
* decidePostCasSelfReverify before committing to serve).
|
|
81
|
+
*/
|
|
82
|
+
export declare function decideNobodyPollingClaim(input: NobodyPollingClaimInput): NobodyPollingDecision;
|
|
83
|
+
export interface PostCasSelfReverifyInput {
|
|
84
|
+
/**
|
|
85
|
+
* This machine's OWN live poll-success freshness, read AFTER winning the CAS
|
|
86
|
+
* (current + local — NOT the heartbeat-cadence-lagging advertised boolean the
|
|
87
|
+
* election used). Adv2-F1: CAS-win is necessary but not sufficient.
|
|
88
|
+
*/
|
|
89
|
+
localPollSucceededFresh: boolean;
|
|
90
|
+
}
|
|
91
|
+
export type PostCasAction = 'serve' | 'relinquish-self-exclude';
|
|
92
|
+
export interface PostCasSelfReverifyDecision {
|
|
93
|
+
/** Commit to serving (start polling)? */
|
|
94
|
+
commit: boolean;
|
|
95
|
+
action: PostCasAction;
|
|
96
|
+
/**
|
|
97
|
+
* When false: the caller must relinquish the won epoch (signed tombstone +
|
|
98
|
+
* the G1 quiesce) AND advertise pollFresh:false + selfExcludedThisEpisode in
|
|
99
|
+
* its next heartbeat so peers skip it immediately (Adv3-F-A).
|
|
100
|
+
*/
|
|
101
|
+
reason: string;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* After winning the fenced CAS, re-verify this machine's OWN current poll-success
|
|
105
|
+
* freshness before committing to serve. On self-unfit, relinquish + self-exclude
|
|
106
|
+
* (the immediate self-demotion that stops peers re-nominating the lagged set).
|
|
107
|
+
*/
|
|
108
|
+
export declare function decidePostCasSelfReverify(input: PostCasSelfReverifyInput): PostCasSelfReverifyDecision;
|
|
109
|
+
/**
|
|
110
|
+
* G2 soak/episode ledger — evaluable observability (mirrors the G3 close-the-loop
|
|
111
|
+
* requirement: a dark feature must record evidence it can be promoted on). Counts
|
|
112
|
+
* episodes + each decision-class transition. SIGNAL only.
|
|
113
|
+
*/
|
|
114
|
+
export interface NobodyPollingLedgerSummary {
|
|
115
|
+
episodes: number;
|
|
116
|
+
claimsWonBySelf: number;
|
|
117
|
+
standDowns: number;
|
|
118
|
+
selfExclusions: number;
|
|
119
|
+
vetoesDual: number;
|
|
120
|
+
failClosed: number;
|
|
121
|
+
holdGlobal: number;
|
|
122
|
+
escalationsNoFit: number;
|
|
123
|
+
firstAt: string | null;
|
|
124
|
+
lastAt: string | null;
|
|
125
|
+
}
|
|
126
|
+
export declare class NobodyPollingLedger {
|
|
127
|
+
private s;
|
|
128
|
+
/** Record a claim decision. `nowIso` injected (callers pass a real timestamp). */
|
|
129
|
+
recordClaim(decision: NobodyPollingDecision, nowIso: string): void;
|
|
130
|
+
/** Record entering a NEW confirmed-silence episode (caller dedups the edge). */
|
|
131
|
+
recordEpisode(nowIso: string): void;
|
|
132
|
+
/** Record a post-CAS self-exclusion (relinquished after winning). */
|
|
133
|
+
recordSelfExclusion(nowIso: string): void;
|
|
134
|
+
summary(): NobodyPollingLedgerSummary;
|
|
135
|
+
}
|
|
136
|
+
/** Process-wide shared G2 ledger (mirrors sharedG3SoakLedger). */
|
|
137
|
+
export declare const sharedG2NobodyPollingLedger: NobodyPollingLedger;
|
|
138
|
+
//# sourceMappingURL=nobodyPollingRecovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nobodyPollingRecovery.d.ts","sourceRoot":"","sources":["../../src/core/nobodyPollingRecovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,uEAAuE;AACvE,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,uBAAuB;IACtC,yBAAyB;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,aAAa,EAAE,kBAAkB,CAAC;IAClC;;;;;OAKG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAC1B,qEAAqE;IACrE,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,4DAA4D;IAC5D,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B;;;;;;;OAOG;IACH,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,MAAM,mBAAmB,GAC3B,OAAO,GACP,WAAW,GACX,aAAa,GACb,eAAe,GACf,aAAa,GACb,iBAAiB,GACjB,OAAO,GACP,YAAY,CAAC;AAEjB,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,wFAAwF;IACxF,UAAU,EAAE,OAAO,CAAC;IACpB,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,uBAAuB,EAAE,MAAM,GAAG,IAAI,EACtC,QAAQ,EAAE,gBAAgB,EAAE,GAC3B,MAAM,GAAG,IAAI,CAQf;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,uBAAuB,GAC7B,qBAAqB,CA2CvB;AAED,MAAM,WAAW,wBAAwB;IACvC;;;;OAIG;IACH,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,yBAAyB,CAAC;AAEhE,MAAM,WAAW,2BAA2B;IAC1C,yCAAyC;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;IACtB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,wBAAwB,GAC9B,2BAA2B,CAK7B;AAED;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,CAAC,CAIP;IAEF,kFAAkF;IAClF,WAAW,CAAC,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAiBlE,gFAAgF;IAChF,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMnC,qEAAqE;IACrE,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKzC,OAAO,IAAI,0BAA0B;CAGtC;AAED,kEAAkE;AAClE,eAAO,MAAM,2BAA2B,qBAA4B,CAAC"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MESH-SELF-HEAL G2 — nobody-polling detector + single-claimant recovery (pure core).
|
|
3
|
+
*
|
|
4
|
+
* Spec: docs/specs/MESH-SELF-HEAL-SPEC.md §3.2; build plan: MESH-SELF-HEAL-G2-BUILD.md.
|
|
5
|
+
*
|
|
6
|
+
* The silent-loss backstop. When NO machine is polling Telegram (the 3.5h-incident
|
|
7
|
+
* state — a zombie lease-holder that stopped fetching, the exact live condition on
|
|
8
|
+
* the Mini+Laptop pair 2026-06-27), exactly ONE fit machine must take poll-ownership
|
|
9
|
+
* — never zero (drops), never two (the 409 poll-war).
|
|
10
|
+
*
|
|
11
|
+
* This module is PURE + deterministic (no I/O) so every decision boundary is
|
|
12
|
+
* unit-testable on both sides. It REDUCES over the existing B5 detector
|
|
13
|
+
* (`pollerCount.ts` evaluatePollerCount) — it does NOT reinvent the poll-count fold.
|
|
14
|
+
* It is SIGNAL/decision only; the caller actuates via the existing
|
|
15
|
+
* poll-follows-lease / effectivePollIntent lever and the fenced epoch-CAS.
|
|
16
|
+
*
|
|
17
|
+
* Ships DARK + dryRun-first behind a flag (like G3) — the caller no-ops on a single
|
|
18
|
+
* machine or flag-off.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Deterministic single-claimant election: the F4 preferred-awake machine IF it is
|
|
22
|
+
* itself fit, else the LOWEST-machineId fit machine (finding DC-OQ2). Returns null
|
|
23
|
+
* if no machine is fit. This is the heart of "single-claimant, NOT each-machine-
|
|
24
|
+
* decides" — every machine running this over the same inputs elects the SAME
|
|
25
|
+
* claimant, so there is no split-brain double-claim.
|
|
26
|
+
*/
|
|
27
|
+
export function electPollClaimant(preferredAwakeMachineId, machines) {
|
|
28
|
+
const fit = machines.filter((m) => m.fit).map((m) => m.machineId);
|
|
29
|
+
if (fit.length === 0)
|
|
30
|
+
return null;
|
|
31
|
+
if (preferredAwakeMachineId !== null && fit.includes(preferredAwakeMachineId)) {
|
|
32
|
+
return preferredAwakeMachineId;
|
|
33
|
+
}
|
|
34
|
+
// Lowest machineId among fit — a stable, partition-independent tiebreak.
|
|
35
|
+
return fit.slice().sort()[0];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Decide whether THIS machine should claim poll-ownership. Pure; the caller
|
|
39
|
+
* actuates only on `selfClaims` (acquire the fenced epoch-CAS, then run
|
|
40
|
+
* decidePostCasSelfReverify before committing to serve).
|
|
41
|
+
*/
|
|
42
|
+
export function decideNobodyPollingClaim(input) {
|
|
43
|
+
const { selfMachineId, pollerVerdict, silenceConfirmed, preferredAwakeMachineId, machines, globalOutageEvidence, } = input;
|
|
44
|
+
switch (pollerVerdict) {
|
|
45
|
+
case 'ok':
|
|
46
|
+
return { action: 'no-op', claimant: null, selfClaims: false, reason: 'one-poller-ok' };
|
|
47
|
+
case 'dual':
|
|
48
|
+
// Claiming into a 2-poller state is exactly the 409 war G2 exists to prevent.
|
|
49
|
+
return { action: 'veto-dual', claimant: null, selfClaims: false, reason: 'dual-poll-veto-claim' };
|
|
50
|
+
case 'indeterminate':
|
|
51
|
+
// A dark/unknown peer — the count can't be confirmed. Never claim on a gap.
|
|
52
|
+
return { action: 'fail-closed', claimant: null, selfClaims: false, reason: 'visibility-gap-no-claim' };
|
|
53
|
+
case 'silence':
|
|
54
|
+
break; // handled below
|
|
55
|
+
default: {
|
|
56
|
+
// Exhaustiveness guard — an unknown verdict is treated as a visibility gap.
|
|
57
|
+
const _never = pollerVerdict;
|
|
58
|
+
return { action: 'fail-closed', claimant: null, selfClaims: false, reason: `unknown-verdict:${String(_never)}` };
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// verdict === 'silence'
|
|
62
|
+
if (!silenceConfirmed) {
|
|
63
|
+
// Transient silence (a normal handoff gap) — wait for the debounce.
|
|
64
|
+
return { action: 'await-confirm', claimant: null, selfClaims: false, reason: 'silence-not-yet-confirmed' };
|
|
65
|
+
}
|
|
66
|
+
if (globalOutageEvidence) {
|
|
67
|
+
// Peer-confirmed global outage — claiming can't fix it; escalate instead.
|
|
68
|
+
return { action: 'hold-global', claimant: null, selfClaims: false, reason: 'global-outage-peer-confirmed' };
|
|
69
|
+
}
|
|
70
|
+
const claimant = electPollClaimant(preferredAwakeMachineId, machines);
|
|
71
|
+
if (claimant === null) {
|
|
72
|
+
// Confirmed silence but nobody is fit to take over — escalate (signal-only).
|
|
73
|
+
return { action: 'escalate-no-fit', claimant: null, selfClaims: false, reason: 'no-fit-machine-to-claim' };
|
|
74
|
+
}
|
|
75
|
+
if (claimant === selfMachineId) {
|
|
76
|
+
const why = claimant === preferredAwakeMachineId ? 'preferred-awake-fit' : 'lowest-id-fit';
|
|
77
|
+
return { action: 'claim', claimant, selfClaims: true, reason: why };
|
|
78
|
+
}
|
|
79
|
+
return { action: 'stand-down', claimant, selfClaims: false, reason: 'another-machine-is-claimant' };
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* After winning the fenced CAS, re-verify this machine's OWN current poll-success
|
|
83
|
+
* freshness before committing to serve. On self-unfit, relinquish + self-exclude
|
|
84
|
+
* (the immediate self-demotion that stops peers re-nominating the lagged set).
|
|
85
|
+
*/
|
|
86
|
+
export function decidePostCasSelfReverify(input) {
|
|
87
|
+
if (input.localPollSucceededFresh) {
|
|
88
|
+
return { commit: true, action: 'serve', reason: 'self-reverified-fit' };
|
|
89
|
+
}
|
|
90
|
+
return { commit: false, action: 'relinquish-self-exclude', reason: 'self-unfit-after-cas' };
|
|
91
|
+
}
|
|
92
|
+
export class NobodyPollingLedger {
|
|
93
|
+
s = {
|
|
94
|
+
episodes: 0, claimsWonBySelf: 0, standDowns: 0, selfExclusions: 0,
|
|
95
|
+
vetoesDual: 0, failClosed: 0, holdGlobal: 0, escalationsNoFit: 0,
|
|
96
|
+
firstAt: null, lastAt: null,
|
|
97
|
+
};
|
|
98
|
+
/** Record a claim decision. `nowIso` injected (callers pass a real timestamp). */
|
|
99
|
+
recordClaim(decision, nowIso) {
|
|
100
|
+
let counted = true;
|
|
101
|
+
switch (decision.action) {
|
|
102
|
+
case 'claim':
|
|
103
|
+
this.s.claimsWonBySelf += 1;
|
|
104
|
+
break;
|
|
105
|
+
case 'stand-down':
|
|
106
|
+
this.s.standDowns += 1;
|
|
107
|
+
break;
|
|
108
|
+
case 'veto-dual':
|
|
109
|
+
this.s.vetoesDual += 1;
|
|
110
|
+
break;
|
|
111
|
+
case 'fail-closed':
|
|
112
|
+
this.s.failClosed += 1;
|
|
113
|
+
break;
|
|
114
|
+
case 'hold-global':
|
|
115
|
+
this.s.holdGlobal += 1;
|
|
116
|
+
break;
|
|
117
|
+
case 'escalate-no-fit':
|
|
118
|
+
this.s.escalationsNoFit += 1;
|
|
119
|
+
break;
|
|
120
|
+
// no-op / await-confirm are non-events for the soak metric.
|
|
121
|
+
default: counted = false;
|
|
122
|
+
}
|
|
123
|
+
if (!counted)
|
|
124
|
+
return;
|
|
125
|
+
if (this.s.firstAt === null)
|
|
126
|
+
this.s.firstAt = nowIso;
|
|
127
|
+
this.s.lastAt = nowIso;
|
|
128
|
+
}
|
|
129
|
+
/** Record entering a NEW confirmed-silence episode (caller dedups the edge). */
|
|
130
|
+
recordEpisode(nowIso) {
|
|
131
|
+
this.s.episodes += 1;
|
|
132
|
+
if (this.s.firstAt === null)
|
|
133
|
+
this.s.firstAt = nowIso;
|
|
134
|
+
this.s.lastAt = nowIso;
|
|
135
|
+
}
|
|
136
|
+
/** Record a post-CAS self-exclusion (relinquished after winning). */
|
|
137
|
+
recordSelfExclusion(nowIso) {
|
|
138
|
+
this.s.selfExclusions += 1;
|
|
139
|
+
this.s.lastAt = nowIso;
|
|
140
|
+
}
|
|
141
|
+
summary() {
|
|
142
|
+
return { ...this.s };
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/** Process-wide shared G2 ledger (mirrors sharedG3SoakLedger). */
|
|
146
|
+
export const sharedG2NobodyPollingLedger = new NobodyPollingLedger();
|
|
147
|
+
//# sourceMappingURL=nobodyPollingRecovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nobodyPollingRecovery.js","sourceRoot":"","sources":["../../src/core/nobodyPollingRecovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"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"}
|
package/dist/server/routes.js
CHANGED
|
@@ -12,6 +12,7 @@ import { sharedG3SoakLedger, decideLeaseGatedSpawn } from '../core/leaseGatedSpa
|
|
|
12
12
|
import { getHostSpawnSemaphore, configuredSpawnAcquireMs, configuredSpawnWaitersMax } from '../core/hostSpawnSemaphore.js';
|
|
13
13
|
import { activeSpawnPollers } from '../core/SpawnCapIntelligenceProvider.js';
|
|
14
14
|
import { poolPollerVerdict } from '../core/pollerCount.js';
|
|
15
|
+
import { decideNobodyPollingClaim, sharedG2NobodyPollingLedger } from '../core/nobodyPollingRecovery.js';
|
|
15
16
|
import { canonicalPushKey } from '../core/PrHandLease.js';
|
|
16
17
|
import { enrollPaneSessionName } from '../core/FrameworkLoginDriver.js';
|
|
17
18
|
import fs from 'node:fs';
|
|
@@ -11405,6 +11406,56 @@ document.getElementById('mcpForm').addEventListener('submit', async function (e)
|
|
|
11405
11406
|
machines: caps.map((c) => ({ machineId: c.machineId, nickname: c.nickname, online: c.online, pollingActive: c.pollingActive })),
|
|
11406
11407
|
});
|
|
11407
11408
|
});
|
|
11409
|
+
// G2 nobody-polling silence debounce — module-scoped streak across reads, so a
|
|
11410
|
+
// transient handoff-gap silence never reads as confirmed (Adv-F9).
|
|
11411
|
+
const G2_NOBODY_POLLING_CONFIRM_OBSERVATIONS = 3;
|
|
11412
|
+
let _g2SilenceStreak = 0;
|
|
11413
|
+
// GET /mesh-selfheal/g2 — MESH-SELF-HEAL-SPEC §3.2 G2 OBSERVE surface (increment
|
|
11414
|
+
// 2: detector + single-claimant election, REPORT-only). Computes the B5 verdict
|
|
11415
|
+
// over the live pool, debounces a `silence` across reads (nobodyPollingConfirmObservations),
|
|
11416
|
+
// runs the pure G2 decision (who should claim poll-ownership), records the
|
|
11417
|
+
// counterfactual to the shared soak ledger, and returns it. OBSERVE-only: it
|
|
11418
|
+
// does NOT actuate (no fenced-CAS acquire, no poll-lever write) — the enforce
|
|
11419
|
+
// actuation is the next increment. Read-driven: each poll advances the soak.
|
|
11420
|
+
router.get('/mesh-selfheal/g2', (_req, res) => {
|
|
11421
|
+
const caps = ctx.machinePoolRegistry?.getCapacities() ?? [];
|
|
11422
|
+
const sync = ctx.coordinator ? ctx.coordinator.getSyncStatus() : null;
|
|
11423
|
+
const selfMachineId = ctx.coordinator?.identity?.machineId ?? null;
|
|
11424
|
+
const verdict = poolPollerVerdict(caps.map((c) => ({ machineId: c.machineId, online: c.online, pollingActive: c.pollingActive })), false);
|
|
11425
|
+
// Debounce a silence across reads (Adv-F9: a normal handoff gap is transient
|
|
11426
|
+
// and must not trip a claim). Module-scoped streak counter.
|
|
11427
|
+
if (verdict.verdict === 'silence')
|
|
11428
|
+
_g2SilenceStreak += 1;
|
|
11429
|
+
else
|
|
11430
|
+
_g2SilenceStreak = 0;
|
|
11431
|
+
const silenceConfirmed = _g2SilenceStreak >= G2_NOBODY_POLLING_CONFIRM_OBSERVATIONS;
|
|
11432
|
+
// fit (observe approximation): heartbeat-fresh = a candidate that COULD take
|
|
11433
|
+
// over polling. In a `silence` NOBODY is polling, so fitness is NOT tied to
|
|
11434
|
+
// pollingActive (that would exclude exactly the idle-but-healthy machines that
|
|
11435
|
+
// should claim). The enforce increment refines this with the machine-local
|
|
11436
|
+
// pollSucceededMonoMs re-verify (post-CAS) + self-exclusion advertisement.
|
|
11437
|
+
const machines = caps.map((c) => ({ machineId: c.machineId, fit: !!c.online }));
|
|
11438
|
+
const decision = decideNobodyPollingClaim({
|
|
11439
|
+
selfMachineId: selfMachineId ?? '(unknown)',
|
|
11440
|
+
pollerVerdict: verdict.verdict,
|
|
11441
|
+
silenceConfirmed,
|
|
11442
|
+
preferredAwakeMachineId: sync?.preferredAwakeMachineId ?? null,
|
|
11443
|
+
machines,
|
|
11444
|
+
// Peer-evidence-of-global-outage plumbing is the enforce increment; observe
|
|
11445
|
+
// never claims a global outage (false → a confirmed silence proceeds to elect).
|
|
11446
|
+
globalOutageEvidence: false,
|
|
11447
|
+
});
|
|
11448
|
+
sharedG2NobodyPollingLedger.recordClaim(decision, new Date().toISOString());
|
|
11449
|
+
res.json({
|
|
11450
|
+
enabled: !!ctx.machinePoolRegistry,
|
|
11451
|
+
verdict,
|
|
11452
|
+
silenceStreak: _g2SilenceStreak,
|
|
11453
|
+
silenceConfirmed,
|
|
11454
|
+
selfMachineId,
|
|
11455
|
+
decision,
|
|
11456
|
+
ledger: sharedG2NobodyPollingLedger.summary(),
|
|
11457
|
+
});
|
|
11458
|
+
});
|
|
11408
11459
|
// GET /pool/poll-cache — WS4.4(f) global pool-cache observability
|
|
11409
11460
|
// (MULTI-MACHINE-SEAMLESSNESS-SPEC §WS4.4 clause (f)). Read-only: reports
|
|
11410
11461
|
// whether the shared per-peer poll cache is wired, its TTL + load-shed
|