create-principles-disciple 1.143.1 → 1.143.2

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 (48) hide show
  1. package/core/dist/runtime-v2/__tests__/proven-channel-baseline.test.js +8 -19
  2. package/core/dist/runtime-v2/__tests__/proven-channel-baseline.test.js.map +1 -1
  3. package/core/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js +151 -77
  4. package/core/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js.map +1 -1
  5. package/core/dist/runtime-v2/activation/__tests__/activation-re-dispatch.test.js +25 -9
  6. package/core/dist/runtime-v2/activation/__tests__/activation-re-dispatch.test.js.map +1 -1
  7. package/core/dist/runtime-v2/activation/activation-dispatcher.d.ts.map +1 -1
  8. package/core/dist/runtime-v2/activation/activation-dispatcher.js +9 -12
  9. package/core/dist/runtime-v2/activation/activation-dispatcher.js.map +1 -1
  10. package/core/dist/runtime-v2/activation/activation-types.d.ts +4 -3
  11. package/core/dist/runtime-v2/activation/activation-types.d.ts.map +1 -1
  12. package/core/dist/runtime-v2/activation/activation-types.js.map +1 -1
  13. package/core/dist/runtime-v2/activation/approval-queue.d.ts +5 -0
  14. package/core/dist/runtime-v2/activation/approval-queue.d.ts.map +1 -1
  15. package/core/dist/runtime-v2/activation/approval-queue.js +5 -0
  16. package/core/dist/runtime-v2/activation/approval-queue.js.map +1 -1
  17. package/core/dist/runtime-v2/activation/prompt-activation-reader-contract.d.ts +2 -1
  18. package/core/dist/runtime-v2/activation/prompt-activation-reader-contract.d.ts.map +1 -1
  19. package/core/dist/runtime-v2/activation/prompt-activation-reader-contract.js.map +1 -1
  20. package/core/dist/runtime-v2/internalization/__tests__/mvp-core-loop-journeys.test.js +13 -8
  21. package/core/dist/runtime-v2/internalization/__tests__/mvp-core-loop-journeys.test.js.map +1 -1
  22. package/core/dist/runtime-v2/internalization/__tests__/restart-safety.e2e.test.js +8 -6
  23. package/core/dist/runtime-v2/internalization/__tests__/restart-safety.e2e.test.js.map +1 -1
  24. package/core/dist/runtime-v2/proven-channel-baseline.d.ts.map +1 -1
  25. package/core/dist/runtime-v2/proven-channel-baseline.js +42 -6
  26. package/core/dist/runtime-v2/proven-channel-baseline.js.map +1 -1
  27. package/core/package.json +1 -1
  28. package/host-runtime/dist/internalization-consumer-cycle.js +3 -3
  29. package/host-runtime/dist/internalization-consumer-governance.d.ts +3 -3
  30. package/host-runtime/dist/internalization-consumer-governance.js +5 -3
  31. package/host-runtime/package.json +1 -1
  32. package/install-layout/package.json +1 -1
  33. package/package.json +2 -2
  34. package/pd-cli/dist/commands/runtime-activation.js +2 -2
  35. package/pd-cli/dist/commands/runtime-activation.js.map +1 -1
  36. package/pd-cli/dist/commands/runtime-internalization-run-once.d.ts.map +1 -1
  37. package/pd-cli/dist/commands/runtime-internalization-run-once.js +3 -2
  38. package/pd-cli/dist/commands/runtime-internalization-run-once.js.map +1 -1
  39. package/pd-cli/dist/services/demo-story-a-runner.d.ts.map +1 -1
  40. package/pd-cli/dist/services/demo-story-a-runner.js +32 -41
  41. package/pd-cli/dist/services/demo-story-a-runner.js.map +1 -1
  42. package/pd-cli/package.json +1 -1
  43. package/plugin/dist/bundle.js +387 -387
  44. package/plugin/dist/governance-audit.js +138 -138
  45. package/plugin/dist/rulehost-evidence.js +142 -142
  46. package/plugin/openclaw.plugin.json +1 -1
  47. package/plugin/package.json +1 -1
  48. package/release-manager/package.json +2 -2
