@ai-dossier/sched 0.69.0 → 0.70.0-next.714.1
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/README.md +23 -3
- package/dist/batch-dispatch.d.ts.map +1 -1
- package/dist/batch-dispatch.js +2 -1
- package/dist/batch-dispatch.js.map +1 -1
- package/dist/dispatch.d.ts +7 -0
- package/dist/dispatch.d.ts.map +1 -1
- package/dist/dispatch.js +18 -11
- package/dist/dispatch.js.map +1 -1
- package/dist/engine-alert.d.ts +4 -1
- package/dist/engine-alert.d.ts.map +1 -1
- package/dist/engine-alert.js +24 -5
- package/dist/engine-alert.js.map +1 -1
- package/dist/engine.d.ts +34 -3
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +50 -3
- package/dist/engine.js.map +1 -1
- package/dist/in-flight.d.ts +98 -0
- package/dist/in-flight.d.ts.map +1 -0
- package/dist/in-flight.js +300 -0
- package/dist/in-flight.js.map +1 -0
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -6
- package/dist/index.js.map +1 -1
- package/dist/persist.d.ts +10 -0
- package/dist/persist.d.ts.map +1 -1
- package/dist/persist.js +23 -0
- package/dist/persist.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* In-flight capability runs (#1233): the engine's record of a gate it has
|
|
4
|
+
* launched and not yet consumed.
|
|
5
|
+
*
|
|
6
|
+
* The batch gate (`cap run gate.batch`, 25–55 min) and the per-member gate
|
|
7
|
+
* (`cap run test.focused`) outlive the engine that launched them whenever the
|
|
8
|
+
* engine is killed mid-gate (a host reaper's SIGKILL, OOM, a stop-timeout).
|
|
9
|
+
* Before this record existed a restarted engine had no way to know a gate was
|
|
10
|
+
* still running in the worktree, so it launched a duplicate, which collided on
|
|
11
|
+
* the gate's isolated resources (2026-09-29: a false `suite-unreadable` block).
|
|
12
|
+
*
|
|
13
|
+
* One JSON file per (worktree, capability) under `<stateDir>/in-flight/`,
|
|
14
|
+
* written BEFORE the launcher starts waiting and removed once the verdict is
|
|
15
|
+
* consumed. The launch/adopt protocol lives in the CLI
|
|
16
|
+
* (`cli/src/cap-run-tracked.ts`: `runTrackedCapRun` / `launchTrackedCapRun`);
|
|
17
|
+
* this module owns the file format, validation, liveness and listing, so
|
|
18
|
+
* `sched status`, the stale-lease alert, the engine's in-tick heartbeat and the
|
|
19
|
+
* launcher all read the same truth.
|
|
20
|
+
*
|
|
21
|
+
* Every gate is launched in its own process group (`detached`), with `pid` the
|
|
22
|
+
* group leader, so liveness is "does any process of that group still exist".
|
|
23
|
+
*/
|
|
24
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
25
|
+
if (k2 === undefined) k2 = k;
|
|
26
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
27
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
28
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
29
|
+
}
|
|
30
|
+
Object.defineProperty(o, k2, desc);
|
|
31
|
+
}) : (function(o, m, k, k2) {
|
|
32
|
+
if (k2 === undefined) k2 = k;
|
|
33
|
+
o[k2] = m[k];
|
|
34
|
+
}));
|
|
35
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
36
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
37
|
+
}) : function(o, v) {
|
|
38
|
+
o["default"] = v;
|
|
39
|
+
});
|
|
40
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
41
|
+
var ownKeys = function(o) {
|
|
42
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
43
|
+
var ar = [];
|
|
44
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
45
|
+
return ar;
|
|
46
|
+
};
|
|
47
|
+
return ownKeys(o);
|
|
48
|
+
};
|
|
49
|
+
return function (mod) {
|
|
50
|
+
if (mod && mod.__esModule) return mod;
|
|
51
|
+
var result = {};
|
|
52
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
53
|
+
__setModuleDefault(result, mod);
|
|
54
|
+
return result;
|
|
55
|
+
};
|
|
56
|
+
})();
|
|
57
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
58
|
+
exports.IN_FLIGHT_RUN_FILES = exports.IN_FLIGHT_RUN_DIR_PREFIX = exports.IN_FLIGHT_DIR = void 0;
|
|
59
|
+
exports.inFlightDir = inFlightDir;
|
|
60
|
+
exports.ensureInFlightDir = ensureInFlightDir;
|
|
61
|
+
exports.writeInFlight = writeInFlight;
|
|
62
|
+
exports.readInFlight = readInFlight;
|
|
63
|
+
exports.removeInFlight = removeInFlight;
|
|
64
|
+
exports.pidExists = pidExists;
|
|
65
|
+
exports.inFlightAlive = inFlightAlive;
|
|
66
|
+
exports.inFlightFinished = inFlightFinished;
|
|
67
|
+
exports.listInFlight = listInFlight;
|
|
68
|
+
exports.waitingOnLiveGate = waitingOnLiveGate;
|
|
69
|
+
exports.describeInFlight = describeInFlight;
|
|
70
|
+
const node_crypto_1 = require("node:crypto");
|
|
71
|
+
const fs = __importStar(require("node:fs"));
|
|
72
|
+
const path = __importStar(require("node:path"));
|
|
73
|
+
const dispatch_1 = require("./dispatch");
|
|
74
|
+
const persist_1 = require("./persist");
|
|
75
|
+
exports.IN_FLIGHT_DIR = 'in-flight';
|
|
76
|
+
/** Prefix of every run directory the launcher creates inside the in-flight dir. */
|
|
77
|
+
exports.IN_FLIGHT_RUN_DIR_PREFIX = 'run-';
|
|
78
|
+
/** Files inside a run's private directory (`run_dir`). */
|
|
79
|
+
exports.IN_FLIGHT_RUN_FILES = {
|
|
80
|
+
/** Written by the launch wrapper with `cap run`'s exit code once it exits. */
|
|
81
|
+
status: 'status',
|
|
82
|
+
stdout: 'stdout',
|
|
83
|
+
stderr: 'stderr',
|
|
84
|
+
envelope: 'envelope.json',
|
|
85
|
+
};
|
|
86
|
+
/** `/proc/<pid>/stat` post-comm field indexes (see `procStatFields`). */
|
|
87
|
+
const STAT_STATE_IDX = 0;
|
|
88
|
+
const STAT_PGRP_IDX = 2;
|
|
89
|
+
function inFlightDir(stateDir) {
|
|
90
|
+
return path.join(stateDir, exports.IN_FLIGHT_DIR);
|
|
91
|
+
}
|
|
92
|
+
function recordFile(dir, cwd, capability) {
|
|
93
|
+
const key = (0, node_crypto_1.createHash)('sha256')
|
|
94
|
+
.update(`${path.resolve(cwd)}\0${capability}`)
|
|
95
|
+
.digest('hex')
|
|
96
|
+
.slice(0, 16);
|
|
97
|
+
return path.join(dir, `${capability.replace(/[^a-z0-9.-]/gi, '_')}-${key}.json`);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Parse and VALIDATE a record read from `dir`. A record steers a recursive
|
|
101
|
+
* delete (`run_dir`) and a process-group signal (`pid`), so anything that does
|
|
102
|
+
* not look exactly like what the launcher writes — a corrupted, hand-edited or
|
|
103
|
+
* copied-from-elsewhere file — reads as absent.
|
|
104
|
+
*/
|
|
105
|
+
function parseRecord(raw, dir) {
|
|
106
|
+
if (raw === null || typeof raw !== 'object')
|
|
107
|
+
return null;
|
|
108
|
+
const r = raw;
|
|
109
|
+
if (r.version !== 1 ||
|
|
110
|
+
typeof r.capability !== 'string' ||
|
|
111
|
+
typeof r.cwd !== 'string' ||
|
|
112
|
+
typeof r.pid !== 'number' ||
|
|
113
|
+
!Number.isInteger(r.pid) ||
|
|
114
|
+
r.pid <= 1 ||
|
|
115
|
+
r.pid === process.pid ||
|
|
116
|
+
typeof r.started_at !== 'string' ||
|
|
117
|
+
!Number.isFinite(Date.parse(r.started_at)) ||
|
|
118
|
+
typeof r.timeout_ms !== 'number' ||
|
|
119
|
+
!(r.timeout_ms > 0) ||
|
|
120
|
+
typeof r.run_dir !== 'string') {
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
// The run directory must be one the launcher created: a `run-*` child of THIS dir.
|
|
124
|
+
const runDir = path.resolve(r.run_dir);
|
|
125
|
+
if (path.dirname(runDir) !== path.resolve(dir) ||
|
|
126
|
+
!path.basename(runDir).startsWith(exports.IN_FLIGHT_RUN_DIR_PREFIX)) {
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
version: 1,
|
|
131
|
+
capability: r.capability,
|
|
132
|
+
cwd: r.cwd,
|
|
133
|
+
pid: r.pid,
|
|
134
|
+
pid_start: typeof r.pid_start === 'number' ? r.pid_start : null,
|
|
135
|
+
started_at: r.started_at,
|
|
136
|
+
timeout_ms: r.timeout_ms,
|
|
137
|
+
launcher_pid: typeof r.launcher_pid === 'number' ? r.launcher_pid : 0,
|
|
138
|
+
...(typeof r.waiter_pid === 'number' ? { waiter_pid: r.waiter_pid } : {}),
|
|
139
|
+
run_dir: runDir,
|
|
140
|
+
head: typeof r.head === 'string' ? r.head : null,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
function readRecordFile(file, dir) {
|
|
144
|
+
try {
|
|
145
|
+
return parseRecord(JSON.parse(fs.readFileSync(file, 'utf8')), dir);
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
return null;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/** Create `dir` 0700 — and tighten it when it already existed with looser bits. */
|
|
152
|
+
function ensureInFlightDir(dir) {
|
|
153
|
+
fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
154
|
+
try {
|
|
155
|
+
fs.chmodSync(dir, 0o700);
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
// best effort — the record files themselves are 0600
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/** Atomic, durable write (tmp + fsync + rename), 0600, directory 0700. */
|
|
162
|
+
function writeInFlight(dir, record) {
|
|
163
|
+
ensureInFlightDir(dir);
|
|
164
|
+
const file = recordFile(dir, record.cwd, record.capability);
|
|
165
|
+
(0, persist_1.writeAtomic)(file, `${JSON.stringify(record)}\n`);
|
|
166
|
+
return file;
|
|
167
|
+
}
|
|
168
|
+
function readInFlight(dir, cwd, capability) {
|
|
169
|
+
return readRecordFile(recordFile(dir, cwd, capability), dir);
|
|
170
|
+
}
|
|
171
|
+
/** Remove the record (and, unless `keepRunDir`, its run directory). Best effort. */
|
|
172
|
+
function removeInFlight(dir, record, opts = {}) {
|
|
173
|
+
try {
|
|
174
|
+
fs.rmSync(recordFile(dir, record.cwd, record.capability), { force: true });
|
|
175
|
+
}
|
|
176
|
+
catch {
|
|
177
|
+
// best effort
|
|
178
|
+
}
|
|
179
|
+
if (opts.keepRunDir)
|
|
180
|
+
return;
|
|
181
|
+
const runDir = path.resolve(record.run_dir);
|
|
182
|
+
if (path.dirname(runDir) !== path.resolve(dir) ||
|
|
183
|
+
!path.basename(runDir).startsWith(exports.IN_FLIGHT_RUN_DIR_PREFIX)) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
try {
|
|
187
|
+
if (!fs.lstatSync(runDir).isDirectory())
|
|
188
|
+
return; // never follow a symlink
|
|
189
|
+
fs.rmSync(runDir, { recursive: true, force: true });
|
|
190
|
+
}
|
|
191
|
+
catch {
|
|
192
|
+
// best effort
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
/** `kill(pid, 0)` — the process (or, for a negative pid, the group) exists; EPERM counts. */
|
|
196
|
+
function pidExists(pid) {
|
|
197
|
+
try {
|
|
198
|
+
process.kill(pid, 0);
|
|
199
|
+
return true;
|
|
200
|
+
}
|
|
201
|
+
catch (err) {
|
|
202
|
+
return err.code === 'EPERM';
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
function isZombie(pid) {
|
|
206
|
+
return (0, dispatch_1.procStatFields)(pid)?.[STAT_STATE_IDX] === 'Z';
|
|
207
|
+
}
|
|
208
|
+
/** Linux: the leader is the only process left in its group (best effort; false when unknown). */
|
|
209
|
+
function onlyLeaderInGroup(pgid) {
|
|
210
|
+
let entries;
|
|
211
|
+
try {
|
|
212
|
+
entries = fs.readdirSync('/proc');
|
|
213
|
+
}
|
|
214
|
+
catch {
|
|
215
|
+
return false;
|
|
216
|
+
}
|
|
217
|
+
for (const entry of entries) {
|
|
218
|
+
if (!/^\d+$/.test(entry) || Number(entry) === pgid)
|
|
219
|
+
continue;
|
|
220
|
+
const fields = (0, dispatch_1.procStatFields)(Number(entry));
|
|
221
|
+
if (fields !== null &&
|
|
222
|
+
Number(fields[STAT_PGRP_IDX]) === pgid &&
|
|
223
|
+
fields[STAT_STATE_IDX] !== 'Z') {
|
|
224
|
+
return false;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return true;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Whether the gate is still running — identity-checked, because the answer
|
|
231
|
+
* gates a process-GROUP kill:
|
|
232
|
+
* - leader alive and its `/proc` start time matches (or is unknowable on both
|
|
233
|
+
* sides, off Linux) → alive;
|
|
234
|
+
* - leader pid alive but its start time DIFFERS → the pid was recycled. A pid
|
|
235
|
+
* is never reused while it is still a group id, so our gate's group is gone:
|
|
236
|
+
* NOT alive (the recycled pid may lead an unrelated group — never probe it);
|
|
237
|
+
* - leader gone → alive iff some other member of its process group still runs
|
|
238
|
+
* (a `cap run` whose wrapper was killed keeps running).
|
|
239
|
+
*/
|
|
240
|
+
function inFlightAlive(record) {
|
|
241
|
+
if (record.pid <= 1 || record.pid === process.pid)
|
|
242
|
+
return false;
|
|
243
|
+
if (pidExists(record.pid) && !isZombie(record.pid)) {
|
|
244
|
+
const start = (0, dispatch_1.procStartTime)(record.pid);
|
|
245
|
+
if (record.pid_start !== null && start !== null && start !== record.pid_start)
|
|
246
|
+
return false;
|
|
247
|
+
return true;
|
|
248
|
+
}
|
|
249
|
+
if (process.platform === 'win32')
|
|
250
|
+
return false;
|
|
251
|
+
return pidExists(-record.pid) && !(isZombie(record.pid) && onlyLeaderInGroup(record.pid));
|
|
252
|
+
}
|
|
253
|
+
function inFlightFinished(record) {
|
|
254
|
+
return fs.existsSync(path.join(record.run_dir, exports.IN_FLIGHT_RUN_FILES.status));
|
|
255
|
+
}
|
|
256
|
+
/** Every recorded in-flight run, with liveness. Unreadable or invalid files are skipped. */
|
|
257
|
+
function listInFlight(dir) {
|
|
258
|
+
let names;
|
|
259
|
+
try {
|
|
260
|
+
names = fs.readdirSync(dir).filter((n) => n.endsWith('.json'));
|
|
261
|
+
}
|
|
262
|
+
catch {
|
|
263
|
+
return [];
|
|
264
|
+
}
|
|
265
|
+
const out = [];
|
|
266
|
+
for (const name of names.sort()) {
|
|
267
|
+
const file = path.join(dir, name);
|
|
268
|
+
const record = readRecordFile(file, dir);
|
|
269
|
+
if (record === null)
|
|
270
|
+
continue;
|
|
271
|
+
out.push({
|
|
272
|
+
record,
|
|
273
|
+
alive: inFlightAlive(record),
|
|
274
|
+
finished: inFlightFinished(record),
|
|
275
|
+
file,
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
return out;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* #1233: is a gate that THIS process launched or is waiting on still within its
|
|
282
|
+
* budget? The engine's in-tick heartbeat keeps the lease fresh only then — a
|
|
283
|
+
* tick stuck anywhere else goes stale on the usual `engine-hung` schedule.
|
|
284
|
+
*/
|
|
285
|
+
function waitingOnLiveGate(dir, pid = process.pid, now = new Date()) {
|
|
286
|
+
return listInFlight(dir).some(({ record, alive, finished }) => alive &&
|
|
287
|
+
!finished &&
|
|
288
|
+
(record.launcher_pid === pid || record.waiter_pid === pid) &&
|
|
289
|
+
now.getTime() < Date.parse(record.started_at) + record.timeout_ms);
|
|
290
|
+
}
|
|
291
|
+
/** One human line per in-flight run — `sched status`, the stale-lease alert. */
|
|
292
|
+
function describeInFlight(entry) {
|
|
293
|
+
const { record } = entry;
|
|
294
|
+
const state = entry.alive ? 'STILL RUNNING' : entry.finished ? 'finished, not consumed' : 'dead';
|
|
295
|
+
const hint = entry.alive
|
|
296
|
+
? `; the next engine adopts it — or stop it with \`kill -TERM -- -${record.pid}\``
|
|
297
|
+
: '';
|
|
298
|
+
return `${record.capability} pid ${record.pid} (${state}) started ${record.started_at} in ${record.cwd}; logs ${record.run_dir}${hint}`;
|
|
299
|
+
}
|
|
300
|
+
//# sourceMappingURL=in-flight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-flight.js","sourceRoot":"","sources":["../src/in-flight.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,18 +5,19 @@ export { type BatchDispatchDeps, type BatchTickResult, type CapOutcome, MAX_BATC
|
|
|
5
5
|
export { type BatchLogEntry, buildBatchRunLogEntries, dispatchPreambleCmd, listBatchDispatchLogs, modelFromCmd, parsePreambleLine, } from './batch-stats';
|
|
6
6
|
export { type BisectOptions, type BisectOutcome, runAttributionBisect } from './bisect';
|
|
7
7
|
export { type ConfigReloader, type ConfigReloaderOptions, createConfigReloader, dispatchDiff, } from './config-reload';
|
|
8
|
-
export { buildAgentCommand, buildBatchReportPrompt, buildBatchTailPrompt, buildCommandForModel, buildFixPrompt, buildMemberPrompt, buildPrompt, buildReportPrompt, buildTierCommand, createSpawnDeps, DEFAULT_BATCH_REPORT_PROMPT_TEMPLATE, DEFAULT_BATCH_TAIL_PROMPT_TEMPLATE, DEFAULT_DISALLOWED_TOOLS, DEFAULT_DISPATCH_COMMAND, DEFAULT_FIX_PROMPT_TEMPLATE, DEFAULT_MEMBER_PROMPT_TEMPLATE, DEFAULT_PROMPT_TEMPLATE, DEFAULT_REPORT_PROMPT_TEMPLATE, DEFAULT_TIER_MODELS, DISPATCH_PROFILE_RE, DispatchProfileError, dispatchLogPath, dispatchSummary, escalateTier, FULL_REVIEW_MEMBER_DIRECTIVE, fileSizeOrZero, HEADLESS_BACKGROUND_GUARD_HOOK_COMMAND, HEADLESS_BACKGROUND_GUARD_SETTINGS, journalCmdModelFields, KILL_ESCALATION_MS, type KillSignal, killSlotAgent, memberDispatchTier, NO_BACKGROUND_EXIT_INSTRUCTION, OPENCODE_DISPATCH_COMMAND, priorWorkBranch, priorWorkInstruction, procStartTime, type ResolvedDispatch, type ResolvedTierDispatch, reportTierFor, resolveDispatch, resolveProfiledDispatch, resolveTierSpawn, type SpawnDeps, SUPERSESSION_CHECKPOINT_INSTRUCTION, stallTimeoutForPhase, stallTimeoutForSlot, type TierExecutor, type TierSpawn, takeoverInstruction, tierExecutors, unitLogName, WRONG_PROCEDURE_MARKER, wrongProcedureDirective, } from './dispatch';
|
|
8
|
+
export { buildAgentCommand, buildBatchReportPrompt, buildBatchTailPrompt, buildCommandForModel, buildFixPrompt, buildMemberPrompt, buildPrompt, buildReportPrompt, buildTierCommand, createSpawnDeps, DEFAULT_BATCH_REPORT_PROMPT_TEMPLATE, DEFAULT_BATCH_TAIL_PROMPT_TEMPLATE, DEFAULT_DISALLOWED_TOOLS, DEFAULT_DISPATCH_COMMAND, DEFAULT_FIX_PROMPT_TEMPLATE, DEFAULT_MEMBER_PROMPT_TEMPLATE, DEFAULT_PROMPT_TEMPLATE, DEFAULT_REPORT_PROMPT_TEMPLATE, DEFAULT_TIER_MODELS, DISPATCH_PROFILE_RE, DispatchProfileError, dispatchLogPath, dispatchSummary, escalateTier, FULL_REVIEW_MEMBER_DIRECTIVE, fileSizeOrZero, HEADLESS_BACKGROUND_GUARD_HOOK_COMMAND, HEADLESS_BACKGROUND_GUARD_SETTINGS, journalCmdModelFields, KILL_ESCALATION_MS, type KillSignal, killSlotAgent, memberDispatchTier, NO_BACKGROUND_EXIT_INSTRUCTION, OPENCODE_DISPATCH_COMMAND, priorWorkBranch, priorWorkInstruction, procStartTime, procStatFields, type ResolvedDispatch, type ResolvedTierDispatch, reportTierFor, resolveDispatch, resolveProfiledDispatch, resolveTierSpawn, type SpawnDeps, SUPERSESSION_CHECKPOINT_INSTRUCTION, stallTimeoutForPhase, stallTimeoutForSlot, type TierExecutor, type TierSpawn, takeoverInstruction, tierExecutors, unitLogName, WRONG_PROCEDURE_MARKER, wrongProcedureDirective, } from './dispatch';
|
|
9
9
|
export { findDossierRoot, projectRootFor, worktreesDirFor } from './dossier-root';
|
|
10
|
-
export { type EngineDeps, recordTickFailure, runLoop, type TickResult, tick } from './engine';
|
|
11
|
-
export { type AlertNotifier, checkStaleLeaseAlert, type EngineAlert, reportCrashRestart, type StaleLeaseAlertOutcome, } from './engine-alert';
|
|
10
|
+
export { type EngineDeps, type RunLoopOptions, recordTickFailure, runLoop, type TickResult, tick, } from './engine';
|
|
11
|
+
export { type AlertNotifier, checkStaleLeaseAlert, type EngineAlert, reportCrashRestart, SIGKILL_SUSPECTS_HINT, type StaleLeaseAlertOutcome, } from './engine-alert';
|
|
12
12
|
export { clearStoppingMarker, DEFAULT_STOP_TIMEOUT_MS, type EngineExitLogger, type ExitProcess, installEngineExitLogging, readStoppingMarker, type StoppingMarker, writeStoppingMarker, } from './engine-exit';
|
|
13
13
|
export { assertNoDependencyCycle, EnqueueError, type EnqueueInput, type EnqueueOptions, enqueueEntries, LABEL_BLOCK_REASON_PREFIX, labelBlockReason, parseManifest, } from './enqueue';
|
|
14
14
|
export { createExecRunFenceBinder, createExecRunFenceReleaser, createExecRunFencer, FENCE_TIMEOUT_MS, type FenceOutcome, parseFenceGeneration, type RunFenceBinder, type RunFenceReleaser, type RunFencer, takeoverLabelFor, } from './fence';
|
|
15
15
|
export { type BatchPrCandidateVerdict, type BatchPrCheck, batchPhaseBlockedReason, checkBatchPrCandidate, createExecGroundTruth, GIT_OID_RE, type GroundTruth, type GroundTruthMilestone, groundTruthExec, type IssueCloseTruth, isBatchPhaseDone, isBatchTailParked, isMemberBlocked, isMemberComplete, isParkedMilestone, issueCloseReader, isVerifiedComplete, isWrongProcedureMilestone, labelNames, type MergedPrLookup, memberBlockedReason, type PrTruth, parseIssueCloseTruthJson, parseIssueLabelsJson, parseMergedPrListJson, parseMilestoneJson, parseMilestoneListJson, parseOpenPrListJson, parsePrCandidateJson, parsePrViewJson, parseRepoName, parseSetupInfo, prOfMilestone, REVIEW_PARTIAL_REASON, resolveSetupWorktree, type SetupInfo, wrongProcedureShippedPr, } from './groundtruth';
|
|
16
|
+
export { describeInFlight, ensureInFlightDir, IN_FLIGHT_RUN_DIR_PREFIX, IN_FLIGHT_RUN_FILES, type InFlightCapRun, type InFlightListing, inFlightAlive, inFlightDir, inFlightFinished, listInFlight, pidExists, readInFlight, removeInFlight, waitingOnLiveGate, writeInFlight, } from './in-flight';
|
|
16
17
|
export { appendJsonl, batchOfUnit, issueOfUnit, JOURNAL_FILE, Journal, readJsonl, unitEvent, } from './journal';
|
|
17
18
|
export { BATCH_ANCHOR_LABEL, DECISION_PENDING_LABEL, HARD_BLOCK_LABELS, hasLabel, labelOfBlockReason, pickHardBlockLabel, } from './labels';
|
|
18
19
|
export { type MergeMechanism, type MergeMechanismVerdict, mergeMechanismVerdict, shipModeClause, } from './merge-mechanism';
|
|
19
|
-
export { CorruptStateError, type EngineLease, type EngineLeaseAcquisition, type EngineLeaseHolder, type EngineLeaseStatus, LockTimeoutError, SchedStore, writeAtomic, } from './persist';
|
|
20
|
+
export { CorruptStateError, type EngineLease, type EngineLeaseAcquisition, type EngineLeaseHolder, type EngineLeaseStatus, LockTimeoutError, releaseOwnStateLock, SchedStore, writeAtomic, } from './persist';
|
|
20
21
|
export { findGatedWorkEvidence, firstOccurrence, isRegisteredWorktree, type PreservedWork, type PreserveOutcome, preservedWorkInstruction, preserveWork, probeWorktree, pruneRescueRefs, pushedHeadDate, RESCUE_REF_TTL_MS, rescueRefName, rescueUnitSlug, selectRescuableUntracked, skippedSummary, takeoverWorktreeRefusal, type WorktreeProbe, } from './preserve';
|
|
21
22
|
export { createExecFn, defaultExec, type ExecFn, resolveProjectRepo, resolveProjectSlug, sanitizeSlug, schedStateDir, } from './project';
|
|
22
23
|
export { batchRank, compareByPriority, DISPATCHABLE_ISSUE_STATUSES, entryRank, type PriorityRank, } from './readiness';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.buildMemberPrompt = exports.buildFixPrompt = exports.buildCommandForModel = exports.buildBatchTailPrompt = exports.buildBatchReportPrompt = exports.buildAgentCommand = exports.dispatchDiff = exports.createConfigReloader = exports.runAttributionBisect = exports.parsePreambleLine = exports.modelFromCmd = exports.listBatchDispatchLogs = exports.dispatchPreambleCmd = exports.buildBatchRunLogEntries = exports.runBatchTick = exports.resumeBlockedGate = exports.memberBranchFor = exports.MAX_BATCH_AGENT_RESPAWNS = exports.SHA_RE = exports.SAFE_REF_RE = exports.parseVitestJson = exports.parseBoundaryCommits = exports.offendersOf = exports.memberRanges = exports.memberOfCommit = exports.isReadableVitestReport = exports.hasFailingTestEvidence = exports.hasEarnedFailureEvidence = exports.failingTest = exports.attributeByOverlap = exports.attachBatchPr = exports.sweepOrphanAnchors = exports.sweepAnchors = exports.shippingEvidence = exports.renderAnchorCloseComment = exports.parseOrphanAnchorBody = exports.orphanAnchorListArgs = exports.openAnchorBatches = exports.ORPHAN_SWEEP_MAX_MEMBERS = exports.ORPHAN_SWEEP_MAX_ANCHORS = exports.membersShippedVerdict = exports.formatBatchStatus = exports.DEFAULT_BASE_BRANCH = exports.closeAnchor = exports.classifyOrphanAnchor = exports.classifyAnchor = exports.batchAnchorStillOpen = exports.anchorLedgerBlockers = exports.anchorCloseMarker = exports.ANCHOR_CLOSE_BATCH_STATUSES = void 0;
|
|
4
|
-
exports.
|
|
5
|
-
exports.
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
8
|
-
exports.
|
|
9
|
-
exports.TIER_ORDER = exports.TIER_LADDER = exports.TERMINAL_ISSUE_STATUSES = exports.TERMINAL_BATCH_STATUSES = exports.SLOT_ROLES = exports.SchedNotFoundError = exports.SCHEMA_VERSION = exports.SATISFIED_ISSUE_STATUSES = exports.PHASES = void 0;
|
|
4
|
+
exports.tick = exports.runLoop = exports.recordTickFailure = exports.worktreesDirFor = exports.projectRootFor = exports.findDossierRoot = exports.wrongProcedureDirective = exports.WRONG_PROCEDURE_MARKER = exports.unitLogName = exports.tierExecutors = exports.takeoverInstruction = exports.stallTimeoutForSlot = exports.stallTimeoutForPhase = exports.SUPERSESSION_CHECKPOINT_INSTRUCTION = exports.resolveTierSpawn = exports.resolveProfiledDispatch = exports.resolveDispatch = exports.reportTierFor = exports.procStatFields = exports.procStartTime = exports.priorWorkInstruction = exports.priorWorkBranch = exports.OPENCODE_DISPATCH_COMMAND = exports.NO_BACKGROUND_EXIT_INSTRUCTION = exports.memberDispatchTier = exports.killSlotAgent = exports.KILL_ESCALATION_MS = exports.journalCmdModelFields = exports.HEADLESS_BACKGROUND_GUARD_SETTINGS = exports.HEADLESS_BACKGROUND_GUARD_HOOK_COMMAND = exports.fileSizeOrZero = exports.FULL_REVIEW_MEMBER_DIRECTIVE = exports.escalateTier = exports.dispatchSummary = exports.dispatchLogPath = exports.DispatchProfileError = exports.DISPATCH_PROFILE_RE = exports.DEFAULT_TIER_MODELS = exports.DEFAULT_REPORT_PROMPT_TEMPLATE = exports.DEFAULT_PROMPT_TEMPLATE = exports.DEFAULT_MEMBER_PROMPT_TEMPLATE = exports.DEFAULT_FIX_PROMPT_TEMPLATE = exports.DEFAULT_DISPATCH_COMMAND = exports.DEFAULT_DISALLOWED_TOOLS = exports.DEFAULT_BATCH_TAIL_PROMPT_TEMPLATE = exports.DEFAULT_BATCH_REPORT_PROMPT_TEMPLATE = exports.createSpawnDeps = exports.buildTierCommand = exports.buildReportPrompt = exports.buildPrompt = void 0;
|
|
5
|
+
exports.describeInFlight = exports.wrongProcedureShippedPr = exports.resolveSetupWorktree = exports.REVIEW_PARTIAL_REASON = exports.prOfMilestone = exports.parseSetupInfo = exports.parseRepoName = exports.parsePrViewJson = exports.parsePrCandidateJson = exports.parseOpenPrListJson = exports.parseMilestoneListJson = exports.parseMilestoneJson = exports.parseMergedPrListJson = exports.parseIssueLabelsJson = exports.parseIssueCloseTruthJson = exports.memberBlockedReason = exports.labelNames = exports.isWrongProcedureMilestone = exports.isVerifiedComplete = exports.issueCloseReader = exports.isParkedMilestone = exports.isMemberComplete = exports.isMemberBlocked = exports.isBatchTailParked = exports.isBatchPhaseDone = exports.groundTruthExec = exports.GIT_OID_RE = exports.createExecGroundTruth = exports.checkBatchPrCandidate = exports.batchPhaseBlockedReason = exports.takeoverLabelFor = exports.parseFenceGeneration = exports.FENCE_TIMEOUT_MS = exports.createExecRunFencer = exports.createExecRunFenceReleaser = exports.createExecRunFenceBinder = exports.parseManifest = exports.labelBlockReason = exports.LABEL_BLOCK_REASON_PREFIX = exports.enqueueEntries = exports.EnqueueError = exports.assertNoDependencyCycle = exports.writeStoppingMarker = exports.readStoppingMarker = exports.installEngineExitLogging = exports.DEFAULT_STOP_TIMEOUT_MS = exports.clearStoppingMarker = exports.SIGKILL_SUSPECTS_HINT = exports.reportCrashRestart = exports.checkStaleLeaseAlert = void 0;
|
|
6
|
+
exports.resolveProjectSlug = exports.resolveProjectRepo = exports.defaultExec = exports.createExecFn = exports.takeoverWorktreeRefusal = exports.skippedSummary = exports.selectRescuableUntracked = exports.rescueUnitSlug = exports.rescueRefName = exports.RESCUE_REF_TTL_MS = exports.pushedHeadDate = exports.pruneRescueRefs = exports.probeWorktree = exports.preserveWork = exports.preservedWorkInstruction = exports.isRegisteredWorktree = exports.firstOccurrence = exports.findGatedWorkEvidence = exports.writeAtomic = exports.SchedStore = exports.releaseOwnStateLock = exports.LockTimeoutError = exports.CorruptStateError = exports.shipModeClause = exports.mergeMechanismVerdict = exports.pickHardBlockLabel = exports.labelOfBlockReason = exports.hasLabel = exports.HARD_BLOCK_LABELS = exports.DECISION_PENDING_LABEL = exports.BATCH_ANCHOR_LABEL = exports.unitEvent = exports.readJsonl = exports.Journal = exports.JOURNAL_FILE = exports.issueOfUnit = exports.batchOfUnit = exports.appendJsonl = exports.writeInFlight = exports.waitingOnLiveGate = exports.removeInFlight = exports.readInFlight = exports.pidExists = exports.listInFlight = exports.inFlightFinished = exports.inFlightDir = exports.inFlightAlive = exports.IN_FLIGHT_RUN_FILES = exports.IN_FLIGHT_RUN_DIR_PREFIX = exports.ensureInFlightDir = void 0;
|
|
7
|
+
exports.createEmptyState = exports.createBatch = exports.batchMemberUnit = exports.appendEvictions = exports.allowedBatchTransitions = exports.stopIssue = exports.stopBatch = exports.setPaused = exports.runnableUnits = exports.resumeLandedBatch = exports.requeueParkedMember = exports.reprioritizeIssue = exports.reprioritizeBatch = exports.LANDED_RESUMABLE_BLOCK_PREFIXES = exports.isLandedResumableBlock = exports.freeCapacity = exports.dependencyBlockers = exports.computeAssignments = exports.batchBlockers = exports.assignToIdleSlot = exports.abandonIssue = exports.abandonBatch = exports.usageParserFor = exports.schedTelemetryEnabled = exports.schedRunsLogPath = exports.readDispatchLog = exports.parseFenceAbort = exports.finalizeRunLogEntry = exports.buildSchedRunLogEntry = exports.appendSchedRunLog = exports.createExecResumeSeeder = exports.resolveFixAttempt = exports.pruneMemberBranches = exports.listRemoteMemberBranches = exports.handlePrConflict = exports.expandEvictionGroups = exports.evictMembers = exports.dissolveBatch = exports.DISSOLVE_REFUSED_PREFIX = exports.createExecMilestonePoster = exports.checkDissolveTrigger = exports.blockBatch = exports.beginFixAttempt = exports.beginAttribution = exports.entryRank = exports.DISPATCHABLE_ISSUE_STATUSES = exports.compareByPriority = exports.batchRank = exports.schedStateDir = exports.sanitizeSlug = void 0;
|
|
8
|
+
exports.DISSOLVE_EVICTION_FRACTION = exports.DEFAULT_STALL_TIMEOUT_MS = exports.DEFAULT_RECONCILE_INTERVAL_MS = exports.DEFAULT_PR_POLL_INTERVAL_MS = exports.DEFAULT_PHASE_STALL_TIMEOUT_MS = exports.DEFAULT_MAX_SLOTS = exports.DEFAULT_LABEL_POLL_INTERVAL_MS = exports.DEFAULT_ISSUE_PRIORITY = exports.DEFAULT_DISSOLVE_POLICY = exports.DEFAULT_BATCH_PRIORITY = exports.CONFIG_SCHEMA_VERSION = exports.BATCH_PHASES = exports.TEARDOWN_TIMEOUT_MS = exports.runTeardown = exports.poolEntryFor = exports.POOL_BIN = exports.POOL_ARGS_PREFIX = exports.isSafeWorktree = exports.defaultFsExists = exports.STATUS_HEALTH_WARNING_AGE_MS = exports.resolveHungAfterMs = exports.keptWorktreeCandidates = exports.KEPT_WORKTREE_PROBE_LIMIT = exports.HUNG_INTERVALS_ENV = exports.engineHungForMs = exports.defaultKeptWorktreeReader = exports.countUnfinishedWork = exports.buildStatusWarnings = exports.buildStatusReport = exports.buildKeptWorktreeWarnings = exports.validateState = exports.validatedMembersOf = exports.transitionSlot = exports.transitionIssue = exports.transitionBatch = exports.TRANSITIONS = exports.slotsForBatch = exports.requeueMember = exports.recordedMemberBranch = exports.patchSlot = exports.patchBatch = exports.parkMember = exports.PARKED_MEMBER_STATUSES = exports.memberExitEvidence = exports.memberDispatchProfile = exports.isPreservedMember = exports.findEntry = exports.findBatch = exports.duplicateEvictionDetail = exports.distinctEvictions = void 0;
|
|
9
|
+
exports.TIER_ORDER = exports.TIER_LADDER = exports.TERMINAL_ISSUE_STATUSES = exports.TERMINAL_BATCH_STATUSES = exports.SLOT_ROLES = exports.SchedNotFoundError = exports.SCHEMA_VERSION = exports.SATISFIED_ISSUE_STATUSES = exports.PHASES = exports.MIN_MAX_SLOTS = exports.MERGED_BATCH_STATUSES = exports.MEMBER_RUN_STATUSES = exports.MEMBER_EXIT_KINDS = exports.MAX_REBASE_ATTEMPTS = exports.MAX_MAX_SLOTS = exports.MAX_FULL_REVIEW_MEMBERS = exports.MAX_FIX_ATTEMPTS_PER_MEMBER = exports.LIVE_SLOT_STATUSES = exports.LEGACY_SCHEMA_VERSIONS = exports.LEGACY_CONFIG_SCHEMA_VERSIONS = exports.JOURNAL_DEDUP_REANNOUNCE_TICKS = exports.IllegalTransitionError = exports.FIX_ATTEMPT_TIER = exports.ESCALATION_CAP = exports.EngineTooOldError = void 0;
|
|
10
10
|
var anchor_close_1 = require("./anchor-close");
|
|
11
11
|
Object.defineProperty(exports, "ANCHOR_CLOSE_BATCH_STATUSES", { enumerable: true, get: function () { return anchor_close_1.ANCHOR_CLOSE_BATCH_STATUSES; } });
|
|
12
12
|
Object.defineProperty(exports, "anchorCloseMarker", { enumerable: true, get: function () { return anchor_close_1.anchorCloseMarker; } });
|
|
@@ -96,6 +96,7 @@ Object.defineProperty(exports, "OPENCODE_DISPATCH_COMMAND", { enumerable: true,
|
|
|
96
96
|
Object.defineProperty(exports, "priorWorkBranch", { enumerable: true, get: function () { return dispatch_1.priorWorkBranch; } });
|
|
97
97
|
Object.defineProperty(exports, "priorWorkInstruction", { enumerable: true, get: function () { return dispatch_1.priorWorkInstruction; } });
|
|
98
98
|
Object.defineProperty(exports, "procStartTime", { enumerable: true, get: function () { return dispatch_1.procStartTime; } });
|
|
99
|
+
Object.defineProperty(exports, "procStatFields", { enumerable: true, get: function () { return dispatch_1.procStatFields; } });
|
|
99
100
|
Object.defineProperty(exports, "reportTierFor", { enumerable: true, get: function () { return dispatch_1.reportTierFor; } });
|
|
100
101
|
Object.defineProperty(exports, "resolveDispatch", { enumerable: true, get: function () { return dispatch_1.resolveDispatch; } });
|
|
101
102
|
Object.defineProperty(exports, "resolveProfiledDispatch", { enumerable: true, get: function () { return dispatch_1.resolveProfiledDispatch; } });
|
|
@@ -119,6 +120,7 @@ Object.defineProperty(exports, "tick", { enumerable: true, get: function () { re
|
|
|
119
120
|
var engine_alert_1 = require("./engine-alert");
|
|
120
121
|
Object.defineProperty(exports, "checkStaleLeaseAlert", { enumerable: true, get: function () { return engine_alert_1.checkStaleLeaseAlert; } });
|
|
121
122
|
Object.defineProperty(exports, "reportCrashRestart", { enumerable: true, get: function () { return engine_alert_1.reportCrashRestart; } });
|
|
123
|
+
Object.defineProperty(exports, "SIGKILL_SUSPECTS_HINT", { enumerable: true, get: function () { return engine_alert_1.SIGKILL_SUSPECTS_HINT; } });
|
|
122
124
|
var engine_exit_1 = require("./engine-exit");
|
|
123
125
|
Object.defineProperty(exports, "clearStoppingMarker", { enumerable: true, get: function () { return engine_exit_1.clearStoppingMarker; } });
|
|
124
126
|
Object.defineProperty(exports, "DEFAULT_STOP_TIMEOUT_MS", { enumerable: true, get: function () { return engine_exit_1.DEFAULT_STOP_TIMEOUT_MS; } });
|
|
@@ -169,6 +171,20 @@ Object.defineProperty(exports, "prOfMilestone", { enumerable: true, get: functio
|
|
|
169
171
|
Object.defineProperty(exports, "REVIEW_PARTIAL_REASON", { enumerable: true, get: function () { return groundtruth_1.REVIEW_PARTIAL_REASON; } });
|
|
170
172
|
Object.defineProperty(exports, "resolveSetupWorktree", { enumerable: true, get: function () { return groundtruth_1.resolveSetupWorktree; } });
|
|
171
173
|
Object.defineProperty(exports, "wrongProcedureShippedPr", { enumerable: true, get: function () { return groundtruth_1.wrongProcedureShippedPr; } });
|
|
174
|
+
var in_flight_1 = require("./in-flight");
|
|
175
|
+
Object.defineProperty(exports, "describeInFlight", { enumerable: true, get: function () { return in_flight_1.describeInFlight; } });
|
|
176
|
+
Object.defineProperty(exports, "ensureInFlightDir", { enumerable: true, get: function () { return in_flight_1.ensureInFlightDir; } });
|
|
177
|
+
Object.defineProperty(exports, "IN_FLIGHT_RUN_DIR_PREFIX", { enumerable: true, get: function () { return in_flight_1.IN_FLIGHT_RUN_DIR_PREFIX; } });
|
|
178
|
+
Object.defineProperty(exports, "IN_FLIGHT_RUN_FILES", { enumerable: true, get: function () { return in_flight_1.IN_FLIGHT_RUN_FILES; } });
|
|
179
|
+
Object.defineProperty(exports, "inFlightAlive", { enumerable: true, get: function () { return in_flight_1.inFlightAlive; } });
|
|
180
|
+
Object.defineProperty(exports, "inFlightDir", { enumerable: true, get: function () { return in_flight_1.inFlightDir; } });
|
|
181
|
+
Object.defineProperty(exports, "inFlightFinished", { enumerable: true, get: function () { return in_flight_1.inFlightFinished; } });
|
|
182
|
+
Object.defineProperty(exports, "listInFlight", { enumerable: true, get: function () { return in_flight_1.listInFlight; } });
|
|
183
|
+
Object.defineProperty(exports, "pidExists", { enumerable: true, get: function () { return in_flight_1.pidExists; } });
|
|
184
|
+
Object.defineProperty(exports, "readInFlight", { enumerable: true, get: function () { return in_flight_1.readInFlight; } });
|
|
185
|
+
Object.defineProperty(exports, "removeInFlight", { enumerable: true, get: function () { return in_flight_1.removeInFlight; } });
|
|
186
|
+
Object.defineProperty(exports, "waitingOnLiveGate", { enumerable: true, get: function () { return in_flight_1.waitingOnLiveGate; } });
|
|
187
|
+
Object.defineProperty(exports, "writeInFlight", { enumerable: true, get: function () { return in_flight_1.writeInFlight; } });
|
|
172
188
|
var journal_1 = require("./journal");
|
|
173
189
|
Object.defineProperty(exports, "appendJsonl", { enumerable: true, get: function () { return journal_1.appendJsonl; } });
|
|
174
190
|
Object.defineProperty(exports, "batchOfUnit", { enumerable: true, get: function () { return journal_1.batchOfUnit; } });
|
|
@@ -193,6 +209,7 @@ Object.defineProperty(exports, "shipModeClause", { enumerable: true, get: functi
|
|
|
193
209
|
var persist_1 = require("./persist");
|
|
194
210
|
Object.defineProperty(exports, "CorruptStateError", { enumerable: true, get: function () { return persist_1.CorruptStateError; } });
|
|
195
211
|
Object.defineProperty(exports, "LockTimeoutError", { enumerable: true, get: function () { return persist_1.LockTimeoutError; } });
|
|
212
|
+
Object.defineProperty(exports, "releaseOwnStateLock", { enumerable: true, get: function () { return persist_1.releaseOwnStateLock; } });
|
|
196
213
|
Object.defineProperty(exports, "SchedStore", { enumerable: true, get: function () { return persist_1.SchedStore; } });
|
|
197
214
|
Object.defineProperty(exports, "writeAtomic", { enumerable: true, get: function () { return persist_1.writeAtomic; } });
|
|
198
215
|
var preserve_1 = require("./preserve");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+CAmCwB;AAlCtB,2HAAA,2BAA2B,OAAA;AAK3B,iHAAA,iBAAiB,OAAA;AACjB,oHAAA,oBAAoB,OAAA;AACpB,oHAAA,oBAAoB,OAAA;AAEpB,8GAAA,cAAc,OAAA;AACd,oHAAA,oBAAoB,OAAA;AACpB,2GAAA,WAAW,OAAA;AACX,mHAAA,mBAAmB,OAAA;AACnB,iHAAA,iBAAiB,OAAA;AAGjB,qHAAA,qBAAqB,OAAA;AAIrB,wHAAA,wBAAwB,OAAA;AACxB,wHAAA,wBAAwB,OAAA;AAKxB,iHAAA,iBAAiB,OAAA;AACjB,oHAAA,oBAAoB,OAAA;AACpB,qHAAA,qBAAqB,OAAA;AACrB,wHAAA,wBAAwB,OAAA;AAExB,gHAAA,gBAAgB,OAAA;AAChB,4GAAA,YAAY,OAAA;AACZ,kHAAA,kBAAkB,OAAA;AAEpB,yCAAoF;AAAnC,0GAAA,aAAa,OAAA;AAC9D,6CAmBuB;AAjBrB,iHAAA,kBAAkB,OAAA;AAGlB,0GAAA,WAAW,OAAA;AACX,uHAAA,wBAAwB,OAAA;AACxB,qHAAA,sBAAsB,OAAA;AACtB,qHAAA,sBAAsB,OAAA;AAGtB,6GAAA,cAAc,OAAA;AACd,2GAAA,YAAY,OAAA;AAEZ,0GAAA,WAAW,OAAA;AACX,mHAAA,oBAAoB,OAAA;AACpB,8GAAA,eAAe,OAAA;AACf,0GAAA,WAAW,OAAA;AACX,qGAAA,MAAM,OAAA;AAER,mDAQ0B;AAJxB,0HAAA,wBAAwB,OAAA;AACxB,iHAAA,eAAe,OAAA;AACf,mHAAA,iBAAiB,OAAA;AACjB,8GAAA,YAAY,OAAA;AAEd,6CAOuB;AALrB,sHAAA,uBAAuB,OAAA;AACvB,kHAAA,mBAAmB,OAAA;AACnB,oHAAA,qBAAqB,OAAA;AACrB,2GAAA,YAAY,OAAA;AACZ,gHAAA,iBAAiB,OAAA;AAEnB,mCAAwF;AAAvC,8GAAA,oBAAoB,OAAA;AACrE,iDAKyB;AAFvB,qHAAA,oBAAoB,OAAA;AACpB,6GAAA,YAAY,OAAA;AAEd,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+CAmCwB;AAlCtB,2HAAA,2BAA2B,OAAA;AAK3B,iHAAA,iBAAiB,OAAA;AACjB,oHAAA,oBAAoB,OAAA;AACpB,oHAAA,oBAAoB,OAAA;AAEpB,8GAAA,cAAc,OAAA;AACd,oHAAA,oBAAoB,OAAA;AACpB,2GAAA,WAAW,OAAA;AACX,mHAAA,mBAAmB,OAAA;AACnB,iHAAA,iBAAiB,OAAA;AAGjB,qHAAA,qBAAqB,OAAA;AAIrB,wHAAA,wBAAwB,OAAA;AACxB,wHAAA,wBAAwB,OAAA;AAKxB,iHAAA,iBAAiB,OAAA;AACjB,oHAAA,oBAAoB,OAAA;AACpB,qHAAA,qBAAqB,OAAA;AACrB,wHAAA,wBAAwB,OAAA;AAExB,gHAAA,gBAAgB,OAAA;AAChB,4GAAA,YAAY,OAAA;AACZ,kHAAA,kBAAkB,OAAA;AAEpB,yCAAoF;AAAnC,0GAAA,aAAa,OAAA;AAC9D,6CAmBuB;AAjBrB,iHAAA,kBAAkB,OAAA;AAGlB,0GAAA,WAAW,OAAA;AACX,uHAAA,wBAAwB,OAAA;AACxB,qHAAA,sBAAsB,OAAA;AACtB,qHAAA,sBAAsB,OAAA;AAGtB,6GAAA,cAAc,OAAA;AACd,2GAAA,YAAY,OAAA;AAEZ,0GAAA,WAAW,OAAA;AACX,mHAAA,oBAAoB,OAAA;AACpB,8GAAA,eAAe,OAAA;AACf,0GAAA,WAAW,OAAA;AACX,qGAAA,MAAM,OAAA;AAER,mDAQ0B;AAJxB,0HAAA,wBAAwB,OAAA;AACxB,iHAAA,eAAe,OAAA;AACf,mHAAA,iBAAiB,OAAA;AACjB,8GAAA,YAAY,OAAA;AAEd,6CAOuB;AALrB,sHAAA,uBAAuB,OAAA;AACvB,kHAAA,mBAAmB,OAAA;AACnB,oHAAA,qBAAqB,OAAA;AACrB,2GAAA,YAAY,OAAA;AACZ,gHAAA,iBAAiB,OAAA;AAEnB,mCAAwF;AAAvC,8GAAA,oBAAoB,OAAA;AACrE,iDAKyB;AAFvB,qHAAA,oBAAoB,OAAA;AACpB,6GAAA,YAAY,OAAA;AAEd,uCAyDoB;AAxDlB,6GAAA,iBAAiB,OAAA;AACjB,kHAAA,sBAAsB,OAAA;AACtB,gHAAA,oBAAoB,OAAA;AACpB,gHAAA,oBAAoB,OAAA;AACpB,0GAAA,cAAc,OAAA;AACd,6GAAA,iBAAiB,OAAA;AACjB,uGAAA,WAAW,OAAA;AACX,6GAAA,iBAAiB,OAAA;AACjB,4GAAA,gBAAgB,OAAA;AAChB,2GAAA,eAAe,OAAA;AACf,gIAAA,oCAAoC,OAAA;AACpC,8HAAA,kCAAkC,OAAA;AAClC,oHAAA,wBAAwB,OAAA;AACxB,oHAAA,wBAAwB,OAAA;AACxB,uHAAA,2BAA2B,OAAA;AAC3B,0HAAA,8BAA8B,OAAA;AAC9B,mHAAA,uBAAuB,OAAA;AACvB,0HAAA,8BAA8B,OAAA;AAC9B,+GAAA,mBAAmB,OAAA;AACnB,+GAAA,mBAAmB,OAAA;AACnB,gHAAA,oBAAoB,OAAA;AACpB,2GAAA,eAAe,OAAA;AACf,2GAAA,eAAe,OAAA;AACf,wGAAA,YAAY,OAAA;AACZ,wHAAA,4BAA4B,OAAA;AAC5B,0GAAA,cAAc,OAAA;AACd,kIAAA,sCAAsC,OAAA;AACtC,8HAAA,kCAAkC,OAAA;AAClC,iHAAA,qBAAqB,OAAA;AACrB,8GAAA,kBAAkB,OAAA;AAElB,yGAAA,aAAa,OAAA;AACb,8GAAA,kBAAkB,OAAA;AAClB,0HAAA,8BAA8B,OAAA;AAC9B,qHAAA,yBAAyB,OAAA;AACzB,2GAAA,eAAe,OAAA;AACf,gHAAA,oBAAoB,OAAA;AACpB,yGAAA,aAAa,OAAA;AACb,0GAAA,cAAc,OAAA;AAGd,yGAAA,aAAa,OAAA;AACb,2GAAA,eAAe,OAAA;AACf,mHAAA,uBAAuB,OAAA;AACvB,4GAAA,gBAAgB,OAAA;AAEhB,+HAAA,mCAAmC,OAAA;AACnC,gHAAA,oBAAoB,OAAA;AACpB,+GAAA,mBAAmB,OAAA;AAGnB,+GAAA,mBAAmB,OAAA;AACnB,yGAAA,aAAa,OAAA;AACb,uGAAA,WAAW,OAAA;AACX,kHAAA,sBAAsB,OAAA;AACtB,mHAAA,uBAAuB,OAAA;AAEzB,+CAAkF;AAAzE,+GAAA,eAAe,OAAA;AAAE,8GAAA,cAAc,OAAA;AAAE,+GAAA,eAAe,OAAA;AACzD,mCAOkB;AAJhB,2GAAA,iBAAiB,OAAA;AACjB,iGAAA,OAAO,OAAA;AAEP,8FAAA,IAAI,OAAA;AAEN,+CAOwB;AALtB,oHAAA,oBAAoB,OAAA;AAEpB,kHAAA,kBAAkB,OAAA;AAClB,qHAAA,qBAAqB,OAAA;AAGvB,6CASuB;AARrB,kHAAA,mBAAmB,OAAA;AACnB,sHAAA,uBAAuB,OAAA;AAGvB,uHAAA,wBAAwB,OAAA;AACxB,iHAAA,kBAAkB,OAAA;AAElB,kHAAA,mBAAmB,OAAA;AAErB,qCASmB;AARjB,kHAAA,uBAAuB,OAAA;AACvB,uGAAA,YAAY,OAAA;AAGZ,yGAAA,cAAc,OAAA;AACd,oHAAA,yBAAyB,OAAA;AACzB,2GAAA,gBAAgB,OAAA;AAChB,wGAAA,aAAa,OAAA;AAEf,iCAWiB;AAVf,iHAAA,wBAAwB,OAAA;AACxB,mHAAA,0BAA0B,OAAA;AAC1B,4GAAA,mBAAmB,OAAA;AACnB,yGAAA,gBAAgB,OAAA;AAEhB,6GAAA,oBAAoB,OAAA;AAIpB,yGAAA,gBAAgB,OAAA;AAElB,6CAsCuB;AAnCrB,sHAAA,uBAAuB,OAAA;AACvB,oHAAA,qBAAqB,OAAA;AACrB,oHAAA,qBAAqB,OAAA;AACrB,yGAAA,UAAU,OAAA;AAGV,8GAAA,eAAe,OAAA;AAEf,+GAAA,gBAAgB,OAAA;AAChB,gHAAA,iBAAiB,OAAA;AACjB,8GAAA,eAAe,OAAA;AACf,+GAAA,gBAAgB,OAAA;AAChB,gHAAA,iBAAiB,OAAA;AACjB,+GAAA,gBAAgB,OAAA;AAChB,iHAAA,kBAAkB,OAAA;AAClB,wHAAA,yBAAyB,OAAA;AACzB,yGAAA,UAAU,OAAA;AAEV,kHAAA,mBAAmB,OAAA;AAEnB,uHAAA,wBAAwB,OAAA;AACxB,mHAAA,oBAAoB,OAAA;AACpB,oHAAA,qBAAqB,OAAA;AACrB,iHAAA,kBAAkB,OAAA;AAClB,qHAAA,sBAAsB,OAAA;AACtB,kHAAA,mBAAmB,OAAA;AACnB,mHAAA,oBAAoB,OAAA;AACpB,8GAAA,eAAe,OAAA;AACf,4GAAA,aAAa,OAAA;AACb,6GAAA,cAAc,OAAA;AACd,4GAAA,aAAa,OAAA;AACb,oHAAA,qBAAqB,OAAA;AACrB,mHAAA,oBAAoB,OAAA;AAEpB,sHAAA,uBAAuB,OAAA;AAEzB,yCAgBqB;AAfnB,6GAAA,gBAAgB,OAAA;AAChB,8GAAA,iBAAiB,OAAA;AACjB,qHAAA,wBAAwB,OAAA;AACxB,gHAAA,mBAAmB,OAAA;AAGnB,0GAAA,aAAa,OAAA;AACb,wGAAA,WAAW,OAAA;AACX,6GAAA,gBAAgB,OAAA;AAChB,yGAAA,YAAY,OAAA;AACZ,sGAAA,SAAS,OAAA;AACT,yGAAA,YAAY,OAAA;AACZ,2GAAA,cAAc,OAAA;AACd,8GAAA,iBAAiB,OAAA;AACjB,0GAAA,aAAa,OAAA;AAEf,qCAQmB;AAPjB,sGAAA,WAAW,OAAA;AACX,sGAAA,WAAW,OAAA;AACX,sGAAA,WAAW,OAAA;AACX,uGAAA,YAAY,OAAA;AACZ,kGAAA,OAAO,OAAA;AACP,oGAAA,SAAS,OAAA;AACT,oGAAA,SAAS,OAAA;AAEX,4EAA4E;AAC5E,0EAA0E;AAC1E,qEAAqE;AACrE,mCAOkB;AANhB,4GAAA,kBAAkB,OAAA;AAClB,gHAAA,sBAAsB,OAAA;AACtB,2GAAA,iBAAiB,OAAA;AACjB,kGAAA,QAAQ,OAAA;AACR,4GAAA,kBAAkB,OAAA;AAClB,4GAAA,kBAAkB,OAAA;AAEpB,qDAK2B;AAFzB,wHAAA,qBAAqB,OAAA;AACrB,iHAAA,cAAc,OAAA;AAEhB,qCAUmB;AATjB,4GAAA,iBAAiB,OAAA;AAKjB,2GAAA,gBAAgB,OAAA;AAChB,8GAAA,mBAAmB,OAAA;AACnB,qGAAA,UAAU,OAAA;AACV,sGAAA,WAAW,OAAA;AAEb,uCAkBoB;AAjBlB,iHAAA,qBAAqB,OAAA;AACrB,2GAAA,eAAe,OAAA;AACf,gHAAA,oBAAoB,OAAA;AAGpB,oHAAA,wBAAwB,OAAA;AACxB,wGAAA,YAAY,OAAA;AACZ,yGAAA,aAAa,OAAA;AACb,2GAAA,eAAe,OAAA;AACf,0GAAA,cAAc,OAAA;AACd,6GAAA,iBAAiB,OAAA;AACjB,yGAAA,aAAa,OAAA;AACb,0GAAA,cAAc,OAAA;AACd,oHAAA,wBAAwB,OAAA;AACxB,0GAAA,cAAc,OAAA;AACd,mHAAA,uBAAuB,OAAA;AAGzB,qCAQmB;AAPjB,uGAAA,YAAY,OAAA;AACZ,sGAAA,WAAW,OAAA;AAEX,6GAAA,kBAAkB,OAAA;AAClB,6GAAA,kBAAkB,OAAA;AAClB,uGAAA,YAAY,OAAA;AACZ,wGAAA,aAAa,OAAA;AAEf,yCAMqB;AALnB,sGAAA,SAAS,OAAA;AACT,8GAAA,iBAAiB,OAAA;AACjB,wHAAA,2BAA2B,OAAA;AAC3B,sGAAA,SAAS,OAAA;AAGX,uCAkCoB;AA1BlB,4GAAA,gBAAgB,OAAA;AAChB,2GAAA,eAAe,OAAA;AACf,sGAAA,UAAU,OAAA;AACV,gHAAA,oBAAoB,OAAA;AACpB,qHAAA,yBAAyB,OAAA;AACzB,mHAAA,uBAAuB,OAAA;AAGvB,yGAAA,aAAa,OAAA;AAGb,wGAAA,YAAY,OAAA;AACZ,gHAAA,oBAAoB,OAAA;AAEpB,4GAAA,gBAAgB,OAAA;AAEhB,oHAAA,wBAAwB,OAAA;AAIxB,+GAAA,mBAAmB,OAAA;AAGnB,6GAAA,iBAAiB,OAAA;AAInB,6CAKuB;AAJrB,qHAAA,sBAAsB,OAAA;AAKxB,qCAWmB;AAVjB,4GAAA,iBAAiB,OAAA;AACjB,gHAAA,qBAAqB,OAAA;AAErB,8GAAA,mBAAmB,OAAA;AACnB,0GAAA,eAAe,OAAA;AACf,0GAAA,eAAe,OAAA;AAEf,2GAAA,gBAAgB,OAAA;AAChB,gHAAA,qBAAqB,OAAA;AACrB,yGAAA,cAAc,OAAA;AAEhB,yCAqBqB;AAnBnB,yGAAA,YAAY,OAAA;AACZ,yGAAA,YAAY,OAAA;AACZ,6GAAA,gBAAgB,OAAA;AAChB,0GAAA,aAAa,OAAA;AACb,+GAAA,kBAAkB,OAAA;AAElB,+GAAA,kBAAkB,OAAA;AAClB,yGAAA,YAAY,OAAA;AACZ,mHAAA,sBAAsB,OAAA;AACtB,4HAAA,+BAA+B,OAAA;AAE/B,8GAAA,iBAAiB,OAAA;AACjB,8GAAA,iBAAiB,OAAA;AACjB,gHAAA,mBAAmB,OAAA;AACnB,8GAAA,iBAAiB,OAAA;AACjB,0GAAA,aAAa,OAAA;AACb,sGAAA,SAAS,OAAA;AACT,sGAAA,SAAS,OAAA;AACT,sGAAA,SAAS,OAAA;AAEX,iCA2BiB;AA1Bf,gHAAA,uBAAuB,OAAA;AACvB,wGAAA,eAAe,OAAA;AACf,wGAAA,eAAe,OAAA;AACf,oGAAA,WAAW,OAAA;AACX,yGAAA,gBAAgB,OAAA;AAChB,0GAAA,iBAAiB,OAAA;AACjB,gHAAA,uBAAuB,OAAA;AACvB,kGAAA,SAAS,OAAA;AACT,kGAAA,SAAS,OAAA;AACT,0GAAA,iBAAiB,OAAA;AAEjB,8GAAA,qBAAqB,OAAA;AACrB,2GAAA,kBAAkB,OAAA;AAClB,+GAAA,sBAAsB,OAAA;AACtB,mGAAA,UAAU,OAAA;AACV,mGAAA,UAAU,OAAA;AACV,kGAAA,SAAS,OAAA;AACT,6GAAA,oBAAoB,OAAA;AACpB,sGAAA,aAAa,OAAA;AACb,sGAAA,aAAa,OAAA;AACb,oGAAA,WAAW,OAAA;AACX,wGAAA,eAAe,OAAA;AACf,wGAAA,eAAe,OAAA;AACf,uGAAA,cAAc,OAAA;AACd,2GAAA,kBAAkB,OAAA;AAClB,sGAAA,aAAa,OAAA;AAEf,mCAoBkB;AAlBhB,mHAAA,yBAAyB,OAAA;AACzB,2GAAA,iBAAiB,OAAA;AACjB,6GAAA,mBAAmB,OAAA;AACnB,6GAAA,mBAAmB,OAAA;AACnB,mHAAA,yBAAyB,OAAA;AACzB,yGAAA,eAAe,OAAA;AACf,4GAAA,kBAAkB,OAAA;AAClB,mHAAA,yBAAyB,OAAA;AAGzB,gHAAA,sBAAsB,OAAA;AAGtB,4GAAA,kBAAkB,OAAA;AAClB,sHAAA,4BAA4B,OAAA;AAK9B,uCAUoB;AATlB,2GAAA,eAAe,OAAA;AAEf,0GAAA,cAAc,OAAA;AACd,4GAAA,gBAAgB,OAAA;AAChB,oGAAA,QAAQ,OAAA;AACR,wGAAA,YAAY,OAAA;AACZ,uGAAA,WAAW,OAAA;AACX,+GAAA,mBAAmB,OAAA;AAGrB,iCAyEiB;AAvEf,qGAAA,YAAY,OAAA;AAQZ,8GAAA,qBAAqB,OAAA;AAErB,+GAAA,sBAAsB,OAAA;AACtB,gHAAA,uBAAuB,OAAA;AACvB,+GAAA,sBAAsB,OAAA;AACtB,uHAAA,8BAA8B,OAAA;AAC9B,0GAAA,iBAAiB,OAAA;AACjB,uHAAA,8BAA8B,OAAA;AAC9B,oHAAA,2BAA2B,OAAA;AAC3B,sHAAA,6BAA6B,OAAA;AAC7B,iHAAA,wBAAwB,OAAA;AACxB,mHAAA,0BAA0B,OAAA;AAI1B,0GAAA,iBAAiB,OAAA;AACjB,uGAAA,cAAc,OAAA;AAGd,yGAAA,gBAAgB,OAAA;AAEhB,+GAAA,sBAAsB,OAAA;AAEtB,uHAAA,8BAA8B,OAAA;AAG9B,sHAAA,6BAA6B,OAAA;AAC7B,+GAAA,sBAAsB,OAAA;AACtB,2GAAA,kBAAkB,OAAA;AAClB,oHAAA,2BAA2B,OAAA;AAC3B,gHAAA,uBAAuB,OAAA;AACvB,sGAAA,aAAa,OAAA;AACb,4GAAA,mBAAmB,OAAA;AACnB,0GAAA,iBAAiB,OAAA;AACjB,4GAAA,mBAAmB,OAAA;AACnB,8GAAA,qBAAqB,OAAA;AAKrB,sGAAA,aAAa,OAAA;AAEb,+FAAA,MAAM,OAAA;AAKN,iHAAA,wBAAwB,OAAA;AACxB,uGAAA,cAAc,OAAA;AAGd,2GAAA,kBAAkB,OAAA;AAElB,mGAAA,UAAU,OAAA;AAKV,gHAAA,uBAAuB,OAAA;AACvB,gHAAA,uBAAuB,OAAA;AACvB,oGAAA,WAAW,OAAA;AACX,mGAAA,UAAU,OAAA"}
|
package/dist/persist.d.ts
CHANGED
|
@@ -53,6 +53,16 @@ export declare class CorruptStateError extends Error {
|
|
|
53
53
|
readonly filePath: string;
|
|
54
54
|
constructor(filePath: string, cause: unknown);
|
|
55
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* #1233: release the state lock in `dir` when THIS process holds it. A tick
|
|
58
|
+
* runs in a worker thread; a worker that dies inside `withLock` (a
|
|
59
|
+
* `process.exit` in the tick ends only the thread, skipping `finally`) leaves
|
|
60
|
+
* the lock naming the still-live engine pid, so stale-lock takeover never
|
|
61
|
+
* fires. The main thread never holds the lock while a tick is pending, so the
|
|
62
|
+
* tick runner calls this when its worker dies mid-tick. Returns whether a lock
|
|
63
|
+
* was released.
|
|
64
|
+
*/
|
|
65
|
+
export declare function releaseOwnStateLock(dir: string): boolean;
|
|
56
66
|
/** Write `contents` to `filePath` atomically (tmp + fsync + rename, same directory). */
|
|
57
67
|
export declare function writeAtomic(filePath: string, contents: string): void;
|
|
58
68
|
/** Directory creation and rename report these only when another lease contender moved first. */
|
package/dist/persist.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persist.d.ts","sourceRoot":"","sources":["../src/persist.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"persist.d.ts","sourceRoot":"","sources":["../src/persist.ts"],"names":[],"mappings":"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"}
|
package/dist/persist.js
CHANGED
|
@@ -48,6 +48,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
48
48
|
})();
|
|
49
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
50
|
exports.SchedStore = exports.CorruptStateError = exports.LockTimeoutError = void 0;
|
|
51
|
+
exports.releaseOwnStateLock = releaseOwnStateLock;
|
|
51
52
|
exports.writeAtomic = writeAtomic;
|
|
52
53
|
exports.isEngineLeaseRace = isEngineLeaseRace;
|
|
53
54
|
const fs = __importStar(require("node:fs"));
|
|
@@ -86,6 +87,28 @@ class CorruptStateError extends Error {
|
|
|
86
87
|
}
|
|
87
88
|
}
|
|
88
89
|
exports.CorruptStateError = CorruptStateError;
|
|
90
|
+
/**
|
|
91
|
+
* #1233: release the state lock in `dir` when THIS process holds it. A tick
|
|
92
|
+
* runs in a worker thread; a worker that dies inside `withLock` (a
|
|
93
|
+
* `process.exit` in the tick ends only the thread, skipping `finally`) leaves
|
|
94
|
+
* the lock naming the still-live engine pid, so stale-lock takeover never
|
|
95
|
+
* fires. The main thread never holds the lock while a tick is pending, so the
|
|
96
|
+
* tick runner calls this when its worker dies mid-tick. Returns whether a lock
|
|
97
|
+
* was released.
|
|
98
|
+
*/
|
|
99
|
+
function releaseOwnStateLock(dir) {
|
|
100
|
+
const lockPath = path.join(dir, LOCK_DIR);
|
|
101
|
+
try {
|
|
102
|
+
const pid = Number.parseInt(fs.readFileSync(path.join(lockPath, 'pid'), 'utf-8').trim(), 10);
|
|
103
|
+
if (pid !== process.pid)
|
|
104
|
+
return false;
|
|
105
|
+
fs.rmSync(lockPath, { recursive: true, force: true });
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
89
112
|
/** Write `contents` to `filePath` atomically (tmp + fsync + rename, same directory). */
|
|
90
113
|
function writeAtomic(filePath, contents) {
|
|
91
114
|
const dir = path.dirname(filePath);
|