@principles/core 1.278.5 → 1.278.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,6 +5,9 @@ const mockRecoverTask = vi.fn();
5
5
  const mockStateManagerClose = vi.fn();
6
6
  const mockInitialize = vi.fn();
7
7
  const mockAssertInitialized = vi.fn();
8
+ const mockListTasks = vi.fn();
9
+ const mockGetTask = vi.fn();
10
+ const mockUpdateTask = vi.fn();
8
11
  vi.mock('../store/runtime-state-manager.js', () => ({
9
12
  RuntimeStateManager: vi.fn().mockImplementation(function () {
10
13
  this.initialize = mockInitialize;
@@ -13,8 +16,23 @@ vi.mock('../store/runtime-state-manager.js', () => ({
13
16
  this.recoverTask = mockRecoverTask;
14
17
  this.assertInitialized = mockAssertInitialized;
15
18
  this.isInitialized = true;
19
+ this.listTasks = mockListTasks;
20
+ this.getTask = mockGetTask;
21
+ this.updateTask = mockUpdateTask;
16
22
  }),
17
23
  }));
24
+ function makeTask(overrides = {}) {
25
+ return {
26
+ taskId: 'task-x',
27
+ taskKind: 'dreamer',
28
+ status: 'failed',
29
+ createdAt: '2026-09-08T00:00:00.000Z',
30
+ updatedAt: '2026-09-08T00:00:00.000Z',
31
+ attemptCount: 1,
32
+ maxAttempts: 3,
33
+ ...overrides,
34
+ };
35
+ }
18
36
  describe('createRecoverySweepService', () => {
19
37
  beforeEach(() => {
20
38
  vi.clearAllMocks();
@@ -80,4 +98,116 @@ describe('createRecoverySweepService', () => {
80
98
  .rejects.toThrow('DB init failed');
81
99
  });
82
100
  });
101
+ describe('detectFailedTasks — recovery discovery (PRI-674)', () => {
102
+ beforeEach(() => {
103
+ vi.clearAllMocks();
104
+ vi.restoreAllMocks();
105
+ mockInitialize.mockResolvedValue(undefined);
106
+ mockStateManagerClose.mockResolvedValue(undefined);
107
+ mockAssertInitialized.mockReturnValue(undefined);
108
+ mockListTasks.mockResolvedValue([]);
109
+ });
110
+ it('returns failed diagnostician parent and diag_* stage tasks (GAP-1 regression)', async () => {
111
+ mockListTasks.mockResolvedValue([
112
+ makeTask({ taskId: 'diag-parent', taskKind: 'diagnostician', inputRef: 'pain-001' }),
113
+ makeTask({ taskId: 'diag-a', taskKind: 'diag_rootcause', inputRef: 'diag-parent' }),
114
+ makeTask({ taskId: 'diag-b', taskKind: 'diag_distiller', inputRef: 'diag-parent' }),
115
+ makeTask({ taskId: 'diag-c', taskKind: 'diag_router', inputRef: 'diag-parent' }),
116
+ ]);
117
+ const handle = await createRecoverySweepService({ workspaceDir: '/tmp/test-ws' });
118
+ const results = await handle.service.detectFailedTasks();
119
+ expect(results.map((r) => r.taskId).sort())
120
+ .toEqual(['diag-a', 'diag-b', 'diag-c', 'diag-parent']);
121
+ // inputRef is the persisted stage→parent linkage consumed by CLI
122
+ // execution guidance (PRI-674 review P2).
123
+ expect(results.find((r) => r.taskId === 'diag-a')?.inputRef).toBe('diag-parent');
124
+ expect(results.find((r) => r.taskId === 'diag-parent')?.inputRef).toBe('pain-001');
125
+ });
126
+ it('returns inputRef null when the task record has none', async () => {
127
+ mockListTasks.mockResolvedValue([
128
+ makeTask({ taskId: 'no-ref', taskKind: 'diag_router', inputRef: undefined }),
129
+ ]);
130
+ const handle = await createRecoverySweepService({ workspaceDir: '/tmp/test-ws' });
131
+ const results = await handle.service.detectFailedTasks();
132
+ expect(results).toHaveLength(1);
133
+ expect(results[0]?.inputRef).toBeNull();
134
+ });
135
+ it('still returns peer runner kinds with isExhausted computed', async () => {
136
+ mockListTasks.mockResolvedValue([
137
+ makeTask({ taskId: 'peer-dreamer', taskKind: 'dreamer', attemptCount: 1, maxAttempts: 3 }),
138
+ makeTask({ taskId: 'peer-rollout', taskKind: 'rollout_reviewer', attemptCount: 3, maxAttempts: 3 }),
139
+ ]);
140
+ const handle = await createRecoverySweepService({ workspaceDir: '/tmp/test-ws' });
141
+ const results = await handle.service.detectFailedTasks();
142
+ expect(results.map((r) => r.taskId).sort()).toEqual(['peer-dreamer', 'peer-rollout']);
143
+ expect(results.find((r) => r.taskId === 'peer-dreamer')?.isExhausted).toBe(false);
144
+ expect(results.find((r) => r.taskId === 'peer-rollout')?.isExhausted).toBe(true);
145
+ });
146
+ it('excludes failed tasks of unrelated kinds', async () => {
147
+ mockListTasks.mockResolvedValue([
148
+ makeTask({ taskId: 'other', taskKind: 'principle_candidate_intake' }),
149
+ ]);
150
+ const handle = await createRecoverySweepService({ workspaceDir: '/tmp/test-ws' });
151
+ const results = await handle.service.detectFailedTasks();
152
+ expect(results).toEqual([]);
153
+ });
154
+ });
155
+ describe('recoverFailedTask — reset semantics unchanged (PRI-674)', () => {
156
+ beforeEach(() => {
157
+ vi.clearAllMocks();
158
+ vi.restoreAllMocks();
159
+ mockInitialize.mockResolvedValue(undefined);
160
+ mockStateManagerClose.mockResolvedValue(undefined);
161
+ mockAssertInitialized.mockReturnValue(undefined);
162
+ });
163
+ it('resets a failed diagnostician task to pending with lease/attempts/result cleared', async () => {
164
+ mockGetTask.mockResolvedValue(makeTask({
165
+ taskId: 'diag-parent',
166
+ taskKind: 'diagnostician',
167
+ attemptCount: 1,
168
+ maxAttempts: 3,
169
+ lastError: 'max_attempts_exceeded',
170
+ leaseOwner: 'runner-1',
171
+ leaseExpiresAt: '2026-09-08T01:00:00.000Z',
172
+ resultRef: 'artifact://partial',
173
+ }));
174
+ mockUpdateTask.mockImplementation(async (taskId, patch) => makeTask({ taskId, taskKind: 'diagnostician', ...patch }));
175
+ const handle = await createRecoverySweepService({ workspaceDir: '/tmp/test-ws' });
176
+ const result = await handle.service.recoverFailedTask('diag-parent');
177
+ expect(mockUpdateTask).toHaveBeenCalledWith('diag-parent', {
178
+ status: 'pending',
179
+ attemptCount: 0,
180
+ maxAttempts: 3,
181
+ lastError: null,
182
+ leaseOwner: null,
183
+ leaseExpiresAt: null,
184
+ resultRef: null,
185
+ });
186
+ expect(result).toMatchObject({
187
+ taskId: 'diag-parent',
188
+ previousStatus: 'failed',
189
+ newStatus: 'pending',
190
+ forceApplied: false,
191
+ });
192
+ });
193
+ it('refuses an exhausted task without force (retry guard unchanged)', async () => {
194
+ mockGetTask.mockResolvedValue(makeTask({
195
+ taskId: 'diag-exhausted',
196
+ taskKind: 'diagnostician',
197
+ attemptCount: 3,
198
+ maxAttempts: 3,
199
+ }));
200
+ const handle = await createRecoverySweepService({ workspaceDir: '/tmp/test-ws' });
201
+ await expect(handle.service.recoverFailedTask('diag-exhausted'))
202
+ .rejects.toThrow(/exhausted max attempts/);
203
+ expect(mockUpdateTask).not.toHaveBeenCalled();
204
+ });
205
+ it('returns null for a task that is not failed', async () => {
206
+ mockGetTask.mockResolvedValue(makeTask({ taskId: 'diag-ok', status: 'succeeded' }));
207
+ const handle = await createRecoverySweepService({ workspaceDir: '/tmp/test-ws' });
208
+ const result = await handle.service.recoverFailedTask('diag-ok');
209
+ expect(result).toBeNull();
210
+ expect(mockUpdateTask).not.toHaveBeenCalled();
211
+ });
212
+ });
83
213
  //# sourceMappingURL=recovery-sweep-service.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"recovery-sweep-service.test.js","sourceRoot":"","sources":["../../../src/runtime-v2/__tests__/recovery-sweep-service.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recovery-sweep-service.test.js","sourceRoot":"","sources":["../../../src/runtime-v2/__tests__/recovery-sweep-service.test.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,15 @@ export interface FailedTaskRecoveryInfo {
7
7
  maxAttempts: number;
8
8
  isExhausted: boolean;
9
9
  status: string;
10
+ /**
11
+ * Persisted inputRef of the task record. For diag_* stage tasks this is
12
+ * the parent diagnostician task ID (linkage written by
13
+ * SplitDiagnosticianRunner.ensureSubTask); for diagnostician parent tasks
14
+ * it is the source painId. null when absent — consumers that need the
15
+ * stage→parent linkage must fall back to the diag_<stage>-<parentTaskId>
16
+ * ID convention and report unresolved linkage honestly.
17
+ */
18
+ inputRef: string | null;
10
19
  }
11
20
  export interface FailedTaskRecoveryResult {
12
21
  taskId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"recovery-sweep-service.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/recovery-sweep-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAI1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC5D,iBAAiB,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACvD,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC;IAC7F;;;;;OAKG;IACH,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACxE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AA0ED,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAC7B,OAAO,CAAC,0BAA0B,CAAC,CAOrC"}
1
+ {"version":3,"file":"recovery-sweep-service.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/recovery-sweep-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAI1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC5D,iBAAiB,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACvD,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC;IAC7F;;;;;OAKG;IACH,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACxE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AA+ED,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAC7B,OAAO,CAAC,0BAA0B,CAAC,CAOrC"}
@@ -1,6 +1,6 @@
1
1
  import { createRuntimeStateHandle } from './runtime-state-handle.js';
2
2
  import { PDRuntimeError } from './error-categories.js';
3
- import { isPeerRunnerKind } from './internalization/peer-runner-contracts.js';
3
+ import { isRunnerKind } from './internalization/peer-runner-contracts.js';
4
4
  import { ownerRetryNeedsHumanReviewTask } from './internalization/owner-retry.js';
5
5
  class RecoverySweepServiceImpl {
6
6
  stateManager;
@@ -16,7 +16,11 @@ class RecoverySweepServiceImpl {
16
16
  async detectFailedTasks() {
17
17
  const failedTasks = await this.stateManager.listTasks({ status: 'failed' });
18
18
  return failedTasks
19
- .filter(t => isPeerRunnerKind(t.taskKind))
19
+ // Discovery must cover everything recoverFailedTask() can recover: the
20
+ // 6 peer runners, the diag_* split-pipeline stages (isRunnerKind), and
21
+ // the parent 'diagnostician' task (a TaskRecord kind, not a RunnerKind).
22
+ // Unrelated kinds (e.g. principle_candidate_intake) stay excluded.
23
+ .filter(t => isRunnerKind(t.taskKind) || t.taskKind === 'diagnostician')
20
24
  .map(t => ({
21
25
  taskId: t.taskId,
22
26
  taskKind: t.taskKind,
@@ -24,6 +28,7 @@ class RecoverySweepServiceImpl {
24
28
  maxAttempts: t.maxAttempts,
25
29
  isExhausted: t.attemptCount >= t.maxAttempts,
26
30
  status: t.status,
31
+ inputRef: t.inputRef ?? null,
27
32
  }));
28
33
  }
29
34
  async recoverFailedTask(taskId, force = false) {
@@ -1 +1 @@
1
- {"version":3,"file":"recovery-sweep-service.js","sourceRoot":"","sources":["../../src/runtime-v2/recovery-sweep-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recovery-sweep-service.js","sourceRoot":"","sources":["../../src/runtime-v2/recovery-sweep-service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@principles/core",
3
- "version": "1.278.5",
3
+ "version": "1.278.6",
4
4
  "description": "Pure-logic core of Principles Disciple, an AI Agent Governance System - pain signal capture and principle proposal (no I/O)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",