@@ -90,15 +90,10 @@ describe('Proven Channel Baseline (PRI-240)', () => {
90
90
  const result = await runPromptFixture();
91
91
  expect(result.channel).toBe('prompt');
92
92
  expect(result.status).toBe('passed');
93
- expect(['would_activate', 'activated']).toContain(result.activationDecision.decision);
94
- if (result.activationDecision.decision === 'would_activate' || result.activationDecision.decision === 'activated') {
95
- expect(result.activationDecision.activationId).toContain('act_prompt_');
96
- expect(result.activationDecision.action).toBe('prompt_activate');
97
- expect(result.activationDecision.targetRef).toContain('ledger://');
98
- }
99
- expect(result.evidence).toHaveProperty('activationId');
100
- expect(result.evidence).toHaveProperty('evidenceSource');
101
- expect(result.evidenceSource).toContain('ActivationDispatcher');
93
+ // PRI-811 Phase B: the rollout recommendation enqueues for Owner approval.
94
+ expect(result.activationDecision.decision).toBe('queued_for_approval');
95
+ expect(result.evidence).toHaveProperty('queueBehavior');
96
+ expect(result.evidence.queueBehavior).toBe('enqueued');
102
97
  expect(result.failureReason).toBeUndefined();
103
98
  expect(result.dependsOnLegacy).toBe(false);
104
99
  });
@@ -152,16 +147,10 @@ describe('Proven Channel Baseline (PRI-240)', () => {
152
147
  const result = await runDeferArchiveFixture();
153
148
  expect(result.channel).toBe('defer_archive');
154
149
  expect(result.status).toBe('passed');
155
- expect(['would_activate', 'activated']).toContain(result.activationDecision.decision);
156
- if (result.activationDecision.decision === 'would_activate' || result.activationDecision.decision === 'activated') {
157
- expect(result.activationDecision.activationId).toContain('act_archive_');
158
- expect(result.activationDecision.action).toBe('defer_archive');
159
- expect(result.activationDecision.targetRef).toContain('ledger://');
160
- expect(result.activationDecision.targetRef).toContain('#archived');
161
- }
162
- expect(result.evidence).toHaveProperty('activationId');
163
- expect(result.evidence).toHaveProperty('evidenceSource');
164
- expect(result.evidenceSource).toContain('ActivationDispatcher');
150
+ // PRI-811 Phase B: the rollout recommendation enqueues for Owner approval.
151
+ expect(result.activationDecision.decision).toBe('queued_for_approval');
152
+ expect(result.evidence).toHaveProperty('queueBehavior');
153
+ expect(result.evidence.queueBehavior).toBe('enqueued');
165
154
  expect(result.failureReason).toBeUndefined();
166
155
  expect(result.dependsOnLegacy).toBe(false);
167
156
  });
