4runr-os 2.10.54 → 2.10.55

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.
@@ -438,6 +438,8 @@ fastify.post('/api/runs', {
438
438
  runsCreated.inc({ status: run.status });
439
439
  runsActive.inc();
440
440
  logger.info('Run created', { runId: run.id, name: run.name });
441
+ const { scheduleRunRetentionEnforcement } = await import('./runs/run-retention.js');
442
+ scheduleRunRetentionEnforcement();
441
443
  const eventStream = new GatewayEventStream();
442
444
  sentinelEventStreams.set(run.id, eventStream);
443
445
  eventStream.emitCreated(run.id);
@@ -1061,6 +1063,21 @@ const start = async () => {
1061
1063
  baseLogger.info(`Gateway server listening on ${HOST}:${PORT}`);
1062
1064
  baseLogger.info(`Persistence mode: ${persistenceMode}`);
1063
1065
  baseLogger.info(`Authentication: ${env.AUTH_ENABLED ? 'enabled' : 'disabled'}`);
1066
+ if (persistenceMode !== 'memory') {
1067
+ const { enforceRunRetention, getRunRetentionConfig } = await import('./runs/run-retention.js');
1068
+ const retentionCfg = getRunRetentionConfig();
1069
+ if (retentionCfg.enabled) {
1070
+ baseLogger.info('Run retention enabled', {
1071
+ maxCount: retentionCfg.maxCount,
1072
+ maxAgeDays: retentionCfg.maxAgeDays,
1073
+ });
1074
+ enforceRunRetention(retentionCfg).catch((err) => {
1075
+ baseLogger.warn('Startup run retention failed', {
1076
+ error: err instanceof Error ? err.message : String(err),
1077
+ });
1078
+ });
1079
+ }
1080
+ }
1064
1081
  if (persistenceMode === 'memory') {
1065
1082
  baseLogger.warn('[Gateway] Running in NO-PERSISTENCE / MEMORY mode. All state is ephemeral.');
1066
1083
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { Run, RunStatus } from './types.js';
2
+ export interface RunRetentionConfig {
3
+ enabled: boolean;
4
+ maxCount: number;
5
+ maxAgeDays: number;
6
+ }
7
+ export interface RunRetentionResult {
8
+ deletedByCount: number;
9
+ deletedByAge: number;
10
+ totalAfter: number;
11
+ }
12
+ export declare function getRunRetentionConfig(): RunRetentionConfig;
13
+ export declare function isTerminalRunForRetention(status: RunStatus): boolean;
14
+ export declare function scheduleRunRetentionEnforcement(): void;
15
+ export declare function enforceRunRetention(config?: RunRetentionConfig): Promise<RunRetentionResult>;
16
+ export declare function sortRunsOldestFirst(runs: Run[]): Run[];
17
+ //# sourceMappingURL=run-retention.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-retention.d.ts","sourceRoot":"","sources":["../../../../../src/runs/run-retention.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAMjD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IAEjB,QAAQ,EAAE,MAAM,CAAC;IAEjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,CAY1D;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAEpE;AAGD,wBAAgB,+BAA+B,IAAI,IAAI,CAOtD;AAED,wBAAsB,mBAAmB,CACvC,MAAM,GAAE,kBAA4C,GACnD,OAAO,CAAC,kBAAkB,CAAC,CAU7B;AAqGD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,CAItD"}
@@ -0,0 +1,124 @@
1
+ import { createLogger } from '@4runr/shared';
2
+ import { getPersistenceMode } from '../config/persistence.js';
3
+ import { getPrismaClient } from '../db/prisma.js';
4
+ import { getRunStore } from './index.js';
5
+ const logger = createLogger('Gateway:RunRetention');
6
+ const TERMINAL_STATUSES = ['completed', 'failed', 'killed'];
7
+ export function getRunRetentionConfig() {
8
+ const maxCountRaw = process.env['RUN_RETENTION_MAX_COUNT'] ??
9
+ (process.env['NODE_ENV'] === 'production' ? '500' : '100');
10
+ const maxAgeRaw = parseInt(process.env['RUN_RETENTION_MAX_AGE_DAYS'] ?? '0', 10);
11
+ const maxCountParsed = parseInt(maxCountRaw, 10);
12
+ return {
13
+ enabled: process.env['RUN_RETENTION_ENABLED'] !== 'false',
14
+ maxCount: Number.isFinite(maxCountParsed) && maxCountParsed >= 0 ? maxCountParsed : 100,
15
+ maxAgeDays: Number.isFinite(maxAgeRaw) && maxAgeRaw >= 0 ? maxAgeRaw : 0,
16
+ };
17
+ }
18
+ export function isTerminalRunForRetention(status) {
19
+ return TERMINAL_STATUSES.includes(status);
20
+ }
21
+ export function scheduleRunRetentionEnforcement() {
22
+ setImmediate(() => {
23
+ enforceRunRetention().catch((err) => {
24
+ const msg = err instanceof Error ? err.message : String(err);
25
+ logger.warn('Run retention enforcement failed', { error: msg });
26
+ });
27
+ });
28
+ }
29
+ export async function enforceRunRetention(config = getRunRetentionConfig()) {
30
+ if (!config.enabled) {
31
+ return { deletedByCount: 0, deletedByAge: 0, totalAfter: 0 };
32
+ }
33
+ const mode = getPersistenceMode();
34
+ if (mode === 'memory') {
35
+ return enforceMemoryRetention(config);
36
+ }
37
+ return enforcePostgresRetention(config);
38
+ }
39
+ async function enforceMemoryRetention(config) {
40
+ const store = getRunStore();
41
+ const all = await store.listRuns();
42
+ let deletedByAge = 0;
43
+ let deletedByCount = 0;
44
+ if (config.maxAgeDays > 0) {
45
+ const cutoff = Date.now() - config.maxAgeDays * 24 * 60 * 60 * 1000;
46
+ for (const run of all) {
47
+ if (!isTerminalRunForRetention(run.status))
48
+ continue;
49
+ if (new Date(run.createdAt).getTime() < cutoff) {
50
+ await store.deleteRun(run.id);
51
+ deletedByAge++;
52
+ }
53
+ }
54
+ }
55
+ const remaining = await store.listRuns();
56
+ if (config.maxCount > 0 && remaining.length > config.maxCount) {
57
+ const terminal = remaining
58
+ .filter((r) => isTerminalRunForRetention(r.status))
59
+ .sort((a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime());
60
+ const excess = remaining.length - config.maxCount;
61
+ const toDelete = terminal.slice(0, excess);
62
+ for (const run of toDelete) {
63
+ await store.deleteRun(run.id);
64
+ deletedByCount++;
65
+ }
66
+ }
67
+ const totalAfter = (await store.listRuns()).length;
68
+ logIfDeleted(deletedByCount, deletedByAge, totalAfter, config);
69
+ return { deletedByCount, deletedByAge, totalAfter };
70
+ }
71
+ async function enforcePostgresRetention(config) {
72
+ const prisma = await getPrismaClient();
73
+ let deletedByAge = 0;
74
+ let deletedByCount = 0;
75
+ const terminalWhere = {
76
+ status: { in: ['COMPLETED', 'FAILED', 'KILLED'] },
77
+ };
78
+ if (config.maxAgeDays > 0) {
79
+ const cutoff = new Date(Date.now() - config.maxAgeDays * 24 * 60 * 60 * 1000);
80
+ const ageResult = await prisma.run.deleteMany({
81
+ where: {
82
+ ...terminalWhere,
83
+ createdAt: { lt: cutoff },
84
+ },
85
+ });
86
+ deletedByAge = ageResult.count;
87
+ }
88
+ if (config.maxCount > 0) {
89
+ const total = await prisma.run.count();
90
+ if (total > config.maxCount) {
91
+ const excess = total - config.maxCount;
92
+ const oldest = await prisma.run.findMany({
93
+ where: terminalWhere,
94
+ orderBy: { createdAt: 'asc' },
95
+ take: excess,
96
+ select: { id: true },
97
+ });
98
+ if (oldest.length > 0) {
99
+ const countResult = await prisma.run.deleteMany({
100
+ where: { id: { in: oldest.map((r) => r.id) } },
101
+ });
102
+ deletedByCount = countResult.count;
103
+ }
104
+ }
105
+ }
106
+ const totalAfter = await prisma.run.count();
107
+ logIfDeleted(deletedByCount, deletedByAge, totalAfter, config);
108
+ return { deletedByCount, deletedByAge, totalAfter };
109
+ }
110
+ function logIfDeleted(deletedByCount, deletedByAge, totalAfter, config) {
111
+ if (deletedByCount > 0 || deletedByAge > 0) {
112
+ logger.info('Run retention applied', {
113
+ deletedByCount,
114
+ deletedByAge,
115
+ totalAfter,
116
+ maxCount: config.maxCount,
117
+ maxAgeDays: config.maxAgeDays,
118
+ });
119
+ }
120
+ }
121
+ export function sortRunsOldestFirst(runs) {
122
+ return [...runs].sort((a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime());
123
+ }
124
+ //# sourceMappingURL=run-retention.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-retention.js","sourceRoot":"","sources":["../../../../../src/runs/run-retention.ts"],"names":[],"mappings":"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"}
@@ -199,15 +199,15 @@
199
199
  }
200
200
  },
201
201
  "node_modules/@aws-sdk/client-kms": {
202
- "version": "3.1056.0",
203
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-kms/-/client-kms-3.1056.0.tgz",
204
- "integrity": "sha512-80TRTRzGnH1Ml6siG2siSdGoTjo9ELQgqwgwO450v+vRC35hLtJrIzMxeFo3+fg/8i8Jpo4KIGh5L8bFMenCjg==",
202
+ "version": "3.1057.0",
203
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-kms/-/client-kms-3.1057.0.tgz",
204
+ "integrity": "sha512-S0LA7ks4eo2JpyG7UkpcNNgckYygi8H9URhG56tcD/ffYmydLPkXZeTl/Aj/BwMRe3dklMwrXTSRyknDmY2mXg==",
205
205
  "license": "Apache-2.0",
206
206
  "dependencies": {
207
207
  "@aws-crypto/sha256-browser": "5.2.0",
208
208
  "@aws-crypto/sha256-js": "5.2.0",
209
209
  "@aws-sdk/core": "^3.974.15",
210
- "@aws-sdk/credential-provider-node": "^3.972.46",
210
+ "@aws-sdk/credential-provider-node": "^3.972.47",
211
211
  "@aws-sdk/types": "^3.973.9",
212
212
  "@smithy/core": "^3.24.5",
213
213
  "@smithy/fetch-http-handler": "^5.4.5",
@@ -220,15 +220,15 @@
220
220
  }
221
221
  },
222
222
  "node_modules/@aws-sdk/client-secrets-manager": {
223
- "version": "3.1056.0",
224
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.1056.0.tgz",
225
- "integrity": "sha512-jqX/F5tA7k2yutSm2I6AFXaxK91DhDn+em5sWfmNsYBp8VEM2PwHCp5gUvzStQUhszrSAduHNCEdqxJtYiExCA==",
223
+ "version": "3.1057.0",
224
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.1057.0.tgz",
225
+ "integrity": "sha512-2AsQ+7SChrQamIe68nMvMpZfXpHWnjwkcaFPFWf9E21+iTnEdIXRqC5v1P2NATrKn0BI6MaG/KlNrOhPOknk8w==",
226
226
  "license": "Apache-2.0",
227
227
  "dependencies": {
228
228
  "@aws-crypto/sha256-browser": "5.2.0",
229
229
  "@aws-crypto/sha256-js": "5.2.0",
230
230
  "@aws-sdk/core": "^3.974.15",
231
- "@aws-sdk/credential-provider-node": "^3.972.46",
231
+ "@aws-sdk/credential-provider-node": "^3.972.47",
232
232
  "@aws-sdk/types": "^3.973.9",
233
233
  "@smithy/core": "^3.24.5",
234
234
  "@smithy/fetch-http-handler": "^5.4.5",
@@ -241,15 +241,15 @@
241
241
  }
242
242
  },
243
243
  "node_modules/@aws-sdk/client-ssm": {
244
- "version": "3.1056.0",
245
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-ssm/-/client-ssm-3.1056.0.tgz",
246
- "integrity": "sha512-S367Brp+IyAc76US26MlOgYXvcMJMqKQi1gR4GcUI5K7NgG/f3AsICXV9Hg+KjqurSyyb8B2w8SgDJ20VT/bNg==",
244
+ "version": "3.1057.0",
245
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-ssm/-/client-ssm-3.1057.0.tgz",
246
+ "integrity": "sha512-h+uTW2MTycbCqqBVJ6tGUuvehRX9gpvu+pL260pNd5nv0sQBDC1a9a/Ihz4rD/8KwmBrcd4ifeDV3gEoXpmnew==",
247
247
  "license": "Apache-2.0",
248
248
  "dependencies": {
249
249
  "@aws-crypto/sha256-browser": "5.2.0",
250
250
  "@aws-crypto/sha256-js": "5.2.0",
251
251
  "@aws-sdk/core": "^3.974.15",
252
- "@aws-sdk/credential-provider-node": "^3.972.46",
252
+ "@aws-sdk/credential-provider-node": "^3.972.47",
253
253
  "@aws-sdk/types": "^3.973.9",
254
254
  "@smithy/core": "^3.24.5",
255
255
  "@smithy/fetch-http-handler": "^5.4.5",
@@ -315,9 +315,9 @@
315
315
  }
316
316
  },
317
317
  "node_modules/@aws-sdk/credential-provider-ini": {
318
- "version": "3.972.45",
319
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.45.tgz",
320
- "integrity": "sha512-sJe5ZWibO4s7RWjFQ8Zol76KxoJcIYyEZH1/wxQSBMSIAAxzaJ8cS/ITAaIHWUQvDKQdt18+cJAHKWB7n1Jmrg==",
318
+ "version": "3.972.46",
319
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.46.tgz",
320
+ "integrity": "sha512-hvcgcwOiS0nb2XFb5Op1Pz/vYaWz5K8kKullziGpdNRuG0NwzRXseuPt2CoBqknHGaSPVesu1aOn2OcctEYdCA==",
321
321
  "license": "Apache-2.0",
322
322
  "dependencies": {
323
323
  "@aws-sdk/core": "^3.974.15",
@@ -330,7 +330,7 @@
330
330
  "@aws-sdk/nested-clients": "^3.997.13",
331
331
  "@aws-sdk/types": "^3.973.9",
332
332
  "@smithy/core": "^3.24.5",
333
- "@smithy/credential-provider-imds": "^4.3.5",
333
+ "@smithy/credential-provider-imds": "^4.3.6",
334
334
  "@smithy/types": "^4.14.2",
335
335
  "tslib": "^2.6.2"
336
336
  },
@@ -356,20 +356,20 @@
356
356
  }
357
357
  },
358
358
  "node_modules/@aws-sdk/credential-provider-node": {
359
- "version": "3.972.46",
360
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.46.tgz",
361
- "integrity": "sha512-cS4w0jzDRb1jOlkiJS3y80OxddHzkky/MN9k3NYs5jganNKVLjF0lpvjlwS118oGMr3cdAfOlVdo8gLurTSE7w==",
359
+ "version": "3.972.47",
360
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.47.tgz",
361
+ "integrity": "sha512-HrId+C0DWA5qDIyLG64/kjUB2RNtPypxmABnIctK+TA1P1kHlOYoE/Wf5T5tKOMKgb08P7k/zNyhvfJ3lh5Oag==",
362
362
  "license": "Apache-2.0",
363
363
  "dependencies": {
364
364
  "@aws-sdk/credential-provider-env": "^3.972.41",
365
365
  "@aws-sdk/credential-provider-http": "^3.972.43",
366
- "@aws-sdk/credential-provider-ini": "^3.972.45",
366
+ "@aws-sdk/credential-provider-ini": "^3.972.46",
367
367
  "@aws-sdk/credential-provider-process": "^3.972.41",
368
368
  "@aws-sdk/credential-provider-sso": "^3.972.45",
369
369
  "@aws-sdk/credential-provider-web-identity": "^3.972.45",
370
370
  "@aws-sdk/types": "^3.973.9",
371
371
  "@smithy/core": "^3.24.5",
372
- "@smithy/credential-provider-imds": "^4.3.5",
372
+ "@smithy/credential-provider-imds": "^4.3.6",
373
373
  "@smithy/types": "^4.14.2",
374
374
  "tslib": "^2.6.2"
375
375
  },
@@ -2709,9 +2709,9 @@
2709
2709
  }
2710
2710
  },
2711
2711
  "node_modules/@smithy/credential-provider-imds": {
2712
- "version": "4.3.5",
2713
- "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.3.5.tgz",
2714
- "integrity": "sha512-yiF8xHpdkaTfzLVqFzsP6WvNghEK+qZzLYWFD13L2SsFhbXwBGlxdocKF95qjr7s5lE5NRage+EJFK4mAsx88Q==",
2712
+ "version": "4.3.6",
2713
+ "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.3.6.tgz",
2714
+ "integrity": "sha512-tHhdiWZfG1ZIh2YcRfPJmY2gHcBmqbAzqm3ER4TIDFYsSEqTD5tICT7cgQ/kI8LRakxp12myOYyK68XPn7MnHw==",
2715
2715
  "license": "Apache-2.0",
2716
2716
  "dependencies": {
2717
2717
  "@smithy/core": "^3.24.5",
@@ -0,0 +1,95 @@
1
+ import {
2
+ enforceRunRetention,
3
+ getRunRetentionConfig,
4
+ isTerminalRunForRetention,
5
+ sortRunsOldestFirst,
6
+ } from '../runs/run-retention.js';
7
+ import { MemoryRunStore } from '../runs/memoryRunStore.js';
8
+
9
+ jest.mock('../runs/index.js', () => ({
10
+ getRunStore: jest.fn(),
11
+ }));
12
+
13
+ jest.mock('../config/persistence.js', () => ({
14
+ getPersistenceMode: jest.fn(() => 'memory'),
15
+ }));
16
+
17
+ jest.mock('../db/prisma.js', () => ({
18
+ getPrismaClient: jest.fn(),
19
+ }));
20
+
21
+ import { getRunStore } from '../runs/index.js';
22
+
23
+ describe('run-retention', () => {
24
+ beforeEach(() => {
25
+ jest.clearAllMocks();
26
+ });
27
+
28
+ it('getRunRetentionConfig defaults', () => {
29
+ delete process.env.RUN_RETENTION_ENABLED;
30
+ delete process.env.RUN_RETENTION_MAX_COUNT;
31
+ delete process.env.RUN_RETENTION_MAX_AGE_DAYS;
32
+ const c = getRunRetentionConfig();
33
+ expect(c.enabled).toBe(true);
34
+ expect(c.maxCount).toBe(100);
35
+ expect(c.maxAgeDays).toBe(0);
36
+ });
37
+
38
+ it('isTerminalRunForRetention', () => {
39
+ expect(isTerminalRunForRetention('completed')).toBe(true);
40
+ expect(isTerminalRunForRetention('failed')).toBe(true);
41
+ expect(isTerminalRunForRetention('killed')).toBe(true);
42
+ expect(isTerminalRunForRetention('running')).toBe(false);
43
+ expect(isTerminalRunForRetention('queued')).toBe(false);
44
+ });
45
+
46
+ it('deletes oldest terminal runs when over maxCount', async () => {
47
+ const store = new MemoryRunStore();
48
+ (getRunStore as jest.Mock).mockReturnValue(store);
49
+
50
+ for (let i = 0; i < 5; i++) {
51
+ const run = await store.createRun({ name: `run-${i}` });
52
+ await store.updateRunStatus(run.id, i < 3 ? 'completed' : 'running');
53
+ // Stagger createdAt via direct map hack — memory store sets createdAt at create
54
+ }
55
+
56
+ const result = await enforceRunRetention({
57
+ enabled: true,
58
+ maxCount: 3,
59
+ maxAgeDays: 0,
60
+ });
61
+
62
+ expect(result.deletedByCount).toBeGreaterThanOrEqual(1);
63
+ const left = await store.listRuns();
64
+ expect(left.length).toBeLessThanOrEqual(3);
65
+ expect(left.some((r) => r.status === 'running')).toBe(true);
66
+ });
67
+
68
+ it('sortRunsOldestFirst orders by createdAt', () => {
69
+ const sorted = sortRunsOldestFirst([
70
+ {
71
+ id: '2',
72
+ name: 'b',
73
+ status: 'completed',
74
+ createdAt: '2026-01-02T00:00:00.000Z',
75
+ updatedAt: '2026-01-02T00:00:00.000Z',
76
+ logs: [],
77
+ tags: [],
78
+ startedAt: null,
79
+ completedAt: null,
80
+ },
81
+ {
82
+ id: '1',
83
+ name: 'a',
84
+ status: 'completed',
85
+ createdAt: '2026-01-01T00:00:00.000Z',
86
+ updatedAt: '2026-01-01T00:00:00.000Z',
87
+ logs: [],
88
+ tags: [],
89
+ startedAt: null,
90
+ completedAt: null,
91
+ },
92
+ ]);
93
+ expect(sorted[0].id).toBe('1');
94
+ });
95
+ });
@@ -623,6 +623,9 @@ fastify.post('/api/runs', {
623
623
  runsActive.inc();
624
624
  logger.info('Run created', { runId: run.id, name: run.name });
625
625
 
626
+ const { scheduleRunRetentionEnforcement } = await import('./runs/run-retention.js');
627
+ scheduleRunRetentionEnforcement();
628
+
626
629
  // Create Sentinel event stream for this run
627
630
  const eventStream = new GatewayEventStream();
628
631
  sentinelEventStreams.set(run.id, eventStream);
@@ -1422,6 +1425,22 @@ const start = async () => {
1422
1425
  baseLogger.info(`Gateway server listening on ${HOST}:${PORT}`);
1423
1426
  baseLogger.info(`Persistence mode: ${persistenceMode}`);
1424
1427
  baseLogger.info(`Authentication: ${env.AUTH_ENABLED ? 'enabled' : 'disabled'}`);
1428
+
1429
+ if (persistenceMode !== 'memory') {
1430
+ const { enforceRunRetention, getRunRetentionConfig } = await import('./runs/run-retention.js');
1431
+ const retentionCfg = getRunRetentionConfig();
1432
+ if (retentionCfg.enabled) {
1433
+ baseLogger.info('Run retention enabled', {
1434
+ maxCount: retentionCfg.maxCount,
1435
+ maxAgeDays: retentionCfg.maxAgeDays,
1436
+ });
1437
+ enforceRunRetention(retentionCfg).catch((err: unknown) => {
1438
+ baseLogger.warn('Startup run retention failed', {
1439
+ error: err instanceof Error ? err.message : String(err),
1440
+ });
1441
+ });
1442
+ }
1443
+ }
1425
1444
 
1426
1445
  if (persistenceMode === 'memory') {
1427
1446
  baseLogger.warn('[Gateway] Running in NO-PERSISTENCE / MEMORY mode. All state is ephemeral.');
@@ -0,0 +1,175 @@
1
+ /**
2
+ * Automatic run retention — cap total rows and optional max age.
3
+ * Deletes oldest **terminal** runs only (completed / failed / killed); never active runs.
4
+ */
5
+
6
+ import { createLogger } from '@4runr/shared';
7
+ import { getPersistenceMode } from '../config/persistence.js';
8
+ import { getPrismaClient } from '../db/prisma.js';
9
+ import { getRunStore } from './index.js';
10
+ import type { Run, RunStatus } from './types.js';
11
+
12
+ const logger = createLogger('Gateway:RunRetention');
13
+
14
+ const TERMINAL_STATUSES: RunStatus[] = ['completed', 'failed', 'killed'];
15
+
16
+ export interface RunRetentionConfig {
17
+ enabled: boolean;
18
+ /** Keep at most this many runs (0 = disable count-based trim). Default 200. */
19
+ maxCount: number;
20
+ /** Delete terminal runs older than this many days (0 = disabled). Default 0. */
21
+ maxAgeDays: number;
22
+ }
23
+
24
+ export interface RunRetentionResult {
25
+ deletedByCount: number;
26
+ deletedByAge: number;
27
+ totalAfter: number;
28
+ }
29
+
30
+ export function getRunRetentionConfig(): RunRetentionConfig {
31
+ const maxCountRaw =
32
+ process.env['RUN_RETENTION_MAX_COUNT'] ??
33
+ (process.env['NODE_ENV'] === 'production' ? '500' : '100');
34
+ const maxAgeRaw = parseInt(process.env['RUN_RETENTION_MAX_AGE_DAYS'] ?? '0', 10);
35
+ const maxCountParsed = parseInt(maxCountRaw, 10);
36
+ return {
37
+ enabled: process.env['RUN_RETENTION_ENABLED'] !== 'false',
38
+ maxCount:
39
+ Number.isFinite(maxCountParsed) && maxCountParsed >= 0 ? maxCountParsed : 100,
40
+ maxAgeDays: Number.isFinite(maxAgeRaw) && maxAgeRaw >= 0 ? maxAgeRaw : 0,
41
+ };
42
+ }
43
+
44
+ export function isTerminalRunForRetention(status: RunStatus): boolean {
45
+ return TERMINAL_STATUSES.includes(status);
46
+ }
47
+
48
+ /** Non-blocking hook after POST /api/runs */
49
+ export function scheduleRunRetentionEnforcement(): void {
50
+ setImmediate(() => {
51
+ enforceRunRetention().catch((err: unknown) => {
52
+ const msg = err instanceof Error ? err.message : String(err);
53
+ logger.warn('Run retention enforcement failed', { error: msg });
54
+ });
55
+ });
56
+ }
57
+
58
+ export async function enforceRunRetention(
59
+ config: RunRetentionConfig = getRunRetentionConfig(),
60
+ ): Promise<RunRetentionResult> {
61
+ if (!config.enabled) {
62
+ return { deletedByCount: 0, deletedByAge: 0, totalAfter: 0 };
63
+ }
64
+
65
+ const mode = getPersistenceMode();
66
+ if (mode === 'memory') {
67
+ return enforceMemoryRetention(config);
68
+ }
69
+ return enforcePostgresRetention(config);
70
+ }
71
+
72
+ async function enforceMemoryRetention(config: RunRetentionConfig): Promise<RunRetentionResult> {
73
+ const store = getRunStore();
74
+ const all = await store.listRuns();
75
+ let deletedByAge = 0;
76
+ let deletedByCount = 0;
77
+
78
+ if (config.maxAgeDays > 0) {
79
+ const cutoff = Date.now() - config.maxAgeDays * 24 * 60 * 60 * 1000;
80
+ for (const run of all) {
81
+ if (!isTerminalRunForRetention(run.status)) continue;
82
+ if (new Date(run.createdAt).getTime() < cutoff) {
83
+ await store.deleteRun(run.id);
84
+ deletedByAge++;
85
+ }
86
+ }
87
+ }
88
+
89
+ const remaining = await store.listRuns();
90
+ if (config.maxCount > 0 && remaining.length > config.maxCount) {
91
+ const terminal = remaining
92
+ .filter((r) => isTerminalRunForRetention(r.status))
93
+ .sort(
94
+ (a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime(),
95
+ );
96
+ const excess = remaining.length - config.maxCount;
97
+ const toDelete = terminal.slice(0, excess);
98
+ for (const run of toDelete) {
99
+ await store.deleteRun(run.id);
100
+ deletedByCount++;
101
+ }
102
+ }
103
+
104
+ const totalAfter = (await store.listRuns()).length;
105
+ logIfDeleted(deletedByCount, deletedByAge, totalAfter, config);
106
+ return { deletedByCount, deletedByAge, totalAfter };
107
+ }
108
+
109
+ async function enforcePostgresRetention(config: RunRetentionConfig): Promise<RunRetentionResult> {
110
+ const prisma = await getPrismaClient();
111
+ let deletedByAge = 0;
112
+ let deletedByCount = 0;
113
+
114
+ const terminalWhere = {
115
+ status: { in: ['COMPLETED', 'FAILED', 'KILLED'] as const },
116
+ };
117
+
118
+ if (config.maxAgeDays > 0) {
119
+ const cutoff = new Date(Date.now() - config.maxAgeDays * 24 * 60 * 60 * 1000);
120
+ const ageResult = await prisma.run.deleteMany({
121
+ where: {
122
+ ...terminalWhere,
123
+ createdAt: { lt: cutoff },
124
+ },
125
+ });
126
+ deletedByAge = ageResult.count;
127
+ }
128
+
129
+ if (config.maxCount > 0) {
130
+ const total: number = await prisma.run.count();
131
+ if (total > config.maxCount) {
132
+ const excess = total - config.maxCount;
133
+ const oldest = await prisma.run.findMany({
134
+ where: terminalWhere,
135
+ orderBy: { createdAt: 'asc' },
136
+ take: excess,
137
+ select: { id: true },
138
+ });
139
+ if (oldest.length > 0) {
140
+ const countResult = await prisma.run.deleteMany({
141
+ where: { id: { in: oldest.map((r: { id: string }) => r.id) } },
142
+ });
143
+ deletedByCount = countResult.count;
144
+ }
145
+ }
146
+ }
147
+
148
+ const totalAfter: number = await prisma.run.count();
149
+ logIfDeleted(deletedByCount, deletedByAge, totalAfter, config);
150
+ return { deletedByCount, deletedByAge, totalAfter };
151
+ }
152
+
153
+ function logIfDeleted(
154
+ deletedByCount: number,
155
+ deletedByAge: number,
156
+ totalAfter: number,
157
+ config: RunRetentionConfig,
158
+ ): void {
159
+ if (deletedByCount > 0 || deletedByAge > 0) {
160
+ logger.info('Run retention applied', {
161
+ deletedByCount,
162
+ deletedByAge,
163
+ totalAfter,
164
+ maxCount: config.maxCount,
165
+ maxAgeDays: config.maxAgeDays,
166
+ });
167
+ }
168
+ }
169
+
170
+ /** @internal test helper */
171
+ export function sortRunsOldestFirst(runs: Run[]): Run[] {
172
+ return [...runs].sort(
173
+ (a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime(),
174
+ );
175
+ }
@@ -1005,6 +1005,7 @@ impl App {
1005
1005
  self.state.connection_portal.finish_connecting();
1006
1006
  self.state.connection_portal.connection_success = false;
1007
1007
  self.state.connection_portal.connecting = false;
1008
+ self.state.run_manager.clear_runs();
1008
1009
 
1009
1010
  let screen = self.state.navigation.current_screen();
1010
1011
  if matches!(
@@ -1111,6 +1111,7 @@ fn main() -> Result<()> {
1111
1111
  app.state.connection_portal.finish_connecting();
1112
1112
  app.state.connection_portal.connection_success = false;
1113
1113
  app.state.connection_portal.error = None;
1114
+ app.state.run_manager.clear_runs();
1114
1115
  if let Some(ref ws) = ws_client {
1115
1116
  let _ = ws.send_command("system.status", None);
1116
1117
  }
@@ -282,6 +282,14 @@ impl RunManagerState {
282
282
  self.last_refresh = Some(std::time::Instant::now());
283
283
  }
284
284
 
285
+ pub fn clear_runs(&mut self) {
286
+ self.runs.clear();
287
+ self.selected_index = 0;
288
+ self.detail_view = None;
289
+ self.loading = false;
290
+ self.last_refresh = None;
291
+ }
292
+
285
293
  pub fn merge_run_detail(&mut self, info: RunInfo) {
286
294
  if let Some(i) = self.runs.iter().position(|r| r.id == info.id) {
287
295
  self.runs[i] = info;
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "4runr-os",
3
- "version": "2.10.54",
3
+ "version": "2.10.55",
4
4
  "type": "module",
5
- "description": "4Runr AI Agent OS - Secure terminal interface for AI agents. v2.10.54: Run Manager loads runs on local Gateway (auto dev API key); run.list dedupe/loading fixes; 4Runr Tools smoke (Sentinel/Shield) + vendored Gateway bundle.",
5
+ "description": "4Runr AI Agent OS - Secure terminal interface for AI agents. v2.10.55: Gateway auto run retention (cap terminal runs); Run Manager clears on disconnect + local API key; smoke tags; 4Runr Tools bundle.",
6
6
  "main": "dist/index.js",
7
7
  "bin": {
8
8
  "4runr": "dist/index.js",
@@ -60,11 +60,15 @@ function sleep(ms) {
60
60
  }
61
61
 
62
62
  async function createRun(base, apiKey, payload) {
63
+ const withTags = {
64
+ ...payload,
65
+ tags: [...new Set([...(payload.tags || []), 'smoke', 'os-tools-smoke'])],
66
+ };
63
67
  for (let attempt = 0; attempt < 3; attempt++) {
64
68
  const { res, body } = await fetchJson(`${base}/api/runs`, {
65
69
  method: 'POST',
66
70
  headers: authHeaders(apiKey),
67
- body: JSON.stringify(payload),
71
+ body: JSON.stringify(withTags),
68
72
  });
69
73
  if (res.status === 201) return { ok: true, body };
70
74
  if (res.status === 429 && attempt < 2) {