@principles/core 1.134.0 → 1.136.0

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.
Files changed (80) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/runtime-v2/__tests__/artificer-runner-vslice.test.js +8 -0
  6. package/dist/runtime-v2/__tests__/artificer-runner-vslice.test.js.map +1 -1
  7. package/dist/runtime-v2/__tests__/chain-integrity-real-path.test.js +20 -3
  8. package/dist/runtime-v2/__tests__/chain-integrity-real-path.test.js.map +1 -1
  9. package/dist/runtime-v2/__tests__/dreamer-runner-vslice.test.js +12 -0
  10. package/dist/runtime-v2/__tests__/dreamer-runner-vslice.test.js.map +1 -1
  11. package/dist/runtime-v2/__tests__/dreamer-runner.test.js +7 -2
  12. package/dist/runtime-v2/__tests__/dreamer-runner.test.js.map +1 -1
  13. package/dist/runtime-v2/__tests__/evaluator-runner-vslice.test.js +20 -0
  14. package/dist/runtime-v2/__tests__/evaluator-runner-vslice.test.js.map +1 -1
  15. package/dist/runtime-v2/__tests__/internalization-consumer-product-path.test.js +4 -0
  16. package/dist/runtime-v2/__tests__/internalization-consumer-product-path.test.js.map +1 -1
  17. package/dist/runtime-v2/__tests__/internalization-integrity-remediation.test.js +84 -2
  18. package/dist/runtime-v2/__tests__/internalization-integrity-remediation.test.js.map +1 -1
  19. package/dist/runtime-v2/__tests__/philosopher-runner-vslice.test.js +4 -0
  20. package/dist/runtime-v2/__tests__/philosopher-runner-vslice.test.js.map +1 -1
  21. package/dist/runtime-v2/__tests__/rollout-reviewer-runner-vslice.test.js +8 -0
  22. package/dist/runtime-v2/__tests__/rollout-reviewer-runner-vslice.test.js.map +1 -1
  23. package/dist/runtime-v2/__tests__/scribe-runner-vslice.test.js +4 -0
  24. package/dist/runtime-v2/__tests__/scribe-runner-vslice.test.js.map +1 -1
  25. package/dist/runtime-v2/__tests__/trainer-runner-vslice.test.js +8 -0
  26. package/dist/runtime-v2/__tests__/trainer-runner-vslice.test.js.map +1 -1
  27. package/dist/runtime-v2/index.d.ts +2 -2
  28. package/dist/runtime-v2/index.d.ts.map +1 -1
  29. package/dist/runtime-v2/index.js +1 -1
  30. package/dist/runtime-v2/index.js.map +1 -1
  31. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js +3 -0
  32. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js.map +1 -1
  33. package/dist/runtime-v2/internalization/__tests__/diag-distiller-runner.test.js +4 -0
  34. package/dist/runtime-v2/internalization/__tests__/diag-distiller-runner.test.js.map +1 -1
  35. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-runner.test.js +4 -0
  36. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-runner.test.js.map +1 -1
  37. package/dist/runtime-v2/internalization/__tests__/diag-router-runner.test.js +4 -0
  38. package/dist/runtime-v2/internalization/__tests__/diag-router-runner.test.js.map +1 -1
  39. package/dist/runtime-v2/internalization/__tests__/philosopher-runner-trust-boundary.test.js +4 -0
  40. package/dist/runtime-v2/internalization/__tests__/philosopher-runner-trust-boundary.test.js.map +1 -1
  41. package/dist/runtime-v2/internalization-integrity-remediation.d.ts +20 -0
  42. package/dist/runtime-v2/internalization-integrity-remediation.d.ts.map +1 -1
  43. package/dist/runtime-v2/internalization-integrity-remediation.js +122 -0
  44. package/dist/runtime-v2/internalization-integrity-remediation.js.map +1 -1
  45. package/dist/runtime-v2/recovery-sweep-service.d.ts +18 -0
  46. package/dist/runtime-v2/recovery-sweep-service.d.ts.map +1 -1
  47. package/dist/runtime-v2/recovery-sweep-service.js +46 -0
  48. package/dist/runtime-v2/recovery-sweep-service.js.map +1 -1
  49. package/dist/runtime-v2/runner/__tests__/base-peer-runner-trust-boundary.test.js +9 -0
  50. package/dist/runtime-v2/runner/__tests__/base-peer-runner-trust-boundary.test.js.map +1 -1
  51. package/dist/runtime-v2/runner/base-peer-runner.d.ts +1 -0
  52. package/dist/runtime-v2/runner/base-peer-runner.d.ts.map +1 -1
  53. package/dist/runtime-v2/runner/base-peer-runner.js +34 -4
  54. package/dist/runtime-v2/runner/base-peer-runner.js.map +1 -1
  55. package/dist/runtime-v2/store/concurrent-lease.test.js +13 -13
  56. package/dist/runtime-v2/store/concurrent-lease.test.js.map +1 -1
  57. package/dist/runtime-v2/store/lifecycle/lease-manager.d.ts.map +1 -1
  58. package/dist/runtime-v2/store/lifecycle/lease-manager.js +5 -0
  59. package/dist/runtime-v2/store/lifecycle/lease-manager.js.map +1 -1
  60. package/dist/runtime-v2/store/run/memory-run-store.d.ts +2 -1
  61. package/dist/runtime-v2/store/run/memory-run-store.d.ts.map +1 -1
  62. package/dist/runtime-v2/store/run/memory-run-store.js +5 -0
  63. package/dist/runtime-v2/store/run/memory-run-store.js.map +1 -1
  64. package/dist/runtime-v2/store/run/run-store.d.ts +27 -0
  65. package/dist/runtime-v2/store/run/run-store.d.ts.map +1 -1
  66. package/dist/runtime-v2/store/run/sqlite-run-store.d.ts +26 -2
  67. package/dist/runtime-v2/store/run/sqlite-run-store.d.ts.map +1 -1
  68. package/dist/runtime-v2/store/run/sqlite-run-store.js +134 -20
  69. package/dist/runtime-v2/store/run/sqlite-run-store.js.map +1 -1
  70. package/dist/runtime-v2/store/runtime-state-manager-malformed-run-tolerance.test.d.ts +2 -0
  71. package/dist/runtime-v2/store/runtime-state-manager-malformed-run-tolerance.test.d.ts.map +1 -0
  72. package/dist/runtime-v2/store/runtime-state-manager-malformed-run-tolerance.test.js +160 -0
  73. package/dist/runtime-v2/store/runtime-state-manager-malformed-run-tolerance.test.js.map +1 -0
  74. package/dist/runtime-v2/store/runtime-state-manager.d.ts +22 -1
  75. package/dist/runtime-v2/store/runtime-state-manager.d.ts.map +1 -1
  76. package/dist/runtime-v2/store/runtime-state-manager.js +48 -3
  77. package/dist/runtime-v2/store/runtime-state-manager.js.map +1 -1
  78. package/dist/runtime-v2/store/sqlite-run-store.test.js +172 -2
  79. package/dist/runtime-v2/store/sqlite-run-store.test.js.map +1 -1
  80. package/package.json +1 -1