@@ -1 +1 @@
1
- {"version":3,"file":"proven-channel-baseline.test.js","sourceRoot":"","sources":["../../../src/runtime-v2/__tests__/proven-channel-baseline.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proven-channel-baseline.test.js","sourceRoot":"","sources":["../../../src/runtime-v2/__tests__/proven-channel-baseline.test.ts"],"names":[],"mappings":"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"}
@@ -35,33 +35,90 @@ describe('ActivationDispatcher', () => {
35
35
  const dispatcher = new ActivationDispatcher(artifactStore, stateStore, { writers: [promptWriter, archiveWriter] });
36
36
  return { stateStore, artifactStore, dispatcher, promptWriter, archiveWriter };
37
37
  }
38
- it('low-risk prompt artifact dry-run → would_activate', async () => {
39
- const { artifactStore, dispatcher } = makeDispatcher();
38
+ function makeDispatcherWithQueue() {
39
+ const stateStore = new MemoryActivationStateStore();
40
+ const artifactStore = new MemoryArtifactReadModel();
41
+ const approvalStore = new MemoryApprovalQueueStore();
42
+ const promptWriter = new PromptWriter();
43
+ const archiveWriter = new DeferArchiveWriter();
44
+ const dispatcher = new ActivationDispatcher(artifactStore, stateStore, { writers: [promptWriter, archiveWriter], approvalQueueStore: approvalStore });
45
+ return { stateStore, artifactStore, dispatcher, approvalStore };
46
+ }
47
+ // ── PRI-811 Phase B: rollout recommendations never self-execute ────────────
48
+ // Before Phase B, a low-risk prompt artifact dispatched with
49
+ // 'auto_activate' activated directly (no Owner approval). The Owner closed
50
+ // that path: every activation fact must trace to a verified 'approved'
51
+ // approval record.
52
+ it('PRI-811 Phase B: prompt auto_activate dry-run → queued_for_approval preview (nothing persisted)', async () => {
53
+ const { artifactStore, stateStore, dispatcher, approvalStore } = makeDispatcherWithQueue();
40
54
  artifactStore.addArtifact(makePrincipleArtifact());
41
55
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt', confirm: false }));
42
- expect(result.decision).toBe('would_activate');
43
- if (result.decision === 'would_activate') {
44
- expect(result.activationId).toBe('act_prompt_P_001');
45
- expect(result.action).toBe('prompt_activate');
46
- expect(result.targetRef).toBe('ledger://P_001');
56
+ expect(result.decision).toBe('queued_for_approval');
57
+ if (result.decision === 'queued_for_approval') {
58
+ expect(result.channel).toBe('prompt');
59
+ expect(result.riskLevel).toBe('low');
47
60
  }
61
+ // Dry-run preview: no approval row, no activation row.
62
+ expect(await approvalStore.listPending()).toHaveLength(0);
63
+ expect(await stateStore.getActivationStatus(makeIdempotencyKey('art-001', 'prompt'))).toBeNull();
48
64
  });
49
- it('confirm → activated', async () => {
50
- const { artifactStore, dispatcher } = makeDispatcher();
65
+ it('PRI-811 Phase B: prompt auto_activate + confirm queues for Owner approval — no activation row', async () => {
66
+ const { artifactStore, stateStore, dispatcher, approvalStore } = makeDispatcherWithQueue();
51
67
  artifactStore.addArtifact(makePrincipleArtifact());
52
68
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt', confirm: true }));
69
+ expect(result.decision).toBe('queued_for_approval');
70
+ if (result.decision === 'queued_for_approval') {
71
+ expect(result.approvalId).toBeTruthy();
72
+ }
73
+ // Verification 1: the rollout recommendation alone must NOT create an
74
+ // activation fact.
75
+ const pending = await approvalStore.listPending();
76
+ expect(pending).toHaveLength(1);
77
+ expect(await stateStore.getActivationStatus(makeIdempotencyKey('art-001', 'prompt'))).toBeNull();
78
+ });
79
+ it('PRI-811 Phase B: Owner approval → activation produced via verified approved dispatch', async () => {
80
+ const { artifactStore, stateStore, dispatcher, approvalStore } = makeDispatcherWithQueue();
81
+ artifactStore.addArtifact(makePrincipleArtifact());
82
+ const queued = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt', confirm: true }));
83
+ expect(queued.decision).toBe('queued_for_approval');
84
+ if (queued.decision !== 'queued_for_approval')
85
+ return;
86
+ const approved = await approvalStore.approve(queued.approvalId, 'owner-test');
87
+ expect(approved.ok).toBe(true);
88
+ // Verification 2: after Owner approval, the activation is produced through
89
+ // the independently-verified 'approved' dispatch path.
90
+ const result = await dispatcher.dispatch(makeDispatchInput({
91
+ channel: 'prompt',
92
+ confirm: true,
93
+ rolloutDecision: 'approved',
94
+ approvalId: queued.approvalId,
95
+ }));
53
96
  expect(result.decision).toBe('activated');
54
97
  if (result.decision === 'activated') {
55
98
  expect(result.activationId).toBe('act_prompt_P_001');
56
99
  expect(result.action).toBe('prompt_activate');
57
100
  expect(result.targetRef).toBe('ledger://P_001');
58
101
  }
102
+ const status = await stateStore.getActivationStatus(makeIdempotencyKey('art-001', 'prompt'));
103
+ expect(status?.activationId).toBe('act_prompt_P_001');
59
104
  });
60
- it('repeat confirm → already_activated', async () => {
61
- const { artifactStore, dispatcher } = makeDispatcher();
105
+ it('repeat approved dispatch → already_activated', async () => {
106
+ const { artifactStore, dispatcher, approvalStore } = makeDispatcherWithQueue();
62
107
  artifactStore.addArtifact(makePrincipleArtifact());
63
- await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt', confirm: true }));
64
- const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt', confirm: true }));
108
+ const queued = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt', confirm: true }));
109
+ expect(queued.decision).toBe('queued_for_approval');
110
+ if (queued.decision !== 'queued_for_approval')
111
+ return;
112
+ const approved = await approvalStore.approve(queued.approvalId, 'owner-test');
113
+ expect(approved.ok).toBe(true);
114
+ const input = makeDispatchInput({
115
+ channel: 'prompt',
116
+ confirm: true,
117
+ rolloutDecision: 'approved',
118
+ approvalId: queued.approvalId,
119
+ });
120
+ await dispatcher.dispatch(input);
121
+ const result = await dispatcher.dispatch(input);
65
122
  expect(result.decision).toBe('already_activated');
66
123
  if (result.decision === 'already_activated') {
67
124
  expect(result.activationId).toBe('act_prompt_P_001');
@@ -168,17 +225,28 @@ describe('ActivationDispatcher', () => {
168
225
  expect(result.decision).toBe('invalid_artifact');
169
226
  });
170
227
  it('dry-run does not write activation record', async () => {
171
- const { artifactStore, stateStore, dispatcher } = makeDispatcher();
228
+ const { artifactStore, stateStore, dispatcher, approvalStore } = makeDispatcherWithQueue();
172
229
  artifactStore.addArtifact(makePrincipleArtifact());
173
230
  await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt', confirm: false }));
174
231
  const key = makeIdempotencyKey('art-001', 'prompt');
175
232
  const status = await stateStore.getActivationStatus(key);
176
233
  expect(status).toBeNull();
234
+ expect(await approvalStore.listPending()).toHaveLength(0);
177
235
  });
178
- it('confirm writes only expected activation record', async () => {
179
- const { artifactStore, stateStore, dispatcher } = makeDispatcher();
236
+ it('approved dispatch persists the expected activation record fields', async () => {
237
+ const { artifactStore, stateStore, dispatcher, approvalStore } = makeDispatcherWithQueue();
180
238
  artifactStore.addArtifact(makePrincipleArtifact());
181
- await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt', confirm: true }));
239
+ const queued = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt', confirm: true }));
240
+ expect(queued.decision).toBe('queued_for_approval');
241
+ if (queued.decision !== 'queued_for_approval')
242
+ return;
243
+ await approvalStore.approve(queued.approvalId, 'owner-test');
244
+ await dispatcher.dispatch(makeDispatchInput({
245
+ channel: 'prompt',
246
+ confirm: true,
247
+ rolloutDecision: 'approved',
248
+ approvalId: queued.approvalId,
249
+ }));
182
250
  const key = makeIdempotencyKey('art-001', 'prompt');
183
251
  const status = await stateStore.getActivationStatus(key);
184
252
  expect(status).not.toBeNull();
@@ -217,29 +285,36 @@ describe('ActivationDispatcher', () => {
217
285
  expect(result.reason).toBe('artifact_read_failed');
218
286
  }
219
287
  });
220
- it('defer_archive channel dry-run → would_activate', async () => {
221
- const { artifactStore, dispatcher } = makeDispatcher();
222
- artifactStore.addArtifact(makePrincipleArtifact());
223
- const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'defer_archive', confirm: false }));
224
- expect(result.decision).toBe('would_activate');
225
- if (result.decision === 'would_activate') {
226
- expect(result.activationId).toBe('act_archive_P_001');
227
- expect(result.action).toBe('defer_archive');
228
- expect(result.targetRef).toBe('ledger://P_001#archived');
229
- }
230
- });
231
- it('defer_archive confirm → activated', async () => {
232
- const { artifactStore, dispatcher } = makeDispatcher();
288
+ it('PRI-811 Phase B: defer_archive auto_activate + confirm queues — activation only after approval', async () => {
289
+ const { artifactStore, stateStore, dispatcher, approvalStore } = makeDispatcherWithQueue();
233
290
  artifactStore.addArtifact(makePrincipleArtifact());
234
- const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'defer_archive', confirm: true }));
291
+ const queued = await dispatcher.dispatch(makeDispatchInput({ channel: 'defer_archive', confirm: true }));
292
+ expect(queued.decision).toBe('queued_for_approval');
293
+ if (queued.decision !== 'queued_for_approval')
294
+ return;
295
+ // Recommendation alone must not produce the archive activation fact.
296
+ expect(await stateStore.getActivationStatus(makeIdempotencyKey('art-001', 'defer_archive'))).toBeNull();
297
+ const approved = await approvalStore.approve(queued.approvalId, 'owner-test');
298
+ expect(approved.ok).toBe(true);
299
+ const result = await dispatcher.dispatch(makeDispatchInput({
300
+ channel: 'defer_archive',
301
+ confirm: true,
302
+ rolloutDecision: 'approved',
303
+ approvalId: queued.approvalId,
304
+ }));
235
305
  expect(result.decision).toBe('activated');
236
306
  if (result.decision === 'activated') {
237
307
  expect(result.activationId).toBe('act_archive_P_001');
238
308
  expect(result.targetRef).toBe('ledger://P_001#archived');
239
309
  }
310
+ const status = await stateStore.getActivationStatus(makeIdempotencyKey('art-001', 'defer_archive'));
311
+ expect(status?.activationId).toBe('act_archive_P_001');
240
312
  });
313
+ // PRI-811 Phase B: writer canActivate guards run inside the enqueue path
314
+ // (queue store present), so invalid artifacts are refused before any
315
+ // approval row is written.
241
316
  it('non-principle artifact → refused by writer canActivate', async () => {
242
- const { artifactStore, dispatcher } = makeDispatcher();
317
+ const { artifactStore, dispatcher } = makeDispatcherWithQueue();
243
318
  artifactStore.addArtifact(makePrincipleArtifact({ artifactKind: 'rule' }));
244
319
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt' }));
245
320
  expect(result.decision).toBe('refused');
@@ -247,20 +322,20 @@ describe('ActivationDispatcher', () => {
247
322
  expect(result.reason).toContain('artifact_kind_not_principle');
248
323
  }
249
324
  });
250
- it('artifact without principleId → invalid_artifact', async () => {
251
- const { artifactStore, dispatcher } = makeDispatcher();
325
+ it('artifact without principleId → refused by writer canActivate', async () => {
326
+ const { artifactStore, dispatcher } = makeDispatcherWithQueue();
252
327
  artifactStore.addArtifact(makePrincipleArtifact({
253
328
  sourcePrincipleId: undefined,
254
329
  contentJson: JSON.stringify({ text: 'No principle ID here' }),
255
330
  }));
256
331
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt' }));
257
- expect(result.decision).toBe('invalid_artifact');
258
- if (result.decision === 'invalid_artifact') {
259
- expect(result.reason).toBe('no_principle_id');
332
+ expect(result.decision).toBe('refused');
333
+ if (result.decision === 'refused') {
334
+ expect(result.reason).toBe('no_principle_id_in_artifact');
260
335
  }
261
336
  });
262
337
  it('pending validation artifact → refused by writer', async () => {
263
- const { artifactStore, dispatcher } = makeDispatcher();
338
+ const { artifactStore, dispatcher } = makeDispatcherWithQueue();
264
339
  artifactStore.addArtifact(makePrincipleArtifact({ validationStatus: 'pending' }));
265
340
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt' }));
266
341
  expect(result.decision).toBe('refused');
@@ -268,29 +343,39 @@ describe('ActivationDispatcher', () => {
268
343
  expect(result.reason).toContain('artifact_validation_status_pending');
269
344
  }
270
345
  });
271
- it('whitespace-only sourcePrincipleId → invalid_artifact', async () => {
272
- const { artifactStore, dispatcher } = makeDispatcher();
346
+ it('whitespace-only sourcePrincipleId → refused by writer canActivate', async () => {
347
+ const { artifactStore, dispatcher } = makeDispatcherWithQueue();
273
348
  artifactStore.addArtifact(makePrincipleArtifact({
274
349
  sourcePrincipleId: ' ',
275
350
  contentJson: JSON.stringify({ text: 'No principle ID here' }),
276
351
  }));
277
352
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt' }));
278
- expect(result.decision).toBe('invalid_artifact');
279
- if (result.decision === 'invalid_artifact') {
280
- expect(result.reason).toBe('no_principle_id');
353
+ expect(result.decision).toBe('refused');
354
+ if (result.decision === 'refused') {
355
+ expect(result.reason).toBe('no_principle_id_in_artifact');
281
356
  }
282
357
  });
283
- it('writer.activate throws → refused', async () => {
284
- const { artifactStore } = makeDispatcher();
285
- artifactStore.addArtifact(makePrincipleArtifact());
358
+ it('writer.activate throws on approved dispatch → refused', async () => {
286
359
  const throwingWriter = {
287
360
  channel: 'prompt',
288
361
  canActivate: async () => ({ ok: true, riskLevel: 'low' }),
289
362
  activate: async () => { throw new Error('Writer crashed'); },
290
363
  };
291
364
  const stateStore = new MemoryActivationStateStore();
292
- const throwDispatcher = new ActivationDispatcher({ getArtifactById: async (id) => id === 'art-001' ? makePrincipleArtifact() : null }, stateStore, { writers: [throwingWriter] });
293
- const result = await throwDispatcher.dispatch(makeDispatchInput({ channel: 'prompt' }));
365
+ const approvalStore = new MemoryApprovalQueueStore();
366
+ const throwDispatcher = new ActivationDispatcher({ getArtifactById: async (id) => id === 'art-001' ? makePrincipleArtifact() : null }, stateStore, { writers: [throwingWriter], approvalQueueStore: approvalStore });
367
+ const queued = await throwDispatcher.dispatch(makeDispatchInput({ channel: 'prompt', confirm: true }));
368
+ expect(queued.decision).toBe('queued_for_approval');
369
+ if (queued.decision !== 'queued_for_approval')
370
+ return;
371
+ const approved = await approvalStore.approve(queued.approvalId, 'owner-test');
372
+ expect(approved.ok).toBe(true);
373
+ const result = await throwDispatcher.dispatch(makeDispatchInput({
374
+ channel: 'prompt',
375
+ confirm: true,
376
+ rolloutDecision: 'approved',
377
+ approvalId: queued.approvalId,
378
+ }));
294
379
  expect(result.decision).toBe('refused');
295
380
  if (result.decision === 'refused') {
296
381
  expect(result.reason).toBe('activation_write_failed');
@@ -312,7 +397,7 @@ describe('ActivationDispatcher', () => {
312
397
  targetRef: 'ledger://' + input.principleId,
313
398
  }),
314
399
  };
315
- const dispatcher = new ActivationDispatcher(artifactStore, new MemoryActivationStateStore(), { writers: [throwingCanActivateWriter] });
400
+ const dispatcher = new ActivationDispatcher(artifactStore, new MemoryActivationStateStore(), { writers: [throwingCanActivateWriter], approvalQueueStore: new MemoryApprovalQueueStore() });
316
401
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt' }));
317
402
  expect(result.decision).toBe('refused');
318
403
  if (result.decision === 'refused') {
@@ -341,7 +426,7 @@ describe('ActivationDispatcher', () => {
341
426
  targetRef: 'ledger://' + input.principleId,
342
427
  }),
343
428
  };
344
- const dispatcher = new ActivationDispatcher(artifactStore, new MemoryActivationStateStore(), { writers: [throwingWriter] });
429
+ const dispatcher = new ActivationDispatcher(artifactStore, new MemoryActivationStateStore(), { writers: [throwingWriter], approvalQueueStore: new MemoryApprovalQueueStore() });
345
430
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt' }));
346
431
  expect(result.decision).toBe('refused');
347
432
  if (result.decision === 'refused' && result.details) {
@@ -365,7 +450,7 @@ describe('ActivationDispatcher', () => {
365
450
  targetRef: 'ledger://' + input.principleId,
366
451
  }),
367
452
  };
368
- const dispatcher = new ActivationDispatcher(artifactStore, new MemoryActivationStateStore(), { writers: [throwingWriter], eventEmitter });
453
+ const dispatcher = new ActivationDispatcher(artifactStore, new MemoryActivationStateStore(), { writers: [throwingWriter], approvalQueueStore: new MemoryApprovalQueueStore(), eventEmitter });
369
454
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt' }));
370
455
  expect(result.decision).toBe('refused');
371
456
  // Telemetry event must be emitted with artifactId + originalError in payload
@@ -397,23 +482,15 @@ describe('ActivationDispatcher', () => {
397
482
  };
398
483
  // No eventEmitter in config — existing callers that don't wire telemetry
399
484
  // must continue to work; the `details` field is the authoritative record.
400
- const dispatcher = new ActivationDispatcher(artifactStore, new MemoryActivationStateStore(), { writers: [throwingWriter] });
485
+ const dispatcher = new ActivationDispatcher(artifactStore, new MemoryActivationStateStore(), { writers: [throwingWriter], approvalQueueStore: new MemoryApprovalQueueStore() });
401
486
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt' }));
402
487
  expect(result.decision).toBe('refused');
403
488
  if (result.decision === 'refused' && result.details) {
404
489
  expect(result.details.originalError).toBe('no emitter');
405
490
  }
406
491
  });
407
- // PRI-145: ApprovalQueue & Auto-Promotion
408
- function makeDispatcherWithQueue() {
409
- const stateStore = new MemoryActivationStateStore();
410
- const artifactStore = new MemoryArtifactReadModel();
411
- const approvalStore = new MemoryApprovalQueueStore();
412
- const promptWriter = new PromptWriter();
413
- const archiveWriter = new DeferArchiveWriter();
414
- const dispatcher = new ActivationDispatcher(artifactStore, stateStore, { writers: [promptWriter, archiveWriter], approvalQueueStore: approvalStore });
415
- return { stateStore, artifactStore, dispatcher, approvalStore };
416
- }
492
+ // PRI-145: ApprovalQueue & Auto-Promotion (auto-promotion bypass removed in
493
+ // PRI-811 Phase B — all rollout recommendations enqueue for Owner approval)
417
494
  it('skill with confidence 0.94 + queue store -> queued_for_approval', async () => {
418
495
  const { artifactStore, dispatcher } = makeDispatcherWithQueue();
419
496
  artifactStore.addArtifact(makePrincipleArtifact());
@@ -457,7 +534,7 @@ describe('ActivationDispatcher', () => {
457
534
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'skill' }));
458
535
  expect(result.decision).toBe('queued_for_approval');
459
536
  });
460
- it('skill with confidence 0.95 + queue store + writer -> would_activate (auto-promote dry-run)', async () => {
537
+ it('PRI-811 Phase B: skill with confidence 0.95 + queue store + writer -> queued_for_approval (auto-promote bypass removed)', async () => {
461
538
  const skillWriter = {
462
539
  channel: 'skill',
463
540
  canActivate: async () => ({ ok: true, riskLevel: 'medium' }),
@@ -472,17 +549,15 @@ describe('ActivationDispatcher', () => {
472
549
  const approvalStore = new MemoryApprovalQueueStore();
473
550
  artifactStore.addArtifact(makePrincipleArtifact());
474
551
  const dispatcher = new ActivationDispatcher(artifactStore, stateStore, { writers: [skillWriter], approvalQueueStore: approvalStore });
475
- const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'skill', confidence: 0.95 }));
476
- expect(result.decision).toBe('would_activate');
477
- if (result.decision === 'would_activate') {
478
- expect(result.activationId).toBe('act_skill_P_001');
479
- expect(result.action).toBe('skill_activate');
480
- }
481
- // Verify nothing was queued
552
+ const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'skill', confidence: 0.95, confirm: true }));
553
+ expect(result.decision).toBe('queued_for_approval');
554
+ // Even above the old AUTO_PROMOTION_CONFIDENCE_THRESHOLD, a rollout
555
+ // recommendation must not self-execute: the approval queue holds the item.
482
556
  const pending = await approvalStore.listPending();
483
- expect(pending).toHaveLength(0);
557
+ expect(pending).toHaveLength(1);
558
+ expect(await stateStore.getActivationStatus(makeIdempotencyKey('art-001', 'skill'))).toBeNull();
484
559
  });
485
- it('skill with confidence 0.96 + queue store + writer -> activated (auto-promote confirm)', async () => {
560
+ it('PRI-811 Phase B: skill with confidence 0.96 + confirm -> queued (no direct activation)', async () => {
486
561
  const skillWriter = {
487
562
  channel: 'skill',
488
563
  canActivate: async () => ({ ok: true, riskLevel: 'medium' }),
@@ -498,13 +573,12 @@ describe('ActivationDispatcher', () => {
498
573
  artifactStore.addArtifact(makePrincipleArtifact());
499
574
  const dispatcher = new ActivationDispatcher(artifactStore, stateStore, { writers: [skillWriter], approvalQueueStore: approvalStore });
500
575
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'skill', confidence: 0.96, confirm: true }));
501
- expect(result.decision).toBe('activated');
502
- if (result.decision === 'activated') {
503
- expect(result.activationId).toBe('act_skill_P_001');
576
+ expect(result.decision).toBe('queued_for_approval');
577
+ if (result.decision === 'queued_for_approval') {
578
+ expect(result.approvalId).toBeTruthy();
504
579
  }
505
- // Verify nothing was queued
506
580
  const pending = await approvalStore.listPending();
507
- expect(pending).toHaveLength(0);
581
+ expect(pending).toHaveLength(1);
508
582
  });
509
583
  // PRI-185: Context fields in queued approval records
510
584
  it('queued approval record contains context fields', async () => {