@sentropic/h2a 0.98.4 → 0.98.6
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/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/runtime/drive/consent.d.ts +1 -1
- package/dist/runtime/drive/consent.d.ts.map +1 -1
- package/dist/runtime/drive/consent.js +2 -2
- package/dist/runtime/drive/consent.js.map +1 -1
- package/dist/runtime/drive/index.d.ts +1 -1
- package/dist/runtime/drive/index.d.ts.map +1 -1
- package/dist/runtime/drive/index.js +3 -1
- package/dist/runtime/drive/index.js.map +1 -1
- package/dist/runtime/drumbeat/relaunchers.d.ts +1 -1
- package/dist/runtime/drumbeat/relaunchers.d.ts.map +1 -1
- package/dist/runtime/drumbeat/relaunchers.js +2 -1
- package/dist/runtime/drumbeat/relaunchers.js.map +1 -1
- package/dist/runtime/identity/binding-commit.d.ts +31 -0
- package/dist/runtime/identity/binding-commit.d.ts.map +1 -0
- package/dist/runtime/identity/binding-commit.js +211 -0
- package/dist/runtime/identity/binding-commit.js.map +1 -0
- package/dist/runtime/identity/bindings.d.ts +6 -30
- package/dist/runtime/identity/bindings.d.ts.map +1 -1
- package/dist/runtime/identity/bindings.js +85 -96
- package/dist/runtime/identity/bindings.js.map +1 -1
- package/dist/runtime/identity/durable.d.ts +7 -0
- package/dist/runtime/identity/durable.d.ts.map +1 -0
- package/dist/runtime/identity/durable.js +68 -0
- package/dist/runtime/identity/durable.js.map +1 -0
- package/dist/runtime/identity/live.d.ts +4 -1
- package/dist/runtime/identity/live.d.ts.map +1 -1
- package/dist/runtime/identity/live.js +59 -6
- package/dist/runtime/identity/live.js.map +1 -1
- package/dist/runtime/identity/possession.d.ts +34 -0
- package/dist/runtime/identity/possession.d.ts.map +1 -0
- package/dist/runtime/identity/possession.js +162 -0
- package/dist/runtime/identity/possession.js.map +1 -0
- package/dist/runtime/identity/worker.js +16 -5
- package/dist/runtime/identity/worker.js.map +1 -1
- package/dist/runtime/local-files/identity-fence.d.ts +164 -0
- package/dist/runtime/local-files/identity-fence.d.ts.map +1 -0
- package/dist/runtime/local-files/identity-fence.js +1336 -0
- package/dist/runtime/local-files/identity-fence.js.map +1 -0
- package/dist/runtime/local-files/index.d.ts +1 -0
- package/dist/runtime/local-files/index.d.ts.map +1 -1
- package/dist/runtime/local-files/index.js +1 -0
- package/dist/runtime/local-files/index.js.map +1 -1
- package/dist/runtime/local-files/legacy-identity-evidence.d.ts +26 -0
- package/dist/runtime/local-files/legacy-identity-evidence.d.ts.map +1 -0
- package/dist/runtime/local-files/legacy-identity-evidence.js +234 -0
- package/dist/runtime/local-files/legacy-identity-evidence.js.map +1 -0
- package/dist/runtime/local-files/locks.d.ts +3 -0
- package/dist/runtime/local-files/locks.d.ts.map +1 -1
- package/dist/runtime/local-files/locks.js +6 -5
- package/dist/runtime/local-files/locks.js.map +1 -1
- package/dist/runtime/local-files/store.d.ts +1 -1
- package/dist/runtime/local-files/store.d.ts.map +1 -1
- package/dist/runtime/local-files/store.js +12 -1
- package/dist/runtime/local-files/store.js.map +1 -1
- package/dist/runtime/local-files/succession-lock.d.ts +71 -6
- package/dist/runtime/local-files/succession-lock.d.ts.map +1 -1
- package/dist/runtime/local-files/succession-lock.js +226 -31
- package/dist/runtime/local-files/succession-lock.js.map +1 -1
- package/dist/runtime/mcp/identity-blocker-snapshot.d.ts +2 -0
- package/dist/runtime/mcp/identity-blocker-snapshot.d.ts.map +1 -0
- package/dist/runtime/mcp/identity-blocker-snapshot.js +98 -0
- package/dist/runtime/mcp/identity-blocker-snapshot.js.map +1 -0
- package/dist/runtime/mcp/identity-state.d.ts +20 -3
- package/dist/runtime/mcp/identity-state.d.ts.map +1 -1
- package/dist/runtime/mcp/identity-state.js +98 -13
- package/dist/runtime/mcp/identity-state.js.map +1 -1
- package/dist/runtime/mcp/server.d.ts.map +1 -1
- package/dist/runtime/mcp/server.js +12 -9
- package/dist/runtime/mcp/server.js.map +1 -1
- package/dist/runtime/remote/client.d.ts +1 -1
- package/dist/runtime/remote/client.d.ts.map +1 -1
- package/dist/runtime/remote/client.js +1 -1
- package/dist/runtime/remote/client.js.map +1 -1
- package/package.json +3 -3
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { createHash, randomBytes } from "node:crypto";
|
|
16
16
|
import { spawnSync } from "node:child_process";
|
|
17
|
-
import { closeSync, fsyncSync, linkSync, mkdirSync, openSync, readdirSync, readFileSync, readlinkSync, statSync, unlinkSync, writeSync } from "node:fs";
|
|
17
|
+
import { closeSync, fsyncSync, linkSync, mkdirSync, openSync, readdirSync, readFileSync, readSync, readlinkSync, statSync, unlinkSync, writeSync } from "node:fs";
|
|
18
18
|
import { hostname } from "node:os";
|
|
19
19
|
import { basename, dirname, join } from "node:path";
|
|
20
20
|
// ---------------------------------------------------------------------------
|
|
@@ -64,10 +64,16 @@ export const PREFIX_LOCK_TMP_DEBRIS_MAX_AGE_MS = 60 * 60 * 1000;
|
|
|
64
64
|
export const UPGRADE_RESIDUE_MAX_AGE_MS = 24 * 60 * 60 * 1000;
|
|
65
65
|
/** Tokens are hex (plus -/_ tolerance); anything else in a record is corruption. */
|
|
66
66
|
const LOCK_TOKEN_RE = /^[A-Za-z0-9_-]{12,128}$/;
|
|
67
|
+
/** Linux boot id (strict form; an anchor is never given a fake Linux format). */
|
|
68
|
+
const BOOT_ID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
|
|
69
|
+
/** Persisted pid namespace link target, as read from /proc/<pid>/ns/pid. */
|
|
70
|
+
const PID_NS_RE = /^pid:\[\d+\]$/;
|
|
71
|
+
/** Persisted time namespace link target, as read from /proc/<pid>/ns/time. */
|
|
72
|
+
const TIME_NS_RE = /^time:\[\d+\]$/;
|
|
67
73
|
export function lockPathFor(prefix) {
|
|
68
74
|
return join(prefix, ".h2a-upgrade.lock");
|
|
69
75
|
}
|
|
70
|
-
function succPathFor(lockPath, t) {
|
|
76
|
+
export function succPathFor(lockPath, t) {
|
|
71
77
|
return `${lockPath}.succ.${t}`;
|
|
72
78
|
}
|
|
73
79
|
function tmpPathFor(path, t) {
|
|
@@ -140,13 +146,15 @@ export function readHostId(deps = {}) {
|
|
|
140
146
|
const readFile = deps.readFile ?? ((path) => readFileSync(path, "utf8"));
|
|
141
147
|
const hostnameReader = deps.hostname ?? hostname;
|
|
142
148
|
if (platform === "linux") {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
149
|
+
for (const source of deps.machineIdPaths ?? ["/etc/machine-id"]) {
|
|
150
|
+
try {
|
|
151
|
+
const host = readFile(source).trim();
|
|
152
|
+
if (MACHINE_ID_RE.test(host) && !isNullMachineId(host))
|
|
153
|
+
return { host, hostKind: "machine-id" };
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
// try the next machine-id source, then fall through to a weak hostname
|
|
157
|
+
}
|
|
150
158
|
}
|
|
151
159
|
}
|
|
152
160
|
else if (platform === "darwin") {
|
|
@@ -297,7 +305,23 @@ export function procStartInfo(pid, platform = process.platform, mapsToSelf = pro
|
|
|
297
305
|
const after = s.slice(close + 1).trim().split(/\s+/);
|
|
298
306
|
// after[0] is state (field 3); after[19] is starttime (field 22).
|
|
299
307
|
if (after.length >= 20 && after[0] && after[19]) {
|
|
300
|
-
|
|
308
|
+
const state = after[0];
|
|
309
|
+
// A zombie's thread count is read only for the reliable-zombie proof
|
|
310
|
+
// (identity protocol R3 rule 7): state Z + concordant start + Threads: 1.
|
|
311
|
+
// Reading it for every probe would tax the hot path for nothing.
|
|
312
|
+
let threads;
|
|
313
|
+
if (state === "Z") {
|
|
314
|
+
try {
|
|
315
|
+
const status = readFileSync(`/proc/${pid}/status`, "utf8");
|
|
316
|
+
const match = status.match(/^Threads:\s+(\d+)$/m);
|
|
317
|
+
if (match)
|
|
318
|
+
threads = Number(match[1]);
|
|
319
|
+
}
|
|
320
|
+
catch {
|
|
321
|
+
// unreadable status: the caller sees no thread count (undecidable)
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
return { state, start: `proc:${after[19]}`, ...(threads !== undefined ? { threads } : {}) };
|
|
301
325
|
}
|
|
302
326
|
}
|
|
303
327
|
}
|
|
@@ -323,6 +347,75 @@ export function procStartInfo(pid, platform = process.platform, mapsToSelf = pro
|
|
|
323
347
|
}
|
|
324
348
|
return undefined;
|
|
325
349
|
}
|
|
350
|
+
/** Identity-only coherent probe; upgrade retains procStartInfo unchanged. */
|
|
351
|
+
function procIdentityStartInfo(pid) {
|
|
352
|
+
if (!procMapsToSelf())
|
|
353
|
+
return undefined;
|
|
354
|
+
let statFd;
|
|
355
|
+
let statusFd;
|
|
356
|
+
const readAtZero = (fd) => {
|
|
357
|
+
const bytes = Buffer.alloc(65537);
|
|
358
|
+
let offset = 0;
|
|
359
|
+
while (offset < bytes.length) {
|
|
360
|
+
const n = readSync(fd, bytes, offset, bytes.length - offset, offset);
|
|
361
|
+
if (!n)
|
|
362
|
+
break;
|
|
363
|
+
offset += n;
|
|
364
|
+
}
|
|
365
|
+
if (offset === bytes.length)
|
|
366
|
+
throw new Error('proc observation limit');
|
|
367
|
+
return bytes.subarray(0, offset).toString();
|
|
368
|
+
};
|
|
369
|
+
const parse = (text) => {
|
|
370
|
+
if (!text.startsWith(pid + ' '))
|
|
371
|
+
return undefined;
|
|
372
|
+
const parts = text.slice(text.lastIndexOf(')') + 1).trim().split(/\s+/);
|
|
373
|
+
if (parts.length < 20 || !/^[RSDZTWtXxKPI]$/.test(parts[0]) || !/^[0-9]+$/.test(parts[19]))
|
|
374
|
+
return undefined;
|
|
375
|
+
return { state: parts[0], start: 'proc:' + parts[19] };
|
|
376
|
+
};
|
|
377
|
+
try {
|
|
378
|
+
// NSpid contains every namespace from the procfs mount to this task.
|
|
379
|
+
// A singleton equal to process.pid positively attaches procfs to our PID
|
|
380
|
+
// namespace, including a numerical coincidence in a parent namespace.
|
|
381
|
+
const selfStatus = readFileSync('/proc/self/status', 'utf8');
|
|
382
|
+
const nspid = selfStatus.split('\n').filter(line => line.startsWith('NSpid:'));
|
|
383
|
+
if (nspid.length !== 1 || nspid[0].slice(6).trim() !== String(process.pid))
|
|
384
|
+
return undefined;
|
|
385
|
+
statFd = openSync(`/proc/${pid}/stat`, 'r');
|
|
386
|
+
statusFd = openSync(`/proc/${pid}/status`, 'r');
|
|
387
|
+
const before = parse(readAtZero(statFd));
|
|
388
|
+
const status = readAtZero(statusFd);
|
|
389
|
+
const after = parse(readAtZero(statFd));
|
|
390
|
+
if (!before || !after || before.start !== after.start)
|
|
391
|
+
return undefined;
|
|
392
|
+
const field = (name) => { const rows = status.split('\n').filter(line => line.startsWith(name + ':')); return rows.length === 1 ? rows[0].slice(name.length + 1).trim() : undefined; };
|
|
393
|
+
if (field('Pid') !== String(pid) || field('Tgid') !== String(pid))
|
|
394
|
+
return undefined;
|
|
395
|
+
const state = field('State')?.match(/^([RSDZTWtXxKPI])(?:\s|$)/)?.[1];
|
|
396
|
+
if (!state)
|
|
397
|
+
return undefined;
|
|
398
|
+
const threadsText = field('Threads');
|
|
399
|
+
const threads = threadsText && /^[1-9][0-9]*$/.test(threadsText) ? Number(threadsText) : undefined;
|
|
400
|
+
if ([before.state, state, after.state].includes('Z')) {
|
|
401
|
+
if (before.state !== 'Z' || state !== 'Z' || after.state !== 'Z' || !Number.isSafeInteger(threads))
|
|
402
|
+
return undefined;
|
|
403
|
+
return { state: 'Z', start: before.start, threads };
|
|
404
|
+
}
|
|
405
|
+
if ([before.state, state, after.state].some(s => s === 'X' || s === 'x'))
|
|
406
|
+
return undefined;
|
|
407
|
+
return { state: after.state, start: before.start };
|
|
408
|
+
}
|
|
409
|
+
catch {
|
|
410
|
+
return undefined;
|
|
411
|
+
}
|
|
412
|
+
finally {
|
|
413
|
+
if (statFd !== undefined)
|
|
414
|
+
closeSync(statFd);
|
|
415
|
+
if (statusFd !== undefined)
|
|
416
|
+
closeSync(statusFd);
|
|
417
|
+
}
|
|
418
|
+
}
|
|
326
419
|
function startSource(s) {
|
|
327
420
|
if (s.startsWith("proc:"))
|
|
328
421
|
return "proc";
|
|
@@ -419,7 +512,7 @@ export function parseLockRec(raw) {
|
|
|
419
512
|
at
|
|
420
513
|
};
|
|
421
514
|
}
|
|
422
|
-
function parseLegacyLockHolder(raw, bytes) {
|
|
515
|
+
export function parseLegacyLockHolder(raw, bytes) {
|
|
423
516
|
if (typeof raw !== "object" || raw === null || Array.isArray(raw))
|
|
424
517
|
throw new Error("bad legacy lock record");
|
|
425
518
|
const o = raw;
|
|
@@ -453,7 +546,7 @@ function parseLegacyLockHolder(raw, bytes) {
|
|
|
453
546
|
};
|
|
454
547
|
}
|
|
455
548
|
/** Advisory reader: distinguish failed reads from malformed file content. */
|
|
456
|
-
function readLockHolderDetailed(path) {
|
|
549
|
+
export function readLockHolderDetailed(path) {
|
|
457
550
|
let bytes;
|
|
458
551
|
try {
|
|
459
552
|
bytes = readFileSync(path);
|
|
@@ -497,11 +590,11 @@ export function readLockRecord(path) {
|
|
|
497
590
|
* any other failure -> "error" with the errno (no hard links -> fail closed).
|
|
498
591
|
* The tmp never contains `.succ.` (C2).
|
|
499
592
|
*/
|
|
500
|
-
export function publishLockRecord(path, rec) {
|
|
593
|
+
export function publishLockRecord(path, rec, mode = 0o644) {
|
|
501
594
|
const tmp = tmpPathFor(path, rec.token);
|
|
502
595
|
try {
|
|
503
596
|
const data = JSON.stringify(rec);
|
|
504
|
-
const fd = openSync(tmp, "wx",
|
|
597
|
+
const fd = openSync(tmp, "wx", mode);
|
|
505
598
|
let truncated = false;
|
|
506
599
|
try {
|
|
507
600
|
const written = writeSync(fd, data);
|
|
@@ -573,6 +666,8 @@ export function classifyLiveness(r, self, deps = {}) {
|
|
|
573
666
|
// promote the holder to dead. The operator escape hatch consumes this token later.
|
|
574
667
|
if (r.kind === "legacy")
|
|
575
668
|
return { verdict: "undecidable", datable: false };
|
|
669
|
+
if (deps.protocol === "identity")
|
|
670
|
+
return classifyIdentityLiveness(r, self, deps);
|
|
576
671
|
const platform = deps.platform ?? process.platform;
|
|
577
672
|
const probe = deps.probe ?? procStartInfo;
|
|
578
673
|
// Lot 4 §2 permits a death proof only for a strong machine identity on Linux or
|
|
@@ -639,6 +734,87 @@ export function classifyLiveness(r, self, deps = {}) {
|
|
|
639
734
|
// Present but with an undatable start ⇒ live: never reclaim a live-or-unknown holder.
|
|
640
735
|
return { verdict: exists ? "live" : "undecidable", datable: false };
|
|
641
736
|
}
|
|
737
|
+
/**
|
|
738
|
+
* Identity protocol classifier (0.98.6 spec v4 R3, rules 0–9 in order). The
|
|
739
|
+
* first applicable rule decides; a death verdict only ever comes from:
|
|
740
|
+
* - rule 3: same strong machine, same known pid namespace, both boots valid
|
|
741
|
+
* and different (stale boot — no PID probe, no signal);
|
|
742
|
+
* - rule 4: same boot, PID absent (ESRCH) in the known shared namespace;
|
|
743
|
+
* - rule 6: start times comparable and different (PID reused);
|
|
744
|
+
* - rule 7: start concordant + zombie state + exactly one thread.
|
|
745
|
+
* Everything else — missing or malformed anchors, foreign machine or
|
|
746
|
+
* namespace, probe errors, multi-threaded or unverifiable zombies, undatable
|
|
747
|
+
* starts — is `undecidable`, never `dead`. No age, mtime, hostname or
|
|
748
|
+
* declared date participates (I7).
|
|
749
|
+
*/
|
|
750
|
+
function classifyIdentityLiveness(r, self, deps) {
|
|
751
|
+
const undecidable = { verdict: "undecidable", datable: false };
|
|
752
|
+
// Rule 0/platform: automatic recovery is authorized on Linux only; the
|
|
753
|
+
// identity fence never claims a death proof through another platform's tools.
|
|
754
|
+
const platform = deps.platform ?? process.platform;
|
|
755
|
+
if (platform !== "linux")
|
|
756
|
+
return undecidable;
|
|
757
|
+
// Rules 1–2: a strong machine identity, known on both sides, is required.
|
|
758
|
+
if (r.hostKind !== "machine-id" || self.hostKind !== "machine-id")
|
|
759
|
+
return undecidable;
|
|
760
|
+
if (!MACHINE_ID_RE.test(r.host) || isNullMachineId(r.host) || !MACHINE_ID_RE.test(self.host))
|
|
761
|
+
return undecidable;
|
|
762
|
+
if (r.host !== self.host)
|
|
763
|
+
return undecidable; // foreign machine, known: rule 2
|
|
764
|
+
// Rules 1–2: the pid namespace must be known, well-formed and equal on both sides.
|
|
765
|
+
if (r.ns === null || self.ns === null || !PID_NS_RE.test(r.ns) || !PID_NS_RE.test(self.ns))
|
|
766
|
+
return undecidable;
|
|
767
|
+
if (r.ns !== self.ns)
|
|
768
|
+
return undecidable; // foreign namespace, known: rule 2
|
|
769
|
+
// Rules 1 and 3: boots must be present and valid on both sides; equal boots
|
|
770
|
+
// fall through to the PID probe, different boots are the stale-boot death.
|
|
771
|
+
if (r.boot === null || self.boot === null || !BOOT_ID_RE.test(r.boot) || !BOOT_ID_RE.test(self.boot)) {
|
|
772
|
+
return undecidable;
|
|
773
|
+
}
|
|
774
|
+
if (r.boot !== self.boot)
|
|
775
|
+
return { verdict: "dead", datable: false }; // rule 3: stale boot
|
|
776
|
+
// Same boot, known shared namespace: probe the recorded PID.
|
|
777
|
+
const probe = deps.probe ?? procIdentityStartInfo;
|
|
778
|
+
let exists = false;
|
|
779
|
+
try {
|
|
780
|
+
process.kill(r.pid, 0);
|
|
781
|
+
exists = true;
|
|
782
|
+
}
|
|
783
|
+
catch (e) {
|
|
784
|
+
const code = errnoOf(e);
|
|
785
|
+
if (code === "ESRCH")
|
|
786
|
+
return { verdict: "dead", datable: false }; // rule 4
|
|
787
|
+
if (code === "EPERM")
|
|
788
|
+
exists = true; // rule 6 continues with a start comparison
|
|
789
|
+
else
|
|
790
|
+
return undecidable; // rule 5: a probe error never means dead
|
|
791
|
+
}
|
|
792
|
+
const p = probe(r.pid); // undefined when unknown
|
|
793
|
+
if (r.start !== null && p?.start !== undefined) {
|
|
794
|
+
const rSrc = startSource(r.start);
|
|
795
|
+
const pSrc = startSource(p.start);
|
|
796
|
+
if (rSrc === "legacy" || pSrc === "legacy")
|
|
797
|
+
return undecidable; // untrustworthy start value
|
|
798
|
+
if (rSrc !== pSrc)
|
|
799
|
+
return undecidable; // not comparable: no claim either way
|
|
800
|
+
if (rSrc === "proc" && (r.timeNs === null || self.timeNs === null || r.timeNs !== self.timeNs
|
|
801
|
+
|| !TIME_NS_RE.test(r.timeNs) || (self.timeNs !== null && !TIME_NS_RE.test(self.timeNs)))) {
|
|
802
|
+
return undecidable; // start values live in different time bases
|
|
803
|
+
}
|
|
804
|
+
if (p.start !== r.start)
|
|
805
|
+
return { verdict: "dead", datable: true }; // rule 6: PID reused
|
|
806
|
+
// Start concordant: a zombie is proven dead only with exactly one thread.
|
|
807
|
+
if (p.state === "Z") {
|
|
808
|
+
return typeof p.threads === "number" && p.threads === 1
|
|
809
|
+
? { verdict: "dead", datable: false } // rule 7: reliable zombie
|
|
810
|
+
: undecidable; // multi-threaded / unverifiable zombie: rule 9
|
|
811
|
+
}
|
|
812
|
+
return { verdict: "live", datable: true }; // rule 8: same, confirmed process
|
|
813
|
+
}
|
|
814
|
+
// PID present with an undatable start, or a zombie without a concordant
|
|
815
|
+
// start: nothing is proven. Never reclaim, never claim liveness (rule 9).
|
|
816
|
+
return undecidable;
|
|
817
|
+
}
|
|
642
818
|
export function livenessOf(r, self, deps = {}) {
|
|
643
819
|
return classifyLiveness(r, self, deps).verdict;
|
|
644
820
|
}
|
|
@@ -785,25 +961,32 @@ export function acquirePrefixLock(prefix, options = {}) {
|
|
|
785
961
|
* opus `succeed`: the owner of g is certainly dead. Walk the one-shot chain
|
|
786
962
|
* SUCC(g) -> SUCC(r0) -> ...; publishing a link elects the sole live
|
|
787
963
|
* successor (Lemma B). "retry" means the chain settled meanwhile (re-read).
|
|
964
|
+
*
|
|
965
|
+
* The serializer/reader/classifier/publisher bindings (`io`) keep this THE one
|
|
966
|
+
* election implementation: the upgrade prefix lock passes nothing (its exact
|
|
967
|
+
* 0.98.5 behavior), the identity binding fence passes its v2-record protocol.
|
|
788
968
|
*/
|
|
789
|
-
function succeedDeadToken(prefix, lockPath, g, self) {
|
|
969
|
+
export function succeedDeadToken(prefix, lockPath, g, self, io = UPGRADE_FENCE_IO) {
|
|
790
970
|
let t = g;
|
|
791
971
|
for (let depth = 0; depth < PREFIX_LOCK_MAX_CHAIN; depth++) {
|
|
972
|
+
if (io.beforeElection && !io.beforeElection(g))
|
|
973
|
+
return 'retry';
|
|
792
974
|
const tok = newToken();
|
|
793
|
-
const pub =
|
|
975
|
+
const pub = io.publish(succPathFor(lockPath, t), io.makeRec(self, tok, g));
|
|
794
976
|
if (pub.status === "ok") {
|
|
795
|
-
|
|
977
|
+
io.onElected?.(succPathFor(lockPath, t), tok, g);
|
|
978
|
+
return retireDeadToken(prefix, lockPath, g, self, io);
|
|
796
979
|
}
|
|
797
980
|
if (pub.status === "error")
|
|
798
981
|
return lockDenied(`error:${pub.code}`);
|
|
799
982
|
if (pub.status === "retry")
|
|
800
983
|
return "retry";
|
|
801
|
-
const s =
|
|
984
|
+
const s = io.readRecord(succPathFor(lockPath, t));
|
|
802
985
|
if (s === "absent")
|
|
803
986
|
return "retry"; // chain already settled
|
|
804
987
|
if (s === "corrupt" || s.target !== g)
|
|
805
988
|
return lockDenied("dead-undecidable");
|
|
806
|
-
const live =
|
|
989
|
+
const live = io.classify(s, self);
|
|
807
990
|
if (live !== "dead")
|
|
808
991
|
return lockDenied(live === "live" ? "busy" : "dead-undecidable");
|
|
809
992
|
t = s.token; // it died: succeed it
|
|
@@ -815,8 +998,10 @@ function succeedDeadToken(prefix, lockPath, g, self) {
|
|
|
815
998
|
* opus `retire`: targeted removal (S) of exactly g (Lemma C), then purge the
|
|
816
999
|
* now-inert SUCC files targeting g (I5), then publish a fresh token.
|
|
817
1000
|
*/
|
|
818
|
-
function retireDeadToken(prefix, lockPath, g, self) {
|
|
819
|
-
|
|
1001
|
+
export function retireDeadToken(prefix, lockPath, g, self, io = UPGRADE_FENCE_IO) {
|
|
1002
|
+
if (io.beforeRetire && !io.beforeRetire(lockPath, g))
|
|
1003
|
+
return lockDenied("dead-undecidable");
|
|
1004
|
+
const cur = io.readRecord(lockPath);
|
|
820
1005
|
if (cur === "corrupt")
|
|
821
1006
|
return lockDenied("dead-undecidable"); // keep our SUCC: fail closed
|
|
822
1007
|
if (cur !== "absent" && cur.token === g) {
|
|
@@ -827,13 +1012,13 @@ function retireDeadToken(prefix, lockPath, g, self) {
|
|
|
827
1012
|
// defense-in-depth that also holds under manual intervention / a fresh owner /
|
|
828
1013
|
// corruption appearing in this window: such a LOCK bears a different token (or is
|
|
829
1014
|
// corrupt) and is NEVER deleted — we only ever unlink a lock we still own.
|
|
830
|
-
const now =
|
|
1015
|
+
const now = io.readRecord(lockPath);
|
|
831
1016
|
if (now === "corrupt")
|
|
832
1017
|
return lockDenied("dead-undecidable"); // keep our SUCC: fail closed
|
|
833
1018
|
if (now !== "absent" && now.token !== g) {
|
|
834
1019
|
// A different owner appeared in the window: our SUCC(g) is inert. Purge it and
|
|
835
1020
|
// retry against the new LOCK — never delete a lock we do not own.
|
|
836
|
-
purgeSuccession(prefix, lockPath, g);
|
|
1021
|
+
purgeSuccession(prefix, lockPath, g, io);
|
|
837
1022
|
return "retry";
|
|
838
1023
|
}
|
|
839
1024
|
if (now !== "absent") {
|
|
@@ -841,6 +1026,7 @@ function retireDeadToken(prefix, lockPath, g, self) {
|
|
|
841
1026
|
let unlinkCode;
|
|
842
1027
|
try {
|
|
843
1028
|
unlinkSync(lockPath); // (S) removes exactly g (Lemma C)
|
|
1029
|
+
io.afterRetire?.(prefix);
|
|
844
1030
|
}
|
|
845
1031
|
catch (e) {
|
|
846
1032
|
unlinkCode = errnoOf(e);
|
|
@@ -853,25 +1039,34 @@ function retireDeadToken(prefix, lockPath, g, self) {
|
|
|
853
1039
|
// now === "absent": g already removed by someone else; fall through to publish.
|
|
854
1040
|
}
|
|
855
1041
|
// From here LOCK != g forever (I2): every SUCC targeting g is inert.
|
|
856
|
-
purgeSuccession(prefix, lockPath, g); // unlink SUCC files whose target === g
|
|
1042
|
+
purgeSuccession(prefix, lockPath, g, io); // unlink SUCC files whose target === g
|
|
1043
|
+
if (io.retireOnly)
|
|
1044
|
+
return { acquired: true, stillHeld: () => false, release: () => { } };
|
|
857
1045
|
const tok = newToken();
|
|
858
|
-
const pub =
|
|
1046
|
+
const pub = io.publish(lockPath, io.makeRec(self, tok));
|
|
859
1047
|
if (pub.status === "ok")
|
|
860
|
-
return makeLease(prefix, lockPath, tok);
|
|
1048
|
+
return io.lease?.(prefix, lockPath, tok) ?? makeLease(prefix, lockPath, tok, io);
|
|
861
1049
|
if (pub.status === "exists" || pub.status === "retry")
|
|
862
1050
|
return "retry";
|
|
863
1051
|
return lockDenied(`error:${pub.code}`);
|
|
864
1052
|
}
|
|
1053
|
+
/** The upgrade prefix lock's exact bindings (its 0.98.5 behavior). */
|
|
1054
|
+
export const UPGRADE_FENCE_IO = {
|
|
1055
|
+
makeRec: makeLockRecFor,
|
|
1056
|
+
readRecord: readLockRecord,
|
|
1057
|
+
classify: (r, self) => classifyLiveness(r, self).verdict,
|
|
1058
|
+
publish: publishLockRecord
|
|
1059
|
+
};
|
|
865
1060
|
/**
|
|
866
1061
|
* opus `lease`: conditional release — unlink only when LOCK == tok (I2/Lemma
|
|
867
1062
|
* A: while we live, LOCK == tok is stable). Runs on process exit too.
|
|
868
1063
|
*/
|
|
869
|
-
function makeLease(prefix, lockPath, token) {
|
|
1064
|
+
export function makeLease(prefix, lockPath, token, io = UPGRADE_FENCE_IO) {
|
|
870
1065
|
let done = false;
|
|
871
1066
|
const stillHeld = () => {
|
|
872
1067
|
if (done)
|
|
873
1068
|
return false;
|
|
874
|
-
const cur =
|
|
1069
|
+
const cur = io.readRecord(lockPath);
|
|
875
1070
|
return cur !== "absent" && cur !== "corrupt" && cur.token === token;
|
|
876
1071
|
};
|
|
877
1072
|
const release = () => {
|
|
@@ -884,7 +1079,7 @@ function makeLease(prefix, lockPath, token) {
|
|
|
884
1079
|
catch {
|
|
885
1080
|
// best-effort
|
|
886
1081
|
}
|
|
887
|
-
const cur =
|
|
1082
|
+
const cur = io.readRecord(lockPath);
|
|
888
1083
|
if (cur !== "absent" && cur !== "corrupt" && cur.token === token) {
|
|
889
1084
|
try {
|
|
890
1085
|
unlinkSync(lockPath); // (R) safe: LOCK == tok stable while we live
|
|
@@ -905,7 +1100,7 @@ function makeLease(prefix, lockPath, token) {
|
|
|
905
1100
|
return { acquired: true, stillHeld, release, token };
|
|
906
1101
|
}
|
|
907
1102
|
/** Unlink SUCC files whose target === g (called only when LOCK != g can hold). */
|
|
908
|
-
function purgeSuccession(prefix, lockPath, g) {
|
|
1103
|
+
export function purgeSuccession(prefix, lockPath, g, io = UPGRADE_FENCE_IO) {
|
|
909
1104
|
let names;
|
|
910
1105
|
try {
|
|
911
1106
|
names = readdirSync(prefix);
|
|
@@ -920,7 +1115,7 @@ function purgeSuccession(prefix, lockPath, g) {
|
|
|
920
1115
|
if (n.includes(".tmp."))
|
|
921
1116
|
continue; // C2: never treat a tmp as a SUCC record
|
|
922
1117
|
const full = join(prefix, n);
|
|
923
|
-
const rec =
|
|
1118
|
+
const rec = io.readRecord(full);
|
|
924
1119
|
if (rec !== "absent" && rec !== "corrupt" && rec.target === g) {
|
|
925
1120
|
try {
|
|
926
1121
|
unlinkSync(full);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"succession-lock.js","sourceRoot":"","sources":["../../../src/runtime/local-files/succession-lock.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"succession-lock.js","sourceRoot":"","sources":["../../../src/runtime/local-files/succession-lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-blocker-snapshot.d.ts","sourceRoot":"","sources":["../../../src/runtime/mcp/identity-blocker-snapshot.ts"],"names":[],"mappings":"AAoBA,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,UAAM,GAAG,OAAO,CAAC,MAAM,GAAC,SAAS,CAAC,CA+BlH"}
|