@@ -5,14 +5,72 @@
5
5
  * Validates every row read with TypeBox Value.Check().
6
6
  */
7
7
  import { Value } from '@sinclair/typebox/value';
8
- import { RunRecordSchema } from '../../runtime-protocol.js';
8
+ import { RuntimeKindSchema, RunRecordSchema } from '../../runtime-protocol.js';
9
9
  import { PDRuntimeError } from '../../error-categories.js';
10
+ // ── Field-level runtime readers (trust boundary for untrusted DB rows) ───────
11
+ //
12
+ // These exist because String()/Number() coercion washes missing/wrong-typed
13
+ // values into legal-looking ones (e.g. String(undefined) → "undefined" passes
14
+ // Type.String()), which hides malformed rows from detection. Each reader is a
15
+ // runtime guard: required fields fail loud, optional fields only accept their
16
+ // declared nullable shape. Enum fields are intentionally NOT coerced here —
17
+ // TypeBox Value.Check is the single authority on enum membership.
18
+ /** Read a required non-empty string. Fails loud on missing/non-string/empty. */
19
+ function readRequiredString(value, fieldName, runIdForError) {
20
+ if (typeof value !== 'string') {
21
+ throw new PDRuntimeError('storage_unavailable', `Run ${runIdForError} has invalid schema: /${fieldName}: expected string, got ${value === null ? 'null' : typeof value}`);
22
+ }
23
+ if (value.length === 0) {
24
+ throw new PDRuntimeError('storage_unavailable', `Run ${runIdForError} has invalid schema: /${fieldName}: expected non-empty string`);
25
+ }
26
+ return value;
27
+ }
28
+ /**
29
+ * Read a required non-negative integer. Fails loud on missing/non-number/
30
+ * non-integer/negative. NaN is explicitly rejected (Number(undefined)===NaN
31
+ * must not silently become 0).
32
+ */
33
+ function readRequiredInt(value, fieldName, runIdForError) {
34
+ if (typeof value !== 'number' || !Number.isInteger(value)) {
35
+ throw new PDRuntimeError('storage_unavailable', `Run ${runIdForError} has invalid schema: /${fieldName}: expected integer, got ${value === null ? 'null' : typeof value}`);
36
+ }
37
+ if (value < 0) {
38
+ throw new PDRuntimeError('storage_unavailable', `Run ${runIdForError} has invalid schema: /${fieldName}: expected non-negative integer, got ${value}`);
39
+ }
40
+ return value;
41
+ }
42
+ /**
43
+ * Read an optional string. Only string | null | undefined are acceptable.
44
+ * A non-string truthy value (number, object, etc.) is a malformed row and
45
+ * fails loud rather than being coerced. null/undefined → undefined.
46
+ */
47
+ function readOptionalString(value, fieldName, runIdForError) {
48
+ if (value === null || value === undefined)
49
+ return undefined;
50
+ if (typeof value !== 'string') {
51
+ throw new PDRuntimeError('storage_unavailable', `Run ${runIdForError} has invalid schema: /${fieldName}: expected string|null, got ${typeof value}`);
52
+ }
53
+ return value;
54
+ }
55
+ export class MalformedRunError extends PDRuntimeError {
56
+ validRuns;
57
+ degradedRuns;
58
+ constructor(message, validRuns, degradedRuns) {
59
+ super('storage_unavailable', message);
60
+ this.validRuns = validRuns;
61
+ this.degradedRuns = degradedRuns;
62
+ this.name = 'MalformedRunError';
63
+ }
64
+ }
10
65
  export class SqliteRunStore {
11
66
  connection;
12
67
  constructor(connection) {
13
68
  this.connection = connection;
14
69
  }
15
70
  async createRun(record) {
71
+ if (!Value.Check(RuntimeKindSchema, record.runtimeKind)) {
72
+ throw new PDRuntimeError('input_invalid', `Invalid runtime kind: ${record.runtimeKind}`);
73
+ }
16
74
  const db = this.connection.getDb();
17
75
  const now = new Date().toISOString();
18
76
  db.prepare(`
@@ -28,7 +86,13 @@ export class SqliteRunStore {
28
86
  .get(runId);
29
87
  if (!row)
30
88
  return null;
31
- return SqliteRunStore.rowToRecord(row);
89
+ try {
90
+ return SqliteRunStore.rowToRecord(row);
91
+ }
92
+ catch (err) {
93
+ const msg = err instanceof Error ? err.message : String(err);
94
+ throw new MalformedRunError(`Run ${runId} has invalid schema`, [], [{ runId, error: msg, rawRow: row }]);
95
+ }
32
96
  }
33
97
  async updateRun(runId, patch) {
34
98
  const db = this.connection.getDb();
@@ -69,38 +133,88 @@ export class SqliteRunStore {
69
133
  return (await this.getRun(runId));
70
134
  }
71
135
  async listRunsByTask(taskId) {
136
+ const { runs, degradedRuns } = await this.listValidRunsByTaskTolerant(taskId);
137
+ if (degradedRuns.length > 0) {
138
+ throw new MalformedRunError(`Task ${taskId} has ${degradedRuns.length} malformed run(s)`, runs, degradedRuns);
139
+ }
140
+ return runs;
141
+ }
142
+ async listValidRunsByTaskTolerant(taskId) {
72
143
  const db = this.connection.getDb();
73
144
  const rows = db
74
145
  .prepare('SELECT * FROM runs WHERE task_id = ? ORDER BY started_at ASC')
75
146
  .all(taskId);
76
- return rows.map((row) => SqliteRunStore.rowToRecord(row));
147
+ const runs = [];
148
+ const degradedRuns = [];
149
+ for (const row of rows) {
150
+ try {
151
+ const record = SqliteRunStore.rowToRecord(row);
152
+ runs.push(record);
153
+ }
154
+ catch (err) {
155
+ const runId = row.run_id ? String(row.run_id) : 'unknown';
156
+ const msg = err instanceof Error ? err.message : String(err);
157
+ degradedRuns.push({
158
+ runId,
159
+ error: msg,
160
+ rawRow: row,
161
+ });
162
+ }
163
+ }
164
+ return { runs, degradedRuns };
77
165
  }
78
166
  async deleteRun(runId) {
79
167
  const db = this.connection.getDb();
80
168
  const result = db.prepare('DELETE FROM runs WHERE run_id = ?').run(runId);
81
169
  return result.changes > 0;
82
170
  }
171
+ /**
172
+ * Convert a raw DB row into a validated RunRecord.
173
+ *
174
+ * Public so the integrity-repair detection pass can reuse the EXACT same
175
+ * validation logic as the production read path (EP-01: no duplicated
176
+ * schema validation that can drift from the real one).
177
+ *
178
+ * Trust boundary (ERR-001, ERR-005): the row is UNTRUSTED data. We must NOT
179
+ * use String()/Number() coercion — that washes missing fields into legal
180
+ * strings/numbers (e.g. `String(undefined)` → `"undefined"` passes Type.String()),
181
+ * hiding malformed rows from detection. Instead each field is read with a
182
+ * runtime guard; required fields fail loud, optional fields only accept their
183
+ * declared nullable shape, and enum fields are passed through as-is so TypeBox
184
+ * is the single authority on enum validity.
185
+ *
186
+ * @throws PDRuntimeError{storage_unavailable} if the row fails schema validation.
187
+ */
83
188
  static rowToRecord(row) {
84
- const runId = String(row.run_id);
189
+ // runId is extracted first (best-effort) so error messages can name the row,
190
+ // but it is still validated below — do not trust this value for logic.
191
+ const runIdForError = typeof row.run_id === 'string' && row.run_id.length > 0
192
+ ? row.run_id
193
+ : '<missing run_id>';
85
194
  const record = {
86
- runId,
87
- taskId: String(row.task_id),
88
- runtimeKind: String(row.runtime_kind),
89
- executionStatus: String(row.execution_status),
90
- startedAt: String(row.started_at),
91
- endedAt: row.ended_at ? String(row.ended_at) : undefined,
92
- reason: row.reason ? String(row.reason) : undefined,
93
- outputRef: row.output_ref ? String(row.output_ref) : undefined,
94
- attemptNumber: Number(row.attempt_number ?? 0),
95
- createdAt: String(row.created_at),
96
- updatedAt: String(row.updated_at),
97
- // Use ?? undefined so null DB values become undefined (TypeBox validates undefined for optional fields)
98
- inputPayload: row.input_payload ?? undefined,
99
- outputPayload: row.output_payload ?? undefined,
100
- errorCategory: row.error_category ?? undefined,
195
+ runId: readRequiredString(row.run_id, 'run_id', runIdForError),
196
+ taskId: readRequiredString(row.task_id, 'task_id', runIdForError),
197
+ // Enums: read the raw value without coercion. TypeBox Value.Check below is
198
+ // the single authority on whether it is a valid enum member.
199
+ runtimeKind: row.runtime_kind,
200
+ executionStatus: row.execution_status,
201
+ startedAt: readRequiredString(row.started_at, 'started_at', runIdForError),
202
+ attemptNumber: readRequiredInt(row.attempt_number, 'attempt_number', runIdForError),
203
+ createdAt: readRequiredString(row.created_at, 'created_at', runIdForError),
204
+ updatedAt: readRequiredString(row.updated_at, 'updated_at', runIdForError),
205
+ // Optional strings: only string | null | undefined are acceptable shapes.
206
+ endedAt: readOptionalString(row.ended_at, 'ended_at', runIdForError),
207
+ reason: readOptionalString(row.reason, 'reason', runIdForError),
208
+ outputRef: readOptionalString(row.output_ref, 'output_ref', runIdForError),
209
+ inputPayload: readOptionalString(row.input_payload, 'input_payload', runIdForError),
210
+ outputPayload: readOptionalString(row.output_payload, 'output_payload', runIdForError),
211
+ // Optional enum: pass through as-is; TypeBox validates enum membership.
212
+ errorCategory: (row.error_category ?? undefined),
101
213
  };
102
214
  if (!Value.Check(RunRecordSchema, record)) {
103
- throw new PDRuntimeError('storage_unavailable', `Run ${runId} has invalid schema — DB may be corrupted`);
215
+ const errors = [...Value.Errors(RunRecordSchema, record)];
216
+ const details = errors.map(e => `${e.path}: ${e.message}`).join(', ');
217
+ throw new PDRuntimeError('storage_unavailable', `Run ${runIdForError} has invalid schema: ${details}`);
104
218
  }
105
219
  return record;
106
220
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-run-store.js","sourceRoot":"","sources":["../../../../src/runtime-v2/store/run/sqlite-run-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite-run-store.js","sourceRoot":"","sources":["../../../../src/runtime-v2/store/run/sqlite-run-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=runtime-state-manager-malformed-run-tolerance.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-state-manager-malformed-run-tolerance.test.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/store/runtime-state-manager-malformed-run-tolerance.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,160 @@
1
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
+ /**
3
+ * RuntimeStateManager + BasePeerRunner malformed-run tolerance (PRI-392 follow-up).
4
+ *
5
+ * Verifies the execution/completion path no longer throws when a task has
6
+ * historical schema-malformed run rows, as long as a valid run exists
7
+ * (the one created by acquireLease). This exercises the REAL production
8
+ * path against a real state.db (ERR-025): no mocked helpers.
9
+ *
10
+ * Covers:
11
+ * - getValidRunsByTaskTolerant returns valid + degraded without throwing
12
+ * - markTaskSucceeded tolerates malformed historical runs
13
+ * - markTaskFailed tolerates malformed historical runs
14
+ * - markTaskRetryWait tolerates malformed historical runs
15
+ * - a degradation_triggered telemetry event is emitted (ERR-002: observable)
16
+ */
17
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
18
+ import * as fs from 'fs';
19
+ import * as path from 'path';
20
+ import * as os from 'os';
21
+ import { RuntimeStateManager } from './runtime-state-manager.js';
22
+ import { StoreEventEmitter } from './event-emitter.js';
23
+ function makeTaskInput(taskId) {
24
+ return {
25
+ taskId,
26
+ taskKind: 'diagnostician',
27
+ status: 'pending',
28
+ attemptCount: 0,
29
+ maxAttempts: 3,
30
+ };
31
+ }
32
+ /**
33
+ * Insert a schema-malformed run row via raw SQL. Invalid runtime_kind 'config'
34
+ * fails TypeBox Value.Check(RunRecordSchema) the same way production
35
+ * malformed rows do (matches the fixture in sqlite-run-store.test.ts).
36
+ */
37
+ function insertMalformedRun(mgr, opts) {
38
+ const now = new Date().toISOString();
39
+ mgr.connection.getDb().prepare(`INSERT INTO runs (run_id, task_id, runtime_kind, started_at, attempt_number, execution_status, created_at, updated_at)
40
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)`).run(opts.runId, opts.taskId, 'config', now, opts.attemptNumber, 'failed', now, now);
41
+ }
42
+ describe('RuntimeStateManager malformed-run tolerance', () => {
43
+ let testDir;
44
+ let mgr;
45
+ let emitter;
46
+ let events;
47
+ beforeEach(async () => {
48
+ testDir = path.join(os.tmpdir(), `pd-malformed-tol-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2)}`);
49
+ fs.mkdirSync(testDir, { recursive: true });
50
+ // Use a fresh emitter (not the singleton) so listeners don't leak across tests.
51
+ emitter = new StoreEventEmitter();
52
+ events = [];
53
+ emitter.onTelemetry((ev) => events.push(ev));
54
+ mgr = new RuntimeStateManager({ workspaceDir: testDir, emitter });
55
+ await mgr.initialize();
56
+ });
57
+ afterEach(async () => {
58
+ await mgr.close();
59
+ try {
60
+ fs.rmSync(testDir, { recursive: true, force: true });
61
+ }
62
+ catch {
63
+ // ignore Windows cleanup errors
64
+ }
65
+ });
66
+ function degradationEventsFor(_taskId) {
67
+ return events.filter((e) => e.eventType === 'degradation_triggered'
68
+ && e.payload?.trigger === 'malformed_historical_run_rows');
69
+ }
70
+ /** Runtime-guarded field read from a telemetry payload (no `as` cast on untrusted shape). */
71
+ function payloadField(ev, field) {
72
+ const { payload } = ev;
73
+ if (typeof payload !== 'object' || payload === null) {
74
+ throw new Error(`payload is not an object for event ${ev.traceId}`);
75
+ }
76
+ return payload[field];
77
+ }
78
+ // ── getValidRunsByTaskTolerant ──────────────────────────────────────────────
79
+ it('getValidRunsByTaskTolerant returns valid + degraded without throwing', async () => {
80
+ await mgr.createTask(makeTaskInput('task-tol'));
81
+ // malformed historical run
82
+ insertMalformedRun(mgr, { runId: 'run_bad_1', taskId: 'task-tol', attemptNumber: 1 });
83
+ // fresh valid run (as acquireLease would create)
84
+ await mgr.runStore.createRun({
85
+ runId: 'run_good_2',
86
+ taskId: 'task-tol',
87
+ runtimeKind: 'openclaw',
88
+ executionStatus: 'running',
89
+ startedAt: new Date().toISOString(),
90
+ attemptNumber: 2,
91
+ });
92
+ const result = await mgr.getValidRunsByTaskTolerant('task-tol');
93
+ expect(result.runs.map((r) => r.runId)).toEqual(['run_good_2']);
94
+ expect(result.degradedRuns.map((r) => r.runId)).toEqual(['run_bad_1']);
95
+ });
96
+ // ── markTaskSucceeded tolerates malformed historical runs ───────────────────
97
+ it('markTaskSucceeded does NOT throw on malformed historical runs and updates the latest valid run', async () => {
98
+ const taskId = 'task-succ-tol';
99
+ await mgr.createTask(makeTaskInput(taskId));
100
+ insertMalformedRun(mgr, { runId: 'run_bad_succ', taskId, attemptNumber: 1 });
101
+ // acquireLease creates a valid running run (attempt 2)
102
+ await mgr.acquireLease({ taskId, owner: 'agent-1', runtimeKind: 'openclaw' });
103
+ // This used to throw MalformedRunError inside markTaskSucceeded.
104
+ const updated = await mgr.markTaskSucceeded(taskId, 'result-ref-1');
105
+ expect(updated.status).toBe('succeeded');
106
+ // The latest VALID run must be updated to succeeded (not the malformed one).
107
+ // Read via the tolerant accessor since the malformed row makes listRunsByTask throw.
108
+ const { runs } = await mgr.getValidRunsByTaskTolerant(taskId);
109
+ const latest = runs[runs.length - 1];
110
+ expect(latest).toBeDefined();
111
+ expect(latest.executionStatus).toBe('succeeded');
112
+ expect(latest.outputRef).toBe('result-ref-1');
113
+ // ERR-002: degradation must be observable, not silent.
114
+ const degradations = degradationEventsFor(taskId);
115
+ expect(degradations.length).toBeGreaterThanOrEqual(1);
116
+ const ev = degradations[0];
117
+ const caller = payloadField(ev, 'caller');
118
+ expect(caller).toBe('markTaskSucceeded');
119
+ const degradedCount = payloadField(ev, 'degradedCount');
120
+ expect(degradedCount).toBe(1);
121
+ const runIds = payloadField(ev, 'runIds');
122
+ expect(runIds).toEqual(['run_bad_succ']);
123
+ });
124
+ // ── markTaskFailed tolerates malformed historical runs ──────────────────────
125
+ it('markTaskFailed does NOT throw on malformed historical runs and updates the latest valid run', async () => {
126
+ const taskId = 'task-fail-tol';
127
+ await mgr.createTask(makeTaskInput(taskId));
128
+ insertMalformedRun(mgr, { runId: 'run_bad_fail', taskId, attemptNumber: 1 });
129
+ await mgr.acquireLease({ taskId, owner: 'agent-1', runtimeKind: 'openclaw' });
130
+ const updated = await mgr.markTaskFailed(taskId, 'execution_failed', 'model crashed');
131
+ expect(updated.status).toBe('failed');
132
+ const { runs: failRuns } = await mgr.getValidRunsByTaskTolerant(taskId);
133
+ const latest = failRuns[failRuns.length - 1];
134
+ expect(latest).toBeDefined();
135
+ expect(latest.executionStatus).toBe('failed');
136
+ expect(latest.errorCategory).toBe('execution_failed');
137
+ expect(latest.reason).toBe('model crashed');
138
+ const degradations = degradationEventsFor(taskId);
139
+ expect(degradations.length).toBeGreaterThanOrEqual(1);
140
+ expect(payloadField(degradations[0], 'caller')).toBe('markTaskFailed');
141
+ });
142
+ // ── markTaskRetryWait tolerates malformed historical runs ───────────────────
143
+ it('markTaskRetryWait does NOT throw on malformed historical runs and updates the latest valid run', async () => {
144
+ const taskId = 'task-retry-tol';
145
+ await mgr.createTask(makeTaskInput(taskId));
146
+ insertMalformedRun(mgr, { runId: 'run_bad_retry', taskId, attemptNumber: 1 });
147
+ await mgr.acquireLease({ taskId, owner: 'agent-1', runtimeKind: 'openclaw' });
148
+ const updated = await mgr.markTaskRetryWait(taskId, 'execution_failed', 'transient');
149
+ expect(updated.status).toBe('retry_wait');
150
+ const { runs: retryRuns } = await mgr.getValidRunsByTaskTolerant(taskId);
151
+ const latest = retryRuns[retryRuns.length - 1];
152
+ expect(latest).toBeDefined();
153
+ expect(latest.executionStatus).toBe('failed');
154
+ expect(latest.errorCategory).toBe('execution_failed');
155
+ const degradations = degradationEventsFor(taskId);
156
+ expect(degradations.length).toBeGreaterThanOrEqual(1);
157
+ expect(payloadField(degradations[0], 'caller')).toBe('markTaskRetryWait');
158
+ });
159
+ });
160
+ //# sourceMappingURL=runtime-state-manager-malformed-run-tolerance.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-state-manager-malformed-run-tolerance.test.js","sourceRoot":"","sources":["../../../src/runtime-v2/store/runtime-state-manager-malformed-run-tolerance.test.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@
19
19
  */
20
20
  import type { SqliteConnection } from './sqlite-connection.js';
21
21
  import type { TaskStore, TaskStoreFilter, TaskStoreUpdatePatch } from './task/task-store.js';
22
- import type { RunStore, RunRecord } from './run/run-store.js';
22
+ import type { RunStore, RunRecord, TolerantRunListResult } from './run/run-store.js';
23
23
  import type { AcquireLeaseOptions } from './lifecycle/lease-manager.js';
24
24
  import type { RetryPolicy, RetryPolicyConfig } from './lifecycle/retry-policy.js';
25
25
  import type { RecoveryResult } from './lifecycle/recovery-sweep.js';
@@ -76,6 +76,16 @@ export declare class RuntimeStateManager {
76
76
  updateTask(taskId: string, patch: TaskStoreUpdatePatch): Promise<TaskRecord>;
77
77
  deleteTask(taskId: string): Promise<boolean>;
78
78
  getRunsByTask(taskId: string): Promise<RunRecord[]>;
79
+ /**
80
+ * Tolerant variant of getRunsByTask: returns valid runs AND any
81
+ * schema-degraded historical rows instead of throwing MalformedRunError.
82
+ *
83
+ * Used by the runner execution/completion path so a malformed historical
84
+ * run row does not block recovery of a task that still has a valid run
85
+ * (the one created by acquireLease). Callers MUST surface a non-empty
86
+ * degradedRuns list via telemetry/notes — silent swallowing is a bug (ERR-002).
87
+ */
88
+ getValidRunsByTaskTolerant(taskId: string): Promise<TolerantRunListResult>;
79
89
  getRun(runId: string): Promise<RunRecord | null>;
80
90
  acquireLease(options: AcquireLeaseOptions): Promise<TaskRecord>;
81
91
  releaseLease(taskId: string, owner: string): Promise<TaskRecord>;
@@ -95,6 +105,17 @@ export declare class RuntimeStateManager {
95
105
  * Per D-04: DiagnosticianOutputV1 JSON serialized into RunRecord.outputPayload.
96
106
  */
97
107
  updateRunOutput(runId: string, outputPayload: string): Promise<RunRecord>;
108
+ /**
109
+ * Observe malformed historical run rows without blocking the caller.
110
+ *
111
+ * The execution/completion path tolerates schema-invalid historical run
112
+ * rows (they must not block recovery of a task that has a valid run from
113
+ * acquireLease). But tolerance MUST be observable — silently swallowing
114
+ * degraded rows is a bug (ERR-002). This emits a structured
115
+ * degradation_triggered event naming the affected runIds so operators can
116
+ * find and quarantine them via `pd runtime internalization integrity-repair`.
117
+ */
118
+ private observeMalformedRuns;
98
119
  runRecoverySweep(): Promise<{
99
120
  recovered: number;
100
121
  errors: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-state-manager.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/store/runtime-state-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-state-manager.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/store/runtime-state-manager.ts"],"names":[],"mappings":"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"}
@@ -113,6 +113,19 @@ export class RuntimeStateManager {
113
113
  this.assertInitialized();
114
114
  return this._runStore.listRunsByTask(taskId);
115
115
  }
116
+ /**
117
+ * Tolerant variant of getRunsByTask: returns valid runs AND any
118
+ * schema-degraded historical rows instead of throwing MalformedRunError.
119
+ *
120
+ * Used by the runner execution/completion path so a malformed historical
121
+ * run row does not block recovery of a task that still has a valid run
122
+ * (the one created by acquireLease). Callers MUST surface a non-empty
123
+ * degradedRuns list via telemetry/notes — silent swallowing is a bug (ERR-002).
124
+ */
125
+ async getValidRunsByTaskTolerant(taskId) {
126
+ this.assertInitialized();
127
+ return this._runStore.listValidRunsByTaskTolerant(taskId);
128
+ }
116
129
  async getRun(runId) {
117
130
  this.assertInitialized();
118
131
  return this._runStore.getRun(runId);
@@ -150,7 +163,8 @@ export class RuntimeStateManager {
150
163
  resultRef: resultRef ?? null,
151
164
  });
152
165
  // Update the latest run to terminal 'succeeded' state
153
- const runs = await this._runStore.listRunsByTask(taskId);
166
+ const { runs, degradedRuns } = await this._runStore.listValidRunsByTaskTolerant(taskId);
167
+ this.observeMalformedRuns(taskId, degradedRuns, 'markTaskSucceeded');
154
168
  const latestRun = runs[runs.length - 1];
155
169
  if (latestRun) {
156
170
  await this._runStore.updateRun(latestRun.runId, {
@@ -180,7 +194,8 @@ export class RuntimeStateManager {
180
194
  lastError,
181
195
  });
182
196
  // Update the latest run to terminal 'failed' state
183
- const runs = await this._runStore.listRunsByTask(taskId);
197
+ const { runs, degradedRuns } = await this._runStore.listValidRunsByTaskTolerant(taskId);
198
+ this.observeMalformedRuns(taskId, degradedRuns, 'markTaskFailed');
184
199
  const latestRun = runs[runs.length - 1];
185
200
  if (latestRun) {
186
201
  await this._runStore.updateRun(latestRun.runId, {
@@ -217,7 +232,8 @@ export class RuntimeStateManager {
217
232
  lastError: errorCategory,
218
233
  });
219
234
  // Update the latest run to 'failed' state with error category
220
- const runs = await this._runStore.listRunsByTask(taskId);
235
+ const { runs, degradedRuns } = await this._runStore.listValidRunsByTaskTolerant(taskId);
236
+ this.observeMalformedRuns(taskId, degradedRuns, 'markTaskRetryWait');
221
237
  const latestRun = runs[runs.length - 1];
222
238
  if (latestRun) {
223
239
  await this._runStore.updateRun(latestRun.runId, {
@@ -258,6 +274,35 @@ export class RuntimeStateManager {
258
274
  });
259
275
  return updated;
260
276
  }
277
+ /**
278
+ * Observe malformed historical run rows without blocking the caller.
279
+ *
280
+ * The execution/completion path tolerates schema-invalid historical run
281
+ * rows (they must not block recovery of a task that has a valid run from
282
+ * acquireLease). But tolerance MUST be observable — silently swallowing
283
+ * degraded rows is a bug (ERR-002). This emits a structured
284
+ * degradation_triggered event naming the affected runIds so operators can
285
+ * find and quarantine them via `pd runtime internalization integrity-repair`.
286
+ */
287
+ observeMalformedRuns(taskId, degradedRuns, caller) {
288
+ if (degradedRuns.length === 0)
289
+ return;
290
+ this.emitter.emitTelemetry({
291
+ eventType: 'degradation_triggered',
292
+ traceId: taskId,
293
+ timestamp: new Date().toISOString(),
294
+ sessionId: 'runtime-state-manager',
295
+ payload: {
296
+ component: 'RuntimeStateManager',
297
+ caller,
298
+ trigger: 'malformed_historical_run_rows',
299
+ degradedCount: degradedRuns.length,
300
+ runIds: degradedRuns.map((r) => r.runId),
301
+ errors: degradedRuns.map((r) => r.error),
302
+ nextAction: 'Quarantine malformed run rows: pd runtime internalization integrity-repair --confirm',
303
+ },
304
+ });
305
+ }
261
306
  // ── Retry/Recovery operations ─────────────────────────────────────────────
262
307
  async runRecoverySweep() {
263
308
  this.assertInitialized();
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-state-manager.js","sourceRoot":"","sources":["../../../src/runtime-v2/store/runtime-state-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-state-manager.js","sourceRoot":"","sources":["../../../src/runtime-v2/store/runtime-state-manager.ts"],"names":[],"mappings":"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"}