@wjarka/cezarion 0.14.9-dev.991 → 0.14.9-dev.998
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/automations/scheduler.d.ts +6 -0
- package/dist/automations/scheduler.js +45 -17
- package/dist/automations/scheduler.js.map +1 -1
- package/dist/automations/store.d.ts +12 -4
- package/dist/automations/store.js +199 -22
- package/dist/automations/store.js.map +1 -1
- package/dist/automations/types.d.ts +2 -0
- package/dist/automations/types.js +1 -0
- package/dist/automations/types.js.map +1 -1
- package/dist/contract/automations.d.ts +6 -0
- package/dist/contract/index.js +2 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/server/server.d.ts +10 -10
- package/dist/server/server.js +2 -2
- package/dist/server/server.js.map +1 -1
- package/dist/server-install/platforms/ubuntu-vps.d.ts +5 -1
- package/dist/server-install/platforms/ubuntu-vps.js +160 -18
- package/dist/server-install/platforms/ubuntu-vps.js.map +1 -1
- package/dist/server-install/steps.d.ts +4 -2
- package/dist/server-install/steps.js +5 -4
- package/dist/server-install/steps.js.map +1 -1
- package/package.json +3 -3
- package/web/dist/assets/{agent-accounts-Bh1l3ZSb.js → agent-accounts-xNBY6ogh.js} +1 -1
- package/web/dist/assets/{centered-state-kOb8j_BL.js → centered-state-B5dpq65a.js} +1 -1
- package/web/dist/assets/{collapsible-KSKVv9J9.js → collapsible-Be7f34CZ.js} +1 -1
- package/web/dist/assets/{commit-list-ihwhOiFP.js → commit-list-Bmws1Y4F.js} +1 -1
- package/web/dist/assets/{compare-variants-CmAaF9cg.js → compare-variants-Bj_ciF_X.js} +1 -1
- package/web/dist/assets/{diff-Jd8igxRb2.js → diff-DkLLHPBL2.js} +2 -2
- package/web/dist/assets/{diff-controls-D_kgpdoa.js → diff-controls-BBH2il5I.js} +1 -1
- package/web/dist/assets/{diff-stat-C3Id3W_C.js → diff-stat-CRv7eHDb.js} +1 -1
- package/web/dist/assets/{diff-view-BK1wJX0D.js → diff-view-C_c7WhMC.js} +1 -1
- package/web/dist/assets/{dropdown-menu-78Ug-7x2.js → dropdown-menu-CHjcbAg2.js} +1 -1
- package/web/dist/assets/{git-toolbar-DFC6bS8a.js → git-toolbar-2NRZ0XRF.js} +1 -1
- package/web/dist/assets/{github-CY_FpDVo.js → github-BDYGNKU9.js} +1 -1
- package/web/dist/assets/{image-preview-BEOsw8qX.js → image-preview-CVNzfVE6.js} +1 -1
- package/web/dist/assets/{index-GcasY1jB.js → index-CQUfe8MI.js} +4 -4
- package/web/dist/assets/{markdown-DlvW2wEx.js → markdown-DMJKzyRf.js} +1 -1
- package/web/dist/assets/{pill-0JHCf1v8.js → pill-DzKHyuy3.js} +1 -1
- package/web/dist/assets/{project-router-CS_oeLqi.js → project-router-JF2eAjIT.js} +1 -1
- package/web/dist/assets/{prompt-templates-BgXzCOlY.js → prompt-templates-xPSqYS6C.js} +1 -1
- package/web/dist/assets/{repo-git-0_ca69eW.js → repo-git-BEMCTZDG.js} +1 -1
- package/web/dist/assets/{run-diff-xym-7QHm.js → run-diff-CrcC1Yup.js} +1 -1
- package/web/dist/assets/{run-header-BBQOWhJ7.js → run-header-CJzRxOq_.js} +1 -1
- package/web/dist/assets/{skills-BqWbc75M.js → skills-D6KPaEX5.js} +1 -1
- package/web/dist/assets/{tab-link-D6eAdJez.js → tab-link-h-NqfUyU.js} +1 -1
- package/web/dist/assets/{task-changes-qYtGOIA6.js → task-changes-DYE6Ysh1.js} +1 -1
- package/web/dist/assets/{task-commits-CW10ZH8j.js → task-commits-ffmjTxuT.js} +1 -1
- package/web/dist/assets/{task-files-C-IhNjVf.js → task-files-DB9RF932.js} +1 -1
- package/web/dist/assets/{task-thread-DV71Q0au.js → task-thread-BU9PHrPG.js} +1 -1
- package/web/dist/assets/{textarea-D2Gx4GDI.js → textarea-bn5bn1st.js} +1 -1
- package/web/dist/assets/{thread-loading-hVlcCLdm.js → thread-loading-C06KXeIB.js} +1 -1
- package/web/dist/assets/{token-metrics-BQvw6Yoj.js → token-metrics-D6kVakap.js} +1 -1
- package/web/dist/assets/{utils-BW1-Ibnd.js → utils-Cv6VpwoW.js} +1 -1
- package/web/dist/assets/{workflows-DjoTJlOV.js → workflows-BtQQMcsb.js} +1 -1
- package/web/dist/assets/{zoomable-image-DVvXID3t.js → zoomable-image-DUpvct4v.js} +1 -1
- package/web/dist/index.html +13 -13
|
@@ -15,11 +15,16 @@ export interface ProjectAutomationHandle {
|
|
|
15
15
|
launch?: AutomationLauncher;
|
|
16
16
|
onChange?: (automationId: string, revision: number) => void;
|
|
17
17
|
}
|
|
18
|
+
/** A different process currently owns this project's poll lock. */
|
|
19
|
+
export declare class LeaseHeldError extends Error {
|
|
20
|
+
constructor();
|
|
21
|
+
}
|
|
18
22
|
export declare class ProjectAutomationScheduler {
|
|
19
23
|
private readonly handle;
|
|
20
24
|
constructor(handle: ProjectAutomationHandle);
|
|
21
25
|
check(definition: AutomationDefinition, mode?: 'preview' | 'execute'): Promise<GithubPollResult>;
|
|
22
26
|
private launch;
|
|
27
|
+
private recordSkip;
|
|
23
28
|
private recordFailure;
|
|
24
29
|
}
|
|
25
30
|
export interface WorkspaceAutomationSchedulerOptions {
|
|
@@ -33,6 +38,7 @@ export declare class WorkspaceAutomationScheduler {
|
|
|
33
38
|
private timer?;
|
|
34
39
|
private stopped;
|
|
35
40
|
private scheduleGeneration;
|
|
41
|
+
private readonly retryAfter;
|
|
36
42
|
constructor(options: WorkspaceAutomationSchedulerOptions);
|
|
37
43
|
start(): Promise<void>;
|
|
38
44
|
reschedule(): Promise<void>;
|
|
@@ -9,6 +9,10 @@ class GithubRequestArbiter {
|
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
11
|
const githubRequests = new GithubRequestArbiter();
|
|
12
|
+
/** A different process currently owns this project's poll lock. */
|
|
13
|
+
export class LeaseHeldError extends Error {
|
|
14
|
+
constructor() { super('automation polling lease is held by another process'); }
|
|
15
|
+
}
|
|
12
16
|
export class ProjectAutomationScheduler {
|
|
13
17
|
handle;
|
|
14
18
|
constructor(handle) {
|
|
@@ -19,12 +23,13 @@ export class ProjectAutomationScheduler {
|
|
|
19
23
|
if (detectionOnly)
|
|
20
24
|
mode = 'preview';
|
|
21
25
|
const { store } = this.handle;
|
|
22
|
-
const lease = store.acquireLease();
|
|
23
|
-
if (!lease)
|
|
24
|
-
throw new Error('automation polling lease is held by another process');
|
|
25
26
|
const started = Date.now();
|
|
26
27
|
let completion;
|
|
28
|
+
let lease;
|
|
27
29
|
try {
|
|
30
|
+
lease = store.acquireLease();
|
|
31
|
+
if (!lease)
|
|
32
|
+
throw new LeaseHeldError();
|
|
28
33
|
const state = store.state(definition.id) ?? {};
|
|
29
34
|
if (state.backoffUntil && Date.parse(state.backoffUntil) > Date.now()) {
|
|
30
35
|
throw new Error(`automation is backed off until ${state.backoffUntil}`);
|
|
@@ -76,39 +81,53 @@ export class ProjectAutomationScheduler {
|
|
|
76
81
|
return { ...result, candidates: eligible };
|
|
77
82
|
}
|
|
78
83
|
catch (error) {
|
|
79
|
-
if (
|
|
80
|
-
this.
|
|
84
|
+
if (error instanceof LeaseHeldError)
|
|
85
|
+
await this.recordSkip(definition, error);
|
|
86
|
+
else if (mode === 'execute')
|
|
87
|
+
await this.recordFailure(definition, error);
|
|
81
88
|
else
|
|
82
|
-
store.appendLog({ automationId: definition.id, revision: definition.revision, result: 'error', reason: error instanceof Error ? error.message : String(error) });
|
|
89
|
+
await store.appendLog({ automationId: definition.id, revision: definition.revision, result: 'error', reason: error instanceof Error ? error.message : String(error) });
|
|
83
90
|
throw error;
|
|
84
91
|
}
|
|
85
92
|
finally {
|
|
86
|
-
if (completion)
|
|
87
|
-
store.appendLog({ automationId: definition.id, revision: definition.revision, ...completion, durationMs: Date.now() - started });
|
|
88
93
|
try {
|
|
89
|
-
|
|
94
|
+
if (completion)
|
|
95
|
+
await store.appendLog({ automationId: definition.id, revision: definition.revision, ...completion, durationMs: Date.now() - started });
|
|
96
|
+
if (lease) {
|
|
97
|
+
try {
|
|
98
|
+
await store.maybeCompact();
|
|
99
|
+
}
|
|
100
|
+
catch { /* append-only state remains readable; next check retries */ }
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
finally {
|
|
104
|
+
lease?.release();
|
|
90
105
|
}
|
|
91
|
-
catch { /* append-only state remains readable; next check retries */ }
|
|
92
|
-
lease.release();
|
|
93
106
|
}
|
|
94
107
|
}
|
|
95
108
|
async launch(definition, candidate) {
|
|
96
109
|
const receipt = this.handle.store.reserveReceipt({ automationId: definition.id, revision: definition.revision, eventId: candidate.eventId, candidate });
|
|
97
110
|
if (!receipt) {
|
|
98
|
-
this.handle.store.appendLog({ automationId: definition.id, revision: definition.revision, event: candidate.event, result: 'duplicate', reason: 'A durable receipt already exists for this automation and event.', githubNumber: candidate.number, githubTitle: candidate.title, githubUrl: candidate.url });
|
|
111
|
+
await this.handle.store.appendLog({ automationId: definition.id, revision: definition.revision, event: candidate.event, result: 'duplicate', reason: 'A durable receipt already exists for this automation and event.', githubNumber: candidate.number, githubTitle: candidate.title, githubUrl: candidate.url });
|
|
99
112
|
return;
|
|
100
113
|
}
|
|
101
114
|
try {
|
|
102
115
|
const launched = await this.handle.launch(definition, candidate, receipt.receiptId);
|
|
103
116
|
this.handle.store.appendReceipt({ ...receipt, status: 'launched', runId: launched.runId, updatedAt: new Date().toISOString() });
|
|
104
|
-
this.handle.store.appendLog({ automationId: definition.id, revision: definition.revision, event: candidate.event, result: 'launched', receiptId: receipt.receiptId, runId: launched.runId, githubNumber: candidate.number, githubTitle: candidate.title, githubUrl: candidate.url });
|
|
117
|
+
await this.handle.store.appendLog({ automationId: definition.id, revision: definition.revision, event: candidate.event, result: 'launched', receiptId: receipt.receiptId, runId: launched.runId, githubNumber: candidate.number, githubTitle: candidate.title, githubUrl: candidate.url });
|
|
105
118
|
}
|
|
106
119
|
catch (error) {
|
|
107
120
|
this.handle.store.appendReceipt({ ...receipt, status: 'launch-error', error: error instanceof Error ? error.message : String(error), updatedAt: new Date().toISOString() });
|
|
108
121
|
throw error;
|
|
109
122
|
}
|
|
110
123
|
}
|
|
111
|
-
|
|
124
|
+
async recordSkip(definition, error) {
|
|
125
|
+
const { store } = this.handle;
|
|
126
|
+
await store.appendLog({ automationId: definition.id, revision: definition.revision, result: 'skipped', reason: error.message });
|
|
127
|
+
// The lease owner may be writing state. The workspace retry floor handles our next attempt.
|
|
128
|
+
this.handle.onChange?.(definition.id, definition.revision);
|
|
129
|
+
}
|
|
130
|
+
async recordFailure(definition, error) {
|
|
112
131
|
const state = this.handle.store.state(definition.id) ?? {};
|
|
113
132
|
const failures = (state.consecutiveFailures ?? 0) + 1;
|
|
114
133
|
const delay = Math.min(6 * 60 * 60_000, 60_000 * 2 ** (failures - 1));
|
|
@@ -118,7 +137,7 @@ export class ProjectAutomationScheduler {
|
|
|
118
137
|
backoffUntil: new Date(Date.now() + delay).toISOString(),
|
|
119
138
|
nextCheckAt: new Date(Date.now() + delay).toISOString(),
|
|
120
139
|
});
|
|
121
|
-
this.handle.store.appendLog({ automationId: definition.id, revision: definition.revision, result: 'error', reason: error instanceof Error ? error.message : String(error) });
|
|
140
|
+
await this.handle.store.appendLog({ automationId: definition.id, revision: definition.revision, result: 'error', reason: error instanceof Error ? error.message : String(error) });
|
|
122
141
|
this.handle.onChange?.(definition.id, definition.revision);
|
|
123
142
|
}
|
|
124
143
|
}
|
|
@@ -131,12 +150,14 @@ function laterCursor(current, observed) {
|
|
|
131
150
|
|| observed.tieBreaker.localeCompare(current.tieBreaker ?? '');
|
|
132
151
|
return order > 0 ? observed : current;
|
|
133
152
|
}
|
|
153
|
+
const MIN_RETRY_MS = 60_000;
|
|
134
154
|
/** One workspace timer, created only while at least one enabled definition exists. */
|
|
135
155
|
export class WorkspaceAutomationScheduler {
|
|
136
156
|
options;
|
|
137
157
|
timer;
|
|
138
158
|
stopped = true;
|
|
139
159
|
scheduleGeneration = 0;
|
|
160
|
+
retryAfter = new Map();
|
|
140
161
|
constructor(options) {
|
|
141
162
|
this.options = options;
|
|
142
163
|
}
|
|
@@ -168,6 +189,7 @@ export class WorkspaceAutomationScheduler {
|
|
|
168
189
|
if (this.stopped)
|
|
169
190
|
return;
|
|
170
191
|
const due = [];
|
|
192
|
+
const live = new Set();
|
|
171
193
|
for (const projectId of this.options.coordinator.enabledProjectIds()) {
|
|
172
194
|
const store = this.options.coordinator.store(projectId);
|
|
173
195
|
if (!store)
|
|
@@ -176,16 +198,22 @@ export class WorkspaceAutomationScheduler {
|
|
|
176
198
|
if (!handle)
|
|
177
199
|
continue;
|
|
178
200
|
for (const definition of store.list().filter((item) => item.enabled)) {
|
|
179
|
-
|
|
201
|
+
const key = `${projectId}:${definition.id}`;
|
|
202
|
+
live.add(key);
|
|
203
|
+
const at = Date.parse(store.state(definition.id)?.nextCheckAt ?? new Date().toISOString());
|
|
204
|
+
due.push({ key, at: Math.max(at, this.retryAfter.get(key) ?? 0), retryAfterMs: Math.max(definition.intervalSeconds * 1_000, MIN_RETRY_MS), definition, scheduler: new ProjectAutomationScheduler(handle) });
|
|
180
205
|
}
|
|
181
206
|
}
|
|
207
|
+
for (const key of this.retryAfter.keys())
|
|
208
|
+
if (!live.has(key))
|
|
209
|
+
this.retryAfter.delete(key);
|
|
182
210
|
if (!due.length)
|
|
183
211
|
return;
|
|
184
212
|
due.sort((a, b) => a.at - b.at);
|
|
185
213
|
const next = due[0];
|
|
186
214
|
this.timer = setTimeout(() => {
|
|
187
215
|
this.timer = undefined;
|
|
188
|
-
void next.scheduler.check(next.definition).
|
|
216
|
+
void next.scheduler.check(next.definition).then(() => { this.retryAfter.delete(next.key); }, () => { this.retryAfter.set(next.key, (this.options.now?.() ?? Date.now()) + next.retryAfterMs); }).finally(() => this.schedule());
|
|
189
217
|
}, Math.max(0, next.at - (this.options.now?.() ?? Date.now())));
|
|
190
218
|
}
|
|
191
219
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/automations/scheduler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/automations/scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import type { GithubCandidate } from './github-poller.ts';
|
|
|
3
3
|
export interface AutomationStoreOptions {
|
|
4
4
|
warn?: (message: string) => void;
|
|
5
5
|
now?: () => Date;
|
|
6
|
+
processAlive?: (pid: number) => boolean;
|
|
6
7
|
}
|
|
7
8
|
export declare class AutomationStore {
|
|
8
9
|
readonly dataDir: string;
|
|
@@ -11,7 +12,6 @@ export declare class AutomationStore {
|
|
|
11
12
|
private stateFile;
|
|
12
13
|
private definitions;
|
|
13
14
|
private warned;
|
|
14
|
-
private logSeq;
|
|
15
15
|
private readonly now;
|
|
16
16
|
private readonly secrets;
|
|
17
17
|
static open(dataDir: string, options?: AutomationStoreOptions): AutomationStore;
|
|
@@ -32,7 +32,7 @@ export declare class AutomationStore {
|
|
|
32
32
|
eventId: string;
|
|
33
33
|
candidate?: GithubCandidate;
|
|
34
34
|
}): AutomationReceipt | undefined;
|
|
35
|
-
appendLog(record: Omit<AutomationLogRecord, 'seq' | 'ts'> & Partial<Pick<AutomationLogRecord, 'ts'>>): AutomationLogRecord
|
|
35
|
+
appendLog(record: Omit<AutomationLogRecord, 'seq' | 'ts'> & Partial<Pick<AutomationLogRecord, 'ts'>>): Promise<AutomationLogRecord>;
|
|
36
36
|
logs(options?: {
|
|
37
37
|
automationId?: string;
|
|
38
38
|
result?: AutomationLogRecord['result'];
|
|
@@ -41,9 +41,16 @@ export declare class AutomationStore {
|
|
|
41
41
|
cursor?: number;
|
|
42
42
|
limit?: number;
|
|
43
43
|
}): AutomationLogRecord[];
|
|
44
|
-
compact(): void
|
|
45
|
-
maybeCompact(): void
|
|
44
|
+
compact(): Promise<void>;
|
|
45
|
+
maybeCompact(): Promise<void>;
|
|
46
46
|
acquireLease(staleAfterMs?: number): AutomationLease | undefined;
|
|
47
|
+
private withLogLease;
|
|
48
|
+
private tryAcquireLease;
|
|
49
|
+
/** Only one process may inspect and remove an abandoned poll lock at a time. */
|
|
50
|
+
private acquireReclaimGuard;
|
|
51
|
+
/** Fresh live guards are respected; abandoned or aged-out guards are recoverable. */
|
|
52
|
+
private retireAbandonedReclaimGuard;
|
|
53
|
+
private isLeaseAbandoned;
|
|
47
54
|
private load;
|
|
48
55
|
private loadDefinitions;
|
|
49
56
|
private persistDefinitions;
|
|
@@ -61,5 +68,6 @@ export declare class AutomationLease {
|
|
|
61
68
|
private readonly fd;
|
|
62
69
|
private released;
|
|
63
70
|
constructor(path: string, fd: number);
|
|
71
|
+
isCurrent(): boolean;
|
|
64
72
|
release(): void;
|
|
65
73
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { closeSync, existsSync, mkdirSync, openSync, readFileSync, renameSync, statSync, unlinkSync, writeFileSync, } from 'node:fs';
|
|
1
|
+
import { closeSync, existsSync, fstatSync, mkdirSync, openSync, readFileSync, renameSync, rmSync, rmdirSync, statSync, unlinkSync, writeFileSync, } from 'node:fs';
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
3
|
import { collectSecretValues, redactDeep } from '../core/secret-redaction.js';
|
|
4
4
|
import { join } from 'node:path';
|
|
@@ -7,8 +7,12 @@ const DEFINITIONS = 'automations.json';
|
|
|
7
7
|
const STATE = 'automation-state.json';
|
|
8
8
|
const RECEIPTS = 'automation-receipts.ndjson';
|
|
9
9
|
const LOG = 'automation-log.ndjson';
|
|
10
|
+
const LOG_LOCK = 'automation-log.lock';
|
|
11
|
+
const LOG_RECLAIM = 'automation-log.reclaim';
|
|
10
12
|
const POLL_LOCK = 'automation-poll.lock';
|
|
13
|
+
const POLL_RECLAIM = 'automation-poll.reclaim';
|
|
11
14
|
const RETENTION_MS = 90 * 24 * 60 * 60 * 1_000;
|
|
15
|
+
const LEASE_RECLAIM_ATTEMPTS = 1;
|
|
12
16
|
export class AutomationStore {
|
|
13
17
|
dataDir;
|
|
14
18
|
options;
|
|
@@ -16,7 +20,6 @@ export class AutomationStore {
|
|
|
16
20
|
stateFile = { version: 1, states: {} };
|
|
17
21
|
definitions = new Map();
|
|
18
22
|
warned = new Set();
|
|
19
|
-
logSeq = 0;
|
|
20
23
|
now;
|
|
21
24
|
secrets = collectSecretValues();
|
|
22
25
|
static open(dataDir, options = {}) {
|
|
@@ -117,13 +120,17 @@ export class AutomationStore {
|
|
|
117
120
|
return receipt;
|
|
118
121
|
}
|
|
119
122
|
appendLog(record) {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
123
|
+
return this.withLogLease(() => {
|
|
124
|
+
const seq = this.readNdjson(LOG, automationLogRecordSchema)
|
|
125
|
+
.reduce((highest, row) => Math.max(highest, row.seq), 0) + 1;
|
|
126
|
+
const parsed = automationLogRecordSchema.parse({
|
|
127
|
+
...record,
|
|
128
|
+
seq,
|
|
129
|
+
ts: record.ts ?? this.now().toISOString(),
|
|
130
|
+
});
|
|
131
|
+
this.appendNdjson(LOG, redactDeep(parsed, this.secrets));
|
|
132
|
+
return parsed;
|
|
124
133
|
});
|
|
125
|
-
this.appendNdjson(LOG, redactDeep(parsed, this.secrets));
|
|
126
|
-
return parsed;
|
|
127
134
|
}
|
|
128
135
|
logs(options = {}) {
|
|
129
136
|
const limit = Math.min(Math.max(options.limit ?? 100, 1), 100);
|
|
@@ -136,39 +143,177 @@ export class AutomationStore {
|
|
|
136
143
|
.slice(-limit)
|
|
137
144
|
.reverse();
|
|
138
145
|
}
|
|
139
|
-
compact() {
|
|
146
|
+
async compact() {
|
|
140
147
|
const cutoff = this.now().getTime() - RETENTION_MS;
|
|
141
148
|
const latest = [...this.latestReceipts().values()].filter((row) => Date.parse(row.updatedAt) >= cutoff);
|
|
142
149
|
this.rewriteNdjson(RECEIPTS, latest);
|
|
143
|
-
|
|
144
|
-
|
|
150
|
+
await this.withLogLease(() => {
|
|
151
|
+
const logs = this.readNdjson(LOG, automationLogRecordSchema);
|
|
152
|
+
this.rewriteNdjson(LOG, logs.slice(-10_000));
|
|
153
|
+
});
|
|
145
154
|
}
|
|
146
|
-
maybeCompact() {
|
|
155
|
+
async maybeCompact() {
|
|
147
156
|
if (this.receipts().length > 20_000 || this.readNdjson(LOG, automationLogRecordSchema).length > 10_500) {
|
|
148
|
-
this.compact();
|
|
157
|
+
await this.compact();
|
|
149
158
|
}
|
|
150
159
|
}
|
|
151
160
|
acquireLease(staleAfterMs = 10 * 60_000) {
|
|
152
161
|
mkdirSync(this.dataDir, { recursive: true });
|
|
153
|
-
|
|
162
|
+
return this.tryAcquireLease(join(this.dataDir, POLL_LOCK), join(this.dataDir, POLL_RECLAIM), staleAfterMs, 0, false);
|
|
163
|
+
}
|
|
164
|
+
async withLogLease(operation) {
|
|
165
|
+
mkdirSync(this.dataDir, { recursive: true });
|
|
166
|
+
const path = join(this.dataDir, LOG_LOCK);
|
|
167
|
+
const guardPath = join(this.dataDir, LOG_RECLAIM);
|
|
168
|
+
const deadline = Date.now() + 15_000;
|
|
169
|
+
let lease;
|
|
170
|
+
while (!lease && Date.now() < deadline) {
|
|
171
|
+
lease = this.tryAcquireLease(path, guardPath, 10 * 60_000, 0, false);
|
|
172
|
+
if (!lease)
|
|
173
|
+
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
174
|
+
}
|
|
175
|
+
if (!lease)
|
|
176
|
+
throw new Error('automation log lock is busy; retry shortly');
|
|
177
|
+
try {
|
|
178
|
+
return operation();
|
|
179
|
+
}
|
|
180
|
+
finally {
|
|
181
|
+
lease.release();
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
tryAcquireLease(path, guardPath, staleAfterMs, attempt, reclaiming) {
|
|
185
|
+
if (!reclaiming && existsSync(guardPath)) {
|
|
186
|
+
const releaseGuard = this.acquireReclaimGuard(guardPath, staleAfterMs);
|
|
187
|
+
if (!releaseGuard)
|
|
188
|
+
return undefined;
|
|
189
|
+
releaseGuard();
|
|
190
|
+
}
|
|
154
191
|
try {
|
|
155
192
|
const fd = openSync(path, 'wx', 0o600);
|
|
156
193
|
writeFileSync(fd, JSON.stringify({ pid: process.pid, startedAt: this.now().toISOString() }));
|
|
157
|
-
|
|
194
|
+
const lease = new AutomationLease(path, fd);
|
|
195
|
+
if (!reclaiming && (existsSync(guardPath) || !lease.isCurrent())) {
|
|
196
|
+
lease.release();
|
|
197
|
+
return undefined;
|
|
198
|
+
}
|
|
199
|
+
return lease;
|
|
158
200
|
}
|
|
159
201
|
catch {
|
|
202
|
+
if (attempt >= LEASE_RECLAIM_ATTEMPTS)
|
|
203
|
+
return undefined;
|
|
204
|
+
const releaseGuard = this.acquireReclaimGuard(guardPath, staleAfterMs);
|
|
205
|
+
if (!releaseGuard)
|
|
206
|
+
return undefined;
|
|
160
207
|
try {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
208
|
+
// Keep the observed inode open: some filesystems immediately reuse an unlinked inode.
|
|
209
|
+
const observedFd = openSync(path, 'r');
|
|
210
|
+
try {
|
|
211
|
+
const observed = fstatSync(observedFd);
|
|
212
|
+
if (this.isLeaseAbandoned(path, staleAfterMs) && sameFile(observed, statSync(path))) {
|
|
213
|
+
unlinkSync(path);
|
|
214
|
+
return this.tryAcquireLease(path, guardPath, staleAfterMs, attempt + 1, true);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
finally {
|
|
218
|
+
closeSync(observedFd);
|
|
164
219
|
}
|
|
165
220
|
}
|
|
166
221
|
catch {
|
|
167
222
|
// A contender removed the lock or the directory is read-only.
|
|
168
223
|
}
|
|
224
|
+
finally {
|
|
225
|
+
releaseGuard();
|
|
226
|
+
}
|
|
169
227
|
return undefined;
|
|
170
228
|
}
|
|
171
229
|
}
|
|
230
|
+
/** Only one process may inspect and remove an abandoned poll lock at a time. */
|
|
231
|
+
acquireReclaimGuard(path, staleAfterMs) {
|
|
232
|
+
for (let attempt = 0; attempt <= 1; attempt++) {
|
|
233
|
+
try {
|
|
234
|
+
mkdirSync(path, { mode: 0o700 });
|
|
235
|
+
}
|
|
236
|
+
catch (error) {
|
|
237
|
+
if (error.code !== 'EEXIST' || attempt > 0)
|
|
238
|
+
return undefined;
|
|
239
|
+
if (!this.retireAbandonedReclaimGuard(path, staleAfterMs))
|
|
240
|
+
return undefined;
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
243
|
+
const ownerPath = join(path, 'owner.json');
|
|
244
|
+
try {
|
|
245
|
+
writeFileSync(ownerPath, JSON.stringify({ pid: process.pid }), { flag: 'wx', mode: 0o600 });
|
|
246
|
+
}
|
|
247
|
+
catch {
|
|
248
|
+
try {
|
|
249
|
+
rmdirSync(path);
|
|
250
|
+
}
|
|
251
|
+
catch { /* a crashed writer's guard ages out */ }
|
|
252
|
+
return undefined;
|
|
253
|
+
}
|
|
254
|
+
const identity = statSync(path);
|
|
255
|
+
return () => {
|
|
256
|
+
try {
|
|
257
|
+
if (!sameFile(identity, statSync(path)) || readLeasePid(ownerPath) !== process.pid)
|
|
258
|
+
return;
|
|
259
|
+
unlinkSync(ownerPath);
|
|
260
|
+
rmdirSync(path);
|
|
261
|
+
}
|
|
262
|
+
catch { /* another process may already have retired it */ }
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
return undefined;
|
|
266
|
+
}
|
|
267
|
+
/** Fresh live guards are respected; abandoned or aged-out guards are recoverable. */
|
|
268
|
+
retireAbandonedReclaimGuard(path, staleAfterMs) {
|
|
269
|
+
const marker = join(path, '.reaping');
|
|
270
|
+
let claimedToken;
|
|
271
|
+
try {
|
|
272
|
+
const identity = statSync(path);
|
|
273
|
+
const pid = readLeasePid(join(path, 'owner.json'));
|
|
274
|
+
const agedOut = this.now().getTime() - identity.mtimeMs > staleAfterMs;
|
|
275
|
+
if (!agedOut && (pid === undefined || pid === process.pid || (this.options.processAlive ?? isProcessAlive)(pid)))
|
|
276
|
+
return false;
|
|
277
|
+
const token = randomUUID();
|
|
278
|
+
try {
|
|
279
|
+
writeFileSync(marker, JSON.stringify({ pid: process.pid, token }), { flag: 'wx', mode: 0o600 });
|
|
280
|
+
claimedToken = token;
|
|
281
|
+
}
|
|
282
|
+
catch {
|
|
283
|
+
// A reaper that crashed after claiming the guard leaves a bounded age fallback.
|
|
284
|
+
if (this.now().getTime() - statSync(marker).mtimeMs > staleAfterMs) {
|
|
285
|
+
unlinkSync(marker);
|
|
286
|
+
}
|
|
287
|
+
return false;
|
|
288
|
+
}
|
|
289
|
+
if (!sameFile(identity, statSync(path)))
|
|
290
|
+
return false;
|
|
291
|
+
const retired = `${path}.retired-${randomUUID()}`;
|
|
292
|
+
renameSync(path, retired);
|
|
293
|
+
rmSync(retired, { recursive: true, force: true });
|
|
294
|
+
return true;
|
|
295
|
+
}
|
|
296
|
+
catch {
|
|
297
|
+
return false;
|
|
298
|
+
}
|
|
299
|
+
finally {
|
|
300
|
+
if (claimedToken) {
|
|
301
|
+
try {
|
|
302
|
+
if (JSON.parse(readFileSync(marker, 'utf8')).token === claimedToken)
|
|
303
|
+
unlinkSync(marker);
|
|
304
|
+
}
|
|
305
|
+
catch { /* the guard moved or was retired */ }
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
isLeaseAbandoned(path, staleAfterMs) {
|
|
310
|
+
if (this.now().getTime() - statSync(path).mtimeMs > staleAfterMs)
|
|
311
|
+
return true;
|
|
312
|
+
const pid = readLeasePid(path);
|
|
313
|
+
if (pid === undefined || pid === process.pid)
|
|
314
|
+
return false;
|
|
315
|
+
return !(this.options.processAlive ?? isProcessAlive)(pid);
|
|
316
|
+
}
|
|
172
317
|
load() {
|
|
173
318
|
mkdirSync(this.dataDir, { recursive: true });
|
|
174
319
|
this.loadDefinitions();
|
|
@@ -176,8 +321,6 @@ export class AutomationStore {
|
|
|
176
321
|
version: 1,
|
|
177
322
|
states: {},
|
|
178
323
|
});
|
|
179
|
-
const logs = this.readNdjson(LOG, automationLogRecordSchema);
|
|
180
|
-
this.logSeq = logs.at(-1)?.seq ?? 0;
|
|
181
324
|
}
|
|
182
325
|
loadDefinitions() {
|
|
183
326
|
this.definitionsFile = this.readJson(DEFINITIONS, automationDefinitionsFileSchema, {
|
|
@@ -274,6 +417,29 @@ export class AutomationStore {
|
|
|
274
417
|
this.options.warn?.(message);
|
|
275
418
|
}
|
|
276
419
|
}
|
|
420
|
+
function readLeasePid(path) {
|
|
421
|
+
try {
|
|
422
|
+
const parsed = JSON.parse(readFileSync(path, 'utf8'));
|
|
423
|
+
const pid = parsed?.pid;
|
|
424
|
+
return typeof pid === 'number' && Number.isInteger(pid) && pid > 0 ? pid : undefined;
|
|
425
|
+
}
|
|
426
|
+
catch {
|
|
427
|
+
return undefined;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
/** An unknown probe error is treated like a live process; only ESRCH proves absence. */
|
|
431
|
+
function isProcessAlive(pid) {
|
|
432
|
+
try {
|
|
433
|
+
process.kill(pid, 0);
|
|
434
|
+
return true;
|
|
435
|
+
}
|
|
436
|
+
catch (error) {
|
|
437
|
+
return error.code !== 'ESRCH';
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
function sameFile(left, right) {
|
|
441
|
+
return left.dev === right.dev && left.ino === right.ino;
|
|
442
|
+
}
|
|
277
443
|
export class AutomationLease {
|
|
278
444
|
path;
|
|
279
445
|
fd;
|
|
@@ -282,17 +448,28 @@ export class AutomationLease {
|
|
|
282
448
|
this.path = path;
|
|
283
449
|
this.fd = fd;
|
|
284
450
|
}
|
|
451
|
+
isCurrent() {
|
|
452
|
+
try {
|
|
453
|
+
return sameFile(fstatSync(this.fd), statSync(this.path));
|
|
454
|
+
}
|
|
455
|
+
catch {
|
|
456
|
+
return false;
|
|
457
|
+
}
|
|
458
|
+
}
|
|
285
459
|
release() {
|
|
286
460
|
if (this.released)
|
|
287
461
|
return;
|
|
288
462
|
this.released = true;
|
|
289
|
-
closeSync(this.fd);
|
|
290
463
|
try {
|
|
291
|
-
|
|
464
|
+
if (this.isCurrent())
|
|
465
|
+
unlinkSync(this.path);
|
|
292
466
|
}
|
|
293
467
|
catch {
|
|
294
468
|
// Already removed during shutdown cleanup.
|
|
295
469
|
}
|
|
470
|
+
finally {
|
|
471
|
+
closeSync(this.fd);
|
|
472
|
+
}
|
|
296
473
|
}
|
|
297
474
|
}
|
|
298
475
|
//# sourceMappingURL=store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/automations/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/automations/store.ts"],"names":[],"mappings":"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"}
|