@principles/pd-cli 1.139.0 → 1.141.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.
@@ -30,15 +30,15 @@ describe('deriveActivationStatusAndNextAction', () => {
30
30
  expect(nextAction).toContain('pd activation deactivate');
31
31
  expect(nextAction).not.toContain('--confirm');
32
32
  });
33
- it('shadow mode: promote nextAction MUST contain --confirm', () => {
33
+ it('shadow mode: nextAction requires Owner review instead of advertising direct mutation', () => {
34
34
  const { status, nextAction } = deriveActivationStatusAndNextAction({
35
35
  ...base,
36
36
  mode: 'shadow',
37
37
  });
38
38
  expect(status).toBe('active');
39
39
  expect(nextAction).toBeDefined();
40
- expect(nextAction).toContain('pd activation promote');
41
- expect(nextAction).toContain('--confirm');
40
+ expect(nextAction).toBe('Keep shadow; promotion requires an authenticated Owner decision, immutable evidence bindings, and a passing Promotion Readiness result.');
41
+ expect(nextAction).not.toContain('pd activation promote');
42
42
  });
43
43
  it('deactivated record: status deactivated, no nextAction', () => {
44
44
  const { status, nextAction } = deriveActivationStatusAndNextAction({
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-activation-nextaction.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/runtime-activation-nextaction.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-activation-nextaction.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/runtime-activation-nextaction.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mCAAmC,EAAE,MAAM,0BAA0B,CAAC;AAE/E,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,MAAM,IAAI,GAAG;QACX,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,IAAa;QAC7B,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,wBAAwB;KACvC,CAAC;IAEF,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,mCAAmC,CAAC;YACjE,GAAG,IAAI;YACP,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACzD,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sFAAsF,EAAE,GAAG,EAAE;QAC9F,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,mCAAmC,CAAC;YACjE,GAAG,IAAI;YACP,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CACrB,yIAAyI,CAC1I,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,mCAAmC,CAAC;YACjE,GAAG,IAAI;YACP,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,0BAA0B;SAC1C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,aAAa,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,GAAG,EAAE;QAC3F,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,mCAAmC,CAAC;YACjE,GAAG,IAAI;YACP,IAAI,EAAE,MAAM;YACZ,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACzC,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACzD,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,mCAAmC,CAAC;YACjE,GAAG,IAAI;YACP,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,CAAC,UAAU,CAAC,CAAC,aAAa,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -27,6 +27,12 @@ export interface ActivationPromoteOptions {
27
27
  dryRun?: boolean;
28
28
  confirm?: boolean;
29
29
  json?: boolean;
30
+ artifactId?: string;
31
+ artifactDigest?: string;
32
+ controlVersion?: number;
33
+ idempotencyKey?: string;
34
+ reasonCode?: string;
35
+ note?: string;
30
36
  }
31
37
  export interface ActivationPromoteResult {
32
38
  ok: boolean;
@@ -34,6 +40,12 @@ export interface ActivationPromoteResult {
34
40
  activationId: string;
35
41
  promotedAt?: string;
36
42
  reason?: string;
43
+ reasonCode?: string;
44
+ summary?: string;
45
+ failedChecks?: {
46
+ checkId: string;
47
+ reasonCode: string;
48
+ }[];
37
49
  nextAction?: string;
38
50
  }
39
51
  export declare function handleRuntimeActivationPromote(opts: ActivationPromoteOptions): Promise<void>;
@@ -57,9 +69,9 @@ export interface ActivationStatusDerivation {
57
69
  /**
58
70
  * Derive owner-facing status + nextAction for an activation record.
59
71
  *
60
- * Extract as a pure function so the CLI hints (promote/deactivate) can be
61
- * regression-tested. Rule: deactivate never takes --confirm (promote does);
62
- * keep the two templates distinct to avoid copy-paste regressions.
72
+ * Extract as a pure function so the CLI hints can be regression-tested.
73
+ * Shadow activations point at the Owner decision contract instead of
74
+ * advertising a raw lifecycle mutation that can bypass review evidence.
63
75
  */
64
76
  export declare function deriveActivationStatusAndNextAction(input: ActivationNextActionInput): ActivationStatusDerivation;
65
77
  export declare function handleRuntimeActivationList(opts: ActivationListOptions): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-activation.d.ts","sourceRoot":"","sources":["../../src/commands/runtime-activation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-activation.d.ts","sourceRoot":"","sources":["../../src/commands/runtime-activation.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  import * as path from 'path';
2
- import { RuntimeStateManager, ActivationDispatcher, PromptWriter, DeferArchiveWriter, RuleHostWriter, createProductionGateDeps, SqliteActivationStateStore, SqliteApprovalQueueStore, SqlitePIArtifactStore, ApprovalQueue, ApprovalCompletionService, isArtifactRevisionOf, extractEvidenceRefs, extractPrincipleId, } from '@principles/core/runtime-v2';
2
+ import * as fs from 'node:fs';
3
+ import { createHash, randomUUID } from 'node:crypto';
4
+ import { RuntimeStateManager, ActivationDispatcher, PromptWriter, DeferArchiveWriter, RuleHostWriter, createProductionGateDeps, SqliteActivationStateStore, SqliteApprovalQueueStore, SqlitePIArtifactStore, ApprovalQueue, ApprovalCompletionService, isArtifactRevisionOf, extractEvidenceRefs, extractPrincipleId, isFeatureEnabled, RuleCodeOwnerDecisionService, PromotionReadinessReader, SqliteActivationSafetyStore, collectOpenClawPromotionChecks, summarizeRuleCodeShadowEvents, } from '@principles/core/runtime-v2';
5
+ import { OPENCLAW_HOST_LIVENESS_CONTRACT } from '@principles/host-runtime';
3
6
  import { resolveWorkspaceDir } from '../resolve-workspace.js';
4
7
  import { loadPdConfig, computeFlagsFromLoadResult } from '../services/pd-config-loader.js';
5
8
  /**
@@ -9,6 +12,32 @@ import { loadPdConfig, computeFlagsFromLoadResult } from '../services/pd-config-
9
12
  function isRecord(value) {
10
13
  return value !== null && value !== undefined && typeof value === 'object' && !Array.isArray(value);
11
14
  }
15
+ function unavailableShadowSummary() {
16
+ return {
17
+ observed: null, matched: null, wouldBlock: null, wouldAllow: null,
18
+ requireApproval: null, autoCorrect: null, errors: null, neutralControl: null,
19
+ firstObservedAt: null, lastObservedAt: null,
20
+ };
21
+ }
22
+ function readShadowSummary(workspaceDir, activationId) {
23
+ const logsDir = path.join(workspaceDir, '.pd', 'logs');
24
+ if (!fs.existsSync(logsDir))
25
+ return unavailableShadowSummary();
26
+ const entries = [];
27
+ try {
28
+ for (const file of fs.readdirSync(logsDir).filter(name => /^events_.*\.jsonl$/.test(name)).sort().slice(-7))
29
+ for (const line of fs.readFileSync(path.join(logsDir, file), 'utf8').split('\n').filter(Boolean)) {
30
+ try {
31
+ entries.push(JSON.parse(line));
32
+ }
33
+ catch { /* exclude malformed telemetry */ }
34
+ }
35
+ }
36
+ catch {
37
+ return unavailableShadowSummary();
38
+ }
39
+ return summarizeRuleCodeShadowEvents(entries, activationId);
40
+ }
12
41
  function mapRolloutDecision(reviewDecision) {
13
42
  // P0-E (MVP_CORE_LOOP_CONTRACT INV-04): needs_revision 绝不映射 require_approval。
14
43
  // 旧映射让"需修改"的评审结论伪装成正常审批进入 approval 队列(审计 ISSUE-027)。
@@ -275,8 +304,11 @@ export async function handleRuntimeActivationDeactivate(opts) {
275
304
  }
276
305
  export async function handleRuntimeActivationPromote(opts) {
277
306
  const activationId = opts.activationId?.trim() ?? '';
278
- const refuse = (reason, nextAction) => {
279
- const result = { ok: false, decision: 'refused', activationId, reason, nextAction };
307
+ const refuse = (reason, nextAction, details) => {
308
+ const result = {
309
+ ok: false, decision: 'refused', activationId, reason, reasonCode: reason, nextAction,
310
+ summary: details?.summary, failedChecks: details?.failedChecks,
311
+ };
280
312
  if (opts.json)
281
313
  console.log(JSON.stringify(result));
282
314
  else {
@@ -296,55 +328,122 @@ export async function handleRuntimeActivationPromote(opts) {
296
328
  let stateManager;
297
329
  try {
298
330
  const workspaceDir = opts.workspace ? path.resolve(opts.workspace) : resolveWorkspaceDir();
299
- stateManager = new RuntimeStateManager({ workspaceDir });
300
- await stateManager.initialize();
301
- const store = new SqliteActivationStateStore(stateManager.connection);
302
- const activeHooks = await store.listCodeToolHookActivations(false);
303
- // CodeRabbit PR2 Comment 3: dry-run must apply the same eligibility checks
304
- // as the real promote path. `promoteActivation` runs a COUNT guard inside a
305
- // BEGIN IMMEDIATE transaction and refuses when the count of matching shadow
306
- // rows is not exactly 1. The previous dry-run branch used `find()` (returns
307
- // the first match) and reported `would_promote` even when duplicates would
308
- // make the confirm path throw. Mirror the store's uniqueness check here so
309
- // dry-run and confirm agree (cli-5: failure paths must not mutate state;
310
- // cli-6: degraded/refused results carry a structured reason + nextAction).
311
- const matchingShadows = activeHooks.filter((record) => record.activationId === activationId && record.action === 'code_tool_hook_shadow_activate');
312
- if (matchingShadows.length === 0) {
313
- refuse('not_found_inactive_or_not_shadow', 'Refresh `pd activation list --channel code_tool_hook`; only active shadow activations can be promoted.');
314
- return;
315
- }
316
- if (matchingShadows.length > 1) {
317
- refuse('duplicate_shadow_activations', `${matchingShadows.length} shadow activations share activation_id=${activationId}; resolve duplicates before promoting.`);
318
- return;
319
- }
320
- if (opts.confirm !== true) {
321
- const result = {
322
- ok: true,
323
- decision: 'would_promote',
324
- activationId,
325
- nextAction: `Run pd activation promote --activation-id ${activationId} --confirm to enable live blocking.`,
331
+ const flags = computeFlagsFromLoadResult(loadPdConfig(workspaceDir));
332
+ const ownerId = process.env.PD_OWNER_ID?.trim();
333
+ const credentialId = process.env.PD_OWNER_CREDENTIAL_ID?.trim();
334
+ const consoleToken = process.env.PD_CONSOLE_TOKEN?.trim();
335
+ const operatorId = process.env.USERNAME?.trim() || process.env.USER?.trim();
336
+ const actor = ownerId && credentialId && consoleToken
337
+ ? {
338
+ principal: { kind: 'configured_owner', ownerId },
339
+ authentication: { method: 'cli_owner_credential', credentialId },
340
+ ...(operatorId ? { operator: { kind: 'local_user', operatorId } } : {}),
341
+ }
342
+ : {
343
+ principal: { kind: 'break_glass', reason: 'local_no_auth_emergency' },
344
+ authentication: { method: 'local_break_glass' },
326
345
  };
327
- if (opts.json)
328
- console.log(JSON.stringify(result));
329
- else {
330
- console.log(`Would promote: ${activationId}`);
331
- console.log(` nextAction: ${result.nextAction}`);
346
+ const getStateManager = async () => {
347
+ if (!stateManager) {
348
+ stateManager = new RuntimeStateManager({ workspaceDir, readonly: opts.dryRun === true });
349
+ await stateManager.initialize();
332
350
  }
351
+ return stateManager;
352
+ };
353
+ const service = new RuleCodeOwnerDecisionService({
354
+ ownerLiveDecisionEnabled: () => isFeatureEnabled(flags, 'rulecode_owner_live_decision'),
355
+ safetyControlsEnabled: () => isFeatureEnabled(flags, 'rulecode_safety_controls'),
356
+ evaluateReadiness: async (request) => {
357
+ const manager = await getStateManager();
358
+ const activationStore = new SqliteActivationStateStore(manager.connection);
359
+ const writer = new RuleHostWriter({
360
+ gateDeps: createProductionGateDeps(),
361
+ featureFlagProbe: flagId => isFeatureEnabled(flags, flagId),
362
+ });
363
+ const reader = new PromotionReadinessReader({
364
+ listCodeToolHookActivations: () => activationStore.listCodeToolHookActivations(false),
365
+ getArtifactById: artifactId => manager.piArtifactStore.getArtifactById(artifactId),
366
+ computeArtifactDigest: artifact => `sha256:${createHash('sha256').update(JSON.stringify(artifact), 'utf8').digest('hex')}`,
367
+ validateProductionArtifact: artifact => writer.canActivate(artifact),
368
+ collectHostChecks: async (artifact) => {
369
+ const liveArtifacts = [];
370
+ const activations = await activationStore.listCodeToolHookActivations(false);
371
+ for (const active of activations) {
372
+ if (active.action !== 'code_tool_hook_live_activate' || active.deactivatedAt !== null)
373
+ continue;
374
+ const liveArtifact = await manager.piArtifactStore.getArtifactById(active.artifactId);
375
+ if (liveArtifact)
376
+ liveArtifacts.push(liveArtifact);
377
+ }
378
+ return collectOpenClawPromotionChecks(artifact, {
379
+ ownerIdentityConfigured: actor.principal.kind === 'configured_owner'
380
+ && actor.authentication.method === 'cli_owner_credential',
381
+ safetyControlsEnabled: isFeatureEnabled(flags, 'rulecode_safety_controls'),
382
+ hostContract: OPENCLAW_HOST_LIVENESS_CONTRACT,
383
+ existingLiveArtifacts: liveArtifacts,
384
+ validateProductionArtifact: value => writer.canActivate(value),
385
+ });
386
+ },
387
+ buildEvidenceSnapshot: (checks, artifact) => {
388
+ const createdAt = new Date().toISOString();
389
+ const artifactDigest = artifact
390
+ ? `sha256:${createHash('sha256').update(JSON.stringify(artifact), 'utf8').digest('hex')}`
391
+ : request.expectedArtifactDigest;
392
+ const snapshotBody = JSON.stringify({ artifactDigest, checks, createdAt });
393
+ return {
394
+ snapshotId: `snapshot-${randomUUID()}`,
395
+ snapshotDigest: `sha256:${createHash('sha256').update(snapshotBody, 'utf8').digest('hex')}`,
396
+ artifactDigest,
397
+ lineageRefs: artifact ? [artifact.sourceTaskId, ...artifact.lineageArtifactIds] : [],
398
+ hostRuntimeVersion: 'openclaw-legacy@1', safetyGateResults: checks,
399
+ shadowSummary: readShadowSummary(workspaceDir, activationId),
400
+ configurationVersion: 'pd-config-current',
401
+ redaction: { version: 'v1', rawParametersStored: false }, createdAt,
402
+ };
403
+ },
404
+ newEvaluationId: () => `readiness-${randomUUID()}`,
405
+ });
406
+ return reader.evaluate(request);
407
+ },
408
+ commitPromotion: async (input) => {
409
+ const manager = await getStateManager();
410
+ return new SqliteActivationSafetyStore(manager.connection).commitPromotion(input);
411
+ },
412
+ newDecisionId: () => `decision-${randomUUID()}`,
413
+ now: () => new Date().toISOString(),
414
+ });
415
+ const result = await service.promote({
416
+ activationId,
417
+ expectedArtifactId: opts.artifactId?.trim() ?? '',
418
+ expectedArtifactDigest: opts.artifactDigest?.trim() ?? '',
419
+ expectedControlVersion: opts.controlVersion ?? 0,
420
+ idempotencyKey: opts.idempotencyKey?.trim() ?? '',
421
+ reasonCode: opts.reasonCode?.trim() ?? '',
422
+ note: opts.note,
423
+ confirmed: opts.confirm === true,
424
+ dryRun: opts.dryRun === true,
425
+ }, actor);
426
+ if (!result.ok) {
427
+ refuse(result.reasonCode, result.nextAction, { summary: result.summary, failedChecks: result.failedChecks });
333
428
  return;
334
429
  }
335
- const promotedAt = new Date().toISOString();
336
- const promoted = await store.promoteActivation(activationId, promotedAt);
337
- if (!promoted) {
338
- refuse('promotion_precondition_changed', 'Refresh the activation list; the activation changed before promotion.');
430
+ if (result.decision === 'would_promote') {
431
+ const output = {
432
+ ok: true, decision: 'would_promote', activationId: result.activationId,
433
+ summary: `Readiness ${result.readinessEvaluationId} passed without mutation.`,
434
+ nextAction: `Re-run with --confirm using evidence snapshot ${result.evidenceSnapshotDigest}.`,
435
+ };
436
+ if (opts.json)
437
+ console.log(JSON.stringify(output));
438
+ else
439
+ console.log(`Would promote: ${result.activationId}`);
339
440
  return;
340
441
  }
341
- const result = { ok: true, decision: 'promoted', activationId, promotedAt };
442
+ const output = { ok: true, decision: 'promoted', activationId: result.activationId, promotedAt: result.promotedAt };
342
443
  if (opts.json)
343
- console.log(JSON.stringify(result));
344
- else {
345
- console.log(`Promoted live: ${activationId}`);
346
- console.log(` promotedAt: ${promotedAt}`);
347
- }
444
+ console.log(JSON.stringify(output));
445
+ else
446
+ console.log(`Promoted live: ${result.activationId}`);
348
447
  }
349
448
  catch (err) {
350
449
  refuse(`promotion_failed: ${err instanceof Error ? err.message : String(err)}`, 'Check workspace configuration and database integrity; no promotion was applied.');
@@ -356,9 +455,9 @@ export async function handleRuntimeActivationPromote(opts) {
356
455
  /**
357
456
  * Derive owner-facing status + nextAction for an activation record.
358
457
  *
359
- * Extract as a pure function so the CLI hints (promote/deactivate) can be
360
- * regression-tested. Rule: deactivate never takes --confirm (promote does);
361
- * keep the two templates distinct to avoid copy-paste regressions.
458
+ * Extract as a pure function so the CLI hints can be regression-tested.
459
+ * Shadow activations point at the Owner decision contract instead of
460
+ * advertising a raw lifecycle mutation that can bypass review evidence.
362
461
  */
363
462
  export function deriveActivationStatusAndNextAction(input) {
364
463
  const { deactivatedAt, contextVersion, v2FlagEnabled, mode, activationId } = input;
@@ -374,7 +473,7 @@ export function deriveActivationStatusAndNextAction(input) {
374
473
  if (mode === 'shadow') {
375
474
  return {
376
475
  status: 'active',
377
- nextAction: `pd activation promote --activation-id ${activationId} --confirm`,
476
+ nextAction: 'Keep shadow; promotion requires an authenticated Owner decision, immutable evidence bindings, and a passing Promotion Readiness result.',
378
477
  };
379
478
  }
380
479
  if (mode === 'live') {
@@ -1077,6 +1176,12 @@ export function registerRuntimeActivationPromoteCommand(parent) {
1077
1176
  .option('-w, --workspace <path>', 'Workspace directory')
1078
1177
  .option('--dry-run', 'Validate eligibility without changing activation state')
1079
1178
  .option('--confirm', 'Confirm promotion to live blocking')
1179
+ .option('--artifact-id <id>', 'Expected artifact ID from Owner review')
1180
+ .option('--artifact-digest <digest>', 'Expected artifact digest from Owner review')
1181
+ .option('--control-version <n>', 'Expected activation control version', (value) => Number.parseInt(value, 10))
1182
+ .option('--idempotency-key <key>', 'Idempotency key for the Owner decision')
1183
+ .option('--reason <code>', 'Owner decision reason code')
1184
+ .option('--note <text>', 'Required CLI Owner review note')
1080
1185
  .option('--json', 'Output raw JSON')
1081
1186
  .action(async (opts) => {
1082
1187
  await handleRuntimeActivationPromote({
@@ -1085,6 +1190,12 @@ export function registerRuntimeActivationPromoteCommand(parent) {
1085
1190
  dryRun: opts.dryRun,
1086
1191
  confirm: opts.confirm,
1087
1192
  json: opts.json,
1193
+ artifactId: opts.artifactId,
1194
+ artifactDigest: opts.artifactDigest,
1195
+ controlVersion: opts.controlVersion,
1196
+ idempotencyKey: opts.idempotencyKey,
1197
+ reasonCode: opts.reason,
1198
+ note: opts.note,
1088
1199
  });
1089
1200
  });
1090
1201
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-activation.js","sourceRoot":"","sources":["../../src/commands/runtime-activation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-activation.js","sourceRoot":"","sources":["../../src/commands/runtime-activation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@principles/pd-cli",
3
- "version": "1.139.0",
4
- "description": "PD CLI — Pain recording, sample management, and evolution tasks",
3
+ "version": "1.141.0",
4
+ "description": "PD CLI — Pain recording, sample management, and governance tasks for Principles Disciple",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "pd": "dist/index.js"
@@ -34,15 +34,17 @@ describe('deriveActivationStatusAndNextAction', () => {
34
34
  expect(nextAction).not.toContain('--confirm');
35
35
  });
36
36
 
37
- it('shadow mode: promote nextAction MUST contain --confirm', () => {
37
+ it('shadow mode: nextAction requires Owner review instead of advertising direct mutation', () => {
38
38
  const { status, nextAction } = deriveActivationStatusAndNextAction({
39
39
  ...base,
40
40
  mode: 'shadow',
41
41
  });
42
42
  expect(status).toBe('active');
43
43
  expect(nextAction).toBeDefined();
44
- expect(nextAction).toContain('pd activation promote');
45
- expect(nextAction).toContain('--confirm');
44
+ expect(nextAction).toBe(
45
+ 'Keep shadow; promotion requires an authenticated Owner decision, immutable evidence bindings, and a passing Promotion Readiness result.',
46
+ );
47
+ expect(nextAction).not.toContain('pd activation promote');
46
48
  });
47
49
 
48
50
  it('deactivated record: status deactivated, no nextAction', () => {
@@ -1,4 +1,6 @@
1
1
  import * as path from 'path';
2
+ import * as fs from 'node:fs';
3
+ import { createHash, randomUUID } from 'node:crypto';
2
4
  import type { Command } from 'commander';
3
5
  import {
4
6
  RuntimeStateManager,
@@ -15,6 +17,12 @@ import {
15
17
  isArtifactRevisionOf,
16
18
  extractEvidenceRefs,
17
19
  extractPrincipleId,
20
+ isFeatureEnabled,
21
+ RuleCodeOwnerDecisionService,
22
+ PromotionReadinessReader,
23
+ SqliteActivationSafetyStore,
24
+ collectOpenClawPromotionChecks,
25
+ summarizeRuleCodeShadowEvents,
18
26
  } from '@principles/core/runtime-v2';
19
27
  import type {
20
28
  ActivationDecision,
@@ -23,7 +31,8 @@ import type {
23
31
  ApprovalDecisionResult,
24
32
  ApprovalCompletionResult,
25
33
  } from '@principles/core/runtime-v2';
26
- import type { PIArtifactRecord, ActivationStatusRecord } from '@principles/core/runtime-v2';
34
+ import type { PIArtifactRecord, ActivationStatusRecord, PromotionEvidenceSnapshot } from '@principles/core/runtime-v2';
35
+ import { OPENCLAW_HOST_LIVENESS_CONTRACT } from '@principles/host-runtime';
27
36
  import { resolveWorkspaceDir } from '../resolve-workspace.js';
28
37
  import { loadPdConfig, computeFlagsFromLoadResult } from '../services/pd-config-loader.js';
29
38
 
@@ -35,6 +44,22 @@ function isRecord(value: unknown): value is Record<string, unknown> {
35
44
  return value !== null && value !== undefined && typeof value === 'object' && !Array.isArray(value);
36
45
  }
37
46
 
47
+ function unavailableShadowSummary(): PromotionEvidenceSnapshot['shadowSummary'] {
48
+ return {
49
+ observed: null, matched: null, wouldBlock: null, wouldAllow: null,
50
+ requireApproval: null, autoCorrect: null, errors: null, neutralControl: null,
51
+ firstObservedAt: null, lastObservedAt: null,
52
+ };
53
+ }
54
+
55
+ function readShadowSummary(workspaceDir: string, activationId: string): PromotionEvidenceSnapshot['shadowSummary'] {
56
+ const logsDir = path.join(workspaceDir, '.pd', 'logs'); if (!fs.existsSync(logsDir)) return unavailableShadowSummary();
57
+ const entries: unknown[] = [];
58
+ try { for (const file of fs.readdirSync(logsDir).filter(name => /^events_.*\.jsonl$/.test(name)).sort().slice(-7)) for (const line of fs.readFileSync(path.join(logsDir, file), 'utf8').split('\n').filter(Boolean)) { try { entries.push(JSON.parse(line) as unknown); } catch { /* exclude malformed telemetry */ } } }
59
+ catch { return unavailableShadowSummary(); }
60
+ return summarizeRuleCodeShadowEvents(entries, activationId);
61
+ }
62
+
38
63
  interface ActivationDispatchOptions {
39
64
  workspace?: string;
40
65
  artifactId?: string;
@@ -345,6 +370,12 @@ export interface ActivationPromoteOptions {
345
370
  dryRun?: boolean;
346
371
  confirm?: boolean;
347
372
  json?: boolean;
373
+ artifactId?: string;
374
+ artifactDigest?: string;
375
+ controlVersion?: number;
376
+ idempotencyKey?: string;
377
+ reasonCode?: string;
378
+ note?: string;
348
379
  }
349
380
 
350
381
  export interface ActivationPromoteResult {
@@ -353,13 +384,19 @@ export interface ActivationPromoteResult {
353
384
  activationId: string;
354
385
  promotedAt?: string;
355
386
  reason?: string;
387
+ reasonCode?: string;
388
+ summary?: string;
389
+ failedChecks?: { checkId: string; reasonCode: string }[];
356
390
  nextAction?: string;
357
391
  }
358
392
 
359
393
  export async function handleRuntimeActivationPromote(opts: ActivationPromoteOptions): Promise<void> {
360
394
  const activationId = opts.activationId?.trim() ?? '';
361
- const refuse = (reason: string, nextAction: string): void => {
362
- const result: ActivationPromoteResult = { ok: false, decision: 'refused', activationId, reason, nextAction };
395
+ const refuse = (reason: string, nextAction: string, details?: { summary?: string; failedChecks?: { checkId: string; reasonCode: string }[] }): void => {
396
+ const result: ActivationPromoteResult = {
397
+ ok: false, decision: 'refused', activationId, reason, reasonCode: reason, nextAction,
398
+ summary: details?.summary, failedChecks: details?.failedChecks,
399
+ };
363
400
  if (opts.json) console.log(JSON.stringify(result));
364
401
  else {
365
402
  console.error(`Promotion refused: ${reason}`);
@@ -380,63 +417,116 @@ export async function handleRuntimeActivationPromote(opts: ActivationPromoteOpti
380
417
  let stateManager: RuntimeStateManager | undefined;
381
418
  try {
382
419
  const workspaceDir = opts.workspace ? path.resolve(opts.workspace) : resolveWorkspaceDir();
383
- stateManager = new RuntimeStateManager({ workspaceDir });
384
- await stateManager.initialize();
385
- const store = new SqliteActivationStateStore(stateManager.connection);
386
- const activeHooks = await store.listCodeToolHookActivations(false);
387
- // CodeRabbit PR2 Comment 3: dry-run must apply the same eligibility checks
388
- // as the real promote path. `promoteActivation` runs a COUNT guard inside a
389
- // BEGIN IMMEDIATE transaction and refuses when the count of matching shadow
390
- // rows is not exactly 1. The previous dry-run branch used `find()` (returns
391
- // the first match) and reported `would_promote` even when duplicates would
392
- // make the confirm path throw. Mirror the store's uniqueness check here so
393
- // dry-run and confirm agree (cli-5: failure paths must not mutate state;
394
- // cli-6: degraded/refused results carry a structured reason + nextAction).
395
- const matchingShadows = activeHooks.filter(
396
- (record) => record.activationId === activationId && record.action === 'code_tool_hook_shadow_activate',
397
- );
398
- if (matchingShadows.length === 0) {
399
- refuse(
400
- 'not_found_inactive_or_not_shadow',
401
- 'Refresh `pd activation list --channel code_tool_hook`; only active shadow activations can be promoted.',
402
- );
403
- return;
404
- }
405
- if (matchingShadows.length > 1) {
406
- refuse(
407
- 'duplicate_shadow_activations',
408
- `${matchingShadows.length} shadow activations share activation_id=${activationId}; resolve duplicates before promoting.`,
409
- );
410
- return;
411
- }
412
-
413
- if (opts.confirm !== true) {
414
- const result: ActivationPromoteResult = {
415
- ok: true,
416
- decision: 'would_promote',
417
- activationId,
418
- nextAction: `Run pd activation promote --activation-id ${activationId} --confirm to enable live blocking.`,
419
- };
420
- if (opts.json) console.log(JSON.stringify(result));
421
- else {
422
- console.log(`Would promote: ${activationId}`);
423
- console.log(` nextAction: ${result.nextAction}`);
420
+ const flags = computeFlagsFromLoadResult(loadPdConfig(workspaceDir));
421
+ const ownerId = process.env.PD_OWNER_ID?.trim();
422
+ const credentialId = process.env.PD_OWNER_CREDENTIAL_ID?.trim();
423
+ const consoleToken = process.env.PD_CONSOLE_TOKEN?.trim();
424
+ const operatorId = process.env.USERNAME?.trim() || process.env.USER?.trim();
425
+ const actor = ownerId && credentialId && consoleToken
426
+ ? {
427
+ principal: { kind: 'configured_owner' as const, ownerId },
428
+ authentication: { method: 'cli_owner_credential' as const, credentialId },
429
+ ...(operatorId ? { operator: { kind: 'local_user' as const, operatorId } } : {}),
430
+ }
431
+ : {
432
+ principal: { kind: 'break_glass' as const, reason: 'local_no_auth_emergency' as const },
433
+ authentication: { method: 'local_break_glass' as const },
434
+ };
435
+ const getStateManager = async (): Promise<RuntimeStateManager> => {
436
+ if (!stateManager) {
437
+ stateManager = new RuntimeStateManager({ workspaceDir, readonly: opts.dryRun === true });
438
+ await stateManager.initialize();
424
439
  }
440
+ return stateManager;
441
+ };
442
+ const service = new RuleCodeOwnerDecisionService({
443
+ ownerLiveDecisionEnabled: () => isFeatureEnabled(flags, 'rulecode_owner_live_decision'),
444
+ safetyControlsEnabled: () => isFeatureEnabled(flags, 'rulecode_safety_controls'),
445
+ evaluateReadiness: async request => {
446
+ const manager = await getStateManager();
447
+ const activationStore = new SqliteActivationStateStore(manager.connection);
448
+ const writer = new RuleHostWriter({
449
+ gateDeps: createProductionGateDeps(),
450
+ featureFlagProbe: flagId => isFeatureEnabled(flags, flagId),
451
+ });
452
+ const reader = new PromotionReadinessReader({
453
+ listCodeToolHookActivations: () => activationStore.listCodeToolHookActivations(false),
454
+ getArtifactById: artifactId => manager.piArtifactStore.getArtifactById(artifactId),
455
+ computeArtifactDigest: artifact => `sha256:${createHash('sha256').update(JSON.stringify(artifact), 'utf8').digest('hex')}`,
456
+ validateProductionArtifact: artifact => writer.canActivate(artifact),
457
+ collectHostChecks: async artifact => {
458
+ const liveArtifacts: PIArtifactSnapshot[] = [];
459
+ const activations = await activationStore.listCodeToolHookActivations(false);
460
+ for (const active of activations) {
461
+ if (active.action !== 'code_tool_hook_live_activate' || active.deactivatedAt !== null) continue;
462
+ const liveArtifact = await manager.piArtifactStore.getArtifactById(active.artifactId);
463
+ if (liveArtifact) liveArtifacts.push(liveArtifact);
464
+ }
465
+ return collectOpenClawPromotionChecks(artifact, {
466
+ ownerIdentityConfigured: actor.principal.kind === 'configured_owner'
467
+ && actor.authentication.method === 'cli_owner_credential',
468
+ safetyControlsEnabled: isFeatureEnabled(flags, 'rulecode_safety_controls'),
469
+ hostContract: OPENCLAW_HOST_LIVENESS_CONTRACT,
470
+ existingLiveArtifacts: liveArtifacts,
471
+ validateProductionArtifact: value => writer.canActivate(value),
472
+ });
473
+ },
474
+ buildEvidenceSnapshot: (checks, artifact) => {
475
+ const createdAt = new Date().toISOString();
476
+ const artifactDigest = artifact
477
+ ? `sha256:${createHash('sha256').update(JSON.stringify(artifact), 'utf8').digest('hex')}`
478
+ : request.expectedArtifactDigest;
479
+ const snapshotBody = JSON.stringify({ artifactDigest, checks, createdAt });
480
+ return {
481
+ snapshotId: `snapshot-${randomUUID()}`,
482
+ snapshotDigest: `sha256:${createHash('sha256').update(snapshotBody, 'utf8').digest('hex')}`,
483
+ artifactDigest,
484
+ lineageRefs: artifact ? [artifact.sourceTaskId, ...artifact.lineageArtifactIds] : [],
485
+ hostRuntimeVersion: 'openclaw-legacy@1', safetyGateResults: checks,
486
+ shadowSummary: readShadowSummary(workspaceDir, activationId),
487
+ configurationVersion: 'pd-config-current',
488
+ redaction: { version: 'v1', rawParametersStored: false }, createdAt,
489
+ };
490
+ },
491
+ newEvaluationId: () => `readiness-${randomUUID()}`,
492
+ });
493
+ return reader.evaluate(request);
494
+ },
495
+ commitPromotion: async input => {
496
+ const manager = await getStateManager();
497
+ return new SqliteActivationSafetyStore(manager.connection).commitPromotion(input);
498
+ },
499
+ newDecisionId: () => `decision-${randomUUID()}`,
500
+ now: () => new Date().toISOString(),
501
+ });
502
+ const result = await service.promote({
503
+ activationId,
504
+ expectedArtifactId: opts.artifactId?.trim() ?? '',
505
+ expectedArtifactDigest: opts.artifactDigest?.trim() ?? '',
506
+ expectedControlVersion: opts.controlVersion ?? 0,
507
+ idempotencyKey: opts.idempotencyKey?.trim() ?? '',
508
+ reasonCode: opts.reasonCode?.trim() ?? '',
509
+ note: opts.note,
510
+ confirmed: opts.confirm === true,
511
+ dryRun: opts.dryRun === true,
512
+ }, actor);
513
+ if (!result.ok) {
514
+ refuse(result.reasonCode, result.nextAction, { summary: result.summary, failedChecks: result.failedChecks });
425
515
  return;
426
516
  }
427
-
428
- const promotedAt = new Date().toISOString();
429
- const promoted = await store.promoteActivation(activationId, promotedAt);
430
- if (!promoted) {
431
- refuse('promotion_precondition_changed', 'Refresh the activation list; the activation changed before promotion.');
517
+ if (result.decision === 'would_promote') {
518
+ const output: ActivationPromoteResult = {
519
+ ok: true, decision: 'would_promote', activationId: result.activationId,
520
+ summary: `Readiness ${result.readinessEvaluationId} passed without mutation.`,
521
+ nextAction: `Re-run with --confirm using evidence snapshot ${result.evidenceSnapshotDigest}.`,
522
+ };
523
+ if (opts.json) console.log(JSON.stringify(output));
524
+ else console.log(`Would promote: ${result.activationId}`);
432
525
  return;
433
526
  }
434
- const result: ActivationPromoteResult = { ok: true, decision: 'promoted', activationId, promotedAt };
435
- if (opts.json) console.log(JSON.stringify(result));
436
- else {
437
- console.log(`Promoted live: ${activationId}`);
438
- console.log(` promotedAt: ${promotedAt}`);
439
- }
527
+ const output: ActivationPromoteResult = { ok: true, decision: 'promoted', activationId: result.activationId, promotedAt: result.promotedAt };
528
+ if (opts.json) console.log(JSON.stringify(output));
529
+ else console.log(`Promoted live: ${result.activationId}`);
440
530
  } catch (err: unknown) {
441
531
  refuse(
442
532
  `promotion_failed: ${err instanceof Error ? err.message : String(err)}`,
@@ -472,9 +562,9 @@ export interface ActivationStatusDerivation {
472
562
  /**
473
563
  * Derive owner-facing status + nextAction for an activation record.
474
564
  *
475
- * Extract as a pure function so the CLI hints (promote/deactivate) can be
476
- * regression-tested. Rule: deactivate never takes --confirm (promote does);
477
- * keep the two templates distinct to avoid copy-paste regressions.
565
+ * Extract as a pure function so the CLI hints can be regression-tested.
566
+ * Shadow activations point at the Owner decision contract instead of
567
+ * advertising a raw lifecycle mutation that can bypass review evidence.
478
568
  */
479
569
  export function deriveActivationStatusAndNextAction(
480
570
  input: ActivationNextActionInput,
@@ -492,7 +582,7 @@ export function deriveActivationStatusAndNextAction(
492
582
  if (mode === 'shadow') {
493
583
  return {
494
584
  status: 'active',
495
- nextAction: `pd activation promote --activation-id ${activationId} --confirm`,
585
+ nextAction: 'Keep shadow; promotion requires an authenticated Owner decision, immutable evidence bindings, and a passing Promotion Readiness result.',
496
586
  };
497
587
  }
498
588
  if (mode === 'live') {
@@ -1257,6 +1347,12 @@ export function registerRuntimeActivationPromoteCommand(parent: Command): Comman
1257
1347
  .option('-w, --workspace <path>', 'Workspace directory')
1258
1348
  .option('--dry-run', 'Validate eligibility without changing activation state')
1259
1349
  .option('--confirm', 'Confirm promotion to live blocking')
1350
+ .option('--artifact-id <id>', 'Expected artifact ID from Owner review')
1351
+ .option('--artifact-digest <digest>', 'Expected artifact digest from Owner review')
1352
+ .option('--control-version <n>', 'Expected activation control version', (value) => Number.parseInt(value, 10))
1353
+ .option('--idempotency-key <key>', 'Idempotency key for the Owner decision')
1354
+ .option('--reason <code>', 'Owner decision reason code')
1355
+ .option('--note <text>', 'Required CLI Owner review note')
1260
1356
  .option('--json', 'Output raw JSON')
1261
1357
  .action(async (opts) => {
1262
1358
  await handleRuntimeActivationPromote({
@@ -1265,6 +1361,12 @@ export function registerRuntimeActivationPromoteCommand(parent: Command): Comman
1265
1361
  dryRun: opts.dryRun,
1266
1362
  confirm: opts.confirm,
1267
1363
  json: opts.json,
1364
+ artifactId: opts.artifactId,
1365
+ artifactDigest: opts.artifactDigest,
1366
+ controlVersion: opts.controlVersion,
1367
+ idempotencyKey: opts.idempotencyKey,
1368
+ reasonCode: opts.reason,
1369
+ note: opts.note,
1268
1370
  });
1269
1371
  });
1270
1372
  }
@@ -85,6 +85,14 @@ describe('pd activation promote — flag wiring (CLI gate rule 7)', () => {
85
85
  expect(opt?.long).toBe('--json');
86
86
  });
87
87
 
88
+ it.each(['--artifact-id', '--artifact-digest', '--control-version', '--idempotency-key', '--reason', '--note'])(
89
+ 'registers Owner authority binding option %s', (flag) => {
90
+ const program = freshProgram();
91
+ const promoteCmd = registerRuntimeActivationPromoteCommand(program.command('activation'));
92
+ expect(promoteCmd.options.find(option => option.long === flag)).toBeDefined();
93
+ },
94
+ );
95
+
88
96
  it('registers --activation-id as required option', () => {
89
97
  const program = freshProgram();
90
98
  const activationCmd = program.command('activation');
@@ -209,6 +217,24 @@ describe('pd activation promote — flag wiring (CLI gate rule 7)', () => {
209
217
  expect(captured.opts?.workspace).toBe('/tmp/test');
210
218
  });
211
219
 
220
+ it('parses all Owner authority binding values through the real command', async () => {
221
+ const program = freshProgram();
222
+ const promoteCmd = registerRuntimeActivationPromoteCommand(program.command('activation'));
223
+ const captured: CapturedAction = { opts: null };
224
+ attachCapture(promoteCmd, captured);
225
+
226
+ await program.parseAsync([
227
+ 'node', 'pd', 'activation', 'promote', '--activation-id', 'act-1',
228
+ '--artifact-id', 'art-1', '--artifact-digest', 'sha256:one', '--control-version', '7',
229
+ '--idempotency-key', 'idem-1', '--reason', 'owner_review', '--note', 'reviewed', '--confirm',
230
+ ]);
231
+
232
+ expect(captured.opts).toMatchObject({
233
+ artifactId: 'art-1', artifactDigest: 'sha256:one', controlVersion: 7,
234
+ idempotencyKey: 'idem-1', reason: 'owner_review', note: 'reviewed', confirm: true,
235
+ });
236
+ });
237
+
212
238
  it('rejects missing --activation-id (required option)', async () => {
213
239
  const program = freshProgram();
214
240
  const activationCmd = program.command('activation');
@@ -2,7 +2,11 @@ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
2
 
3
3
  const mockRuleHostWriterConfigs = vi.hoisted(() => [] as Array<{ featureFlagProbe?: (flagId: string) => boolean }>);
4
4
  const mockFeatureFlags = vi.hoisted(() => ({
5
- flags: { rulecode_context_v2: { id: 'rulecode_context_v2', category: 'quiet' as const, enabled: true, since: '2026-06-27', description: 'test' } },
5
+ flags: {
6
+ rulecode_context_v2: { id: 'rulecode_context_v2', category: 'quiet' as const, enabled: true, since: '2026-06-27', description: 'test' },
7
+ rulecode_owner_live_decision: { id: 'rulecode_owner_live_decision', category: 'core' as const, enabled: false, since: '2026-08-21', description: 'test' },
8
+ rulecode_safety_controls: { id: 'rulecode_safety_controls', category: 'core' as const, enabled: true, since: '2026-08-21', description: 'test' },
9
+ },
6
10
  }));
7
11
 
8
12
  const mockGetArtifactById = vi.fn();
@@ -730,7 +734,9 @@ describe('handleRuntimeActivationList', () => {
730
734
  expect(rec.mode).toBe('shadow');
731
735
  expect(rec.contextVersion).toBe('v1');
732
736
  expect(rec.evidenceRefs).toBeUndefined();
733
- expect(rec.nextAction).toBe('pd activation promote --activation-id act-v1-shadow --confirm');
737
+ expect(rec.nextAction).toBe(
738
+ 'Keep shadow; promotion requires an authenticated Owner decision, immutable evidence bindings, and a passing Promotion Readiness result.',
739
+ );
734
740
  });
735
741
 
736
742
  it('PRI-491: live v1 activation shows status=active and deactivate nextAction (JSON)', async () => {
@@ -913,32 +919,87 @@ describe('handleRuntimeActivationPromote', () => {
913
919
 
914
920
  beforeEach(() => {
915
921
  vi.clearAllMocks();
922
+ mockGetArtifactById.mockResolvedValue(null);
916
923
  mockListCodeToolHookActivations.mockResolvedValue([
917
924
  { activationId: 'act-hook-1', artifactId: 'art-002', channel: 'code_tool_hook', action: 'code_tool_hook_shadow_activate', targetRef: 'rule-001', activatedAt: '2026-06-18T00:00:00.000Z', promotedAt: null, deactivatedAt: null },
918
925
  ]);
919
926
  mockPromoteActivation.mockResolvedValue(true);
920
927
  consoleLogSpy = vi.spyOn(console, 'log').mockImplementation(() => {});
921
928
  consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => {});
929
+ mockFeatureFlags.flags.rulecode_owner_live_decision.enabled = false;
930
+ vi.stubEnv('PD_CONSOLE_TOKEN', '');
931
+ vi.stubEnv('PD_OWNER_ID', '');
932
+ vi.stubEnv('PD_OWNER_CREDENTIAL_ID', '');
922
933
  });
923
934
 
924
935
  afterEach(() => {
925
936
  consoleLogSpy.mockRestore();
926
937
  consoleErrorSpy.mockRestore();
927
938
  process.exitCode = 0;
939
+ vi.unstubAllEnvs();
928
940
  });
929
941
 
930
- it('defaults to dry-run and does not mutate activation state', async () => {
942
+ it('feature-off refuses dry-run and does not construct a mutation store', async () => {
943
+ const { RuntimeStateManager } = await import('@principles/core/runtime-v2');
944
+ vi.mocked(RuntimeStateManager).mockClear();
931
945
  await handleRuntimeActivationPromote({ workspace: WS, activationId: 'act-hook-1', json: true });
932
946
  const output = JSON.parse(consoleLogSpy.mock.calls[0][0]);
933
- expect(output.decision).toBe('would_promote');
947
+ expect(output.decision).toBe('refused');
948
+ expect(output.reasonCode).toBe('feature_not_enabled');
949
+ expect(RuntimeStateManager).not.toHaveBeenCalled();
934
950
  expect(mockPromoteActivation).not.toHaveBeenCalled();
935
951
  });
936
952
 
937
- it('promotes an eligible shadow activation when confirmed', async () => {
953
+ it('feature-off refuses confirmed promotion without legacy mutation', async () => {
938
954
  await handleRuntimeActivationPromote({ workspace: WS, activationId: 'act-hook-1', confirm: true, json: true });
939
955
  const output = JSON.parse(consoleLogSpy.mock.calls[0][0]);
940
- expect(output.decision).toBe('promoted');
941
- expect(mockPromoteActivation).toHaveBeenCalledWith('act-hook-1', expect.any(String));
956
+ expect(output.reasonCode).toBe('feature_not_enabled');
957
+ expect(mockPromoteActivation).not.toHaveBeenCalled();
958
+ });
959
+
960
+ it('feature-on refuses unauthenticated local promotion without mutation', async () => {
961
+ mockFeatureFlags.flags.rulecode_owner_live_decision.enabled = true;
962
+ await handleRuntimeActivationPromote({
963
+ workspace: WS, activationId: 'act-hook-1', confirm: true, json: true,
964
+ artifactId: 'art-002', artifactDigest: 'sha256:artifact', controlVersion: 1,
965
+ idempotencyKey: 'promote-1', reasonCode: 'owner_review', note: 'reviewed',
966
+ });
967
+ const output = JSON.parse(consoleLogSpy.mock.calls[0][0]);
968
+ expect(output.reasonCode).toBe('owner_authentication_required');
969
+ expect(mockPromoteActivation).not.toHaveBeenCalled();
970
+ });
971
+
972
+ it('feature-on authenticated CLI uses the real readiness reader and reports missing artifact', async () => {
973
+ mockFeatureFlags.flags.rulecode_owner_live_decision.enabled = true;
974
+ vi.stubEnv('PD_CONSOLE_TOKEN', 'configured-secret');
975
+ vi.stubEnv('PD_OWNER_ID', 'owner-1');
976
+ vi.stubEnv('PD_OWNER_CREDENTIAL_ID', 'credential-1');
977
+ await handleRuntimeActivationPromote({
978
+ workspace: WS, activationId: 'act-hook-1', confirm: true, json: true,
979
+ artifactId: 'art-002', artifactDigest: 'sha256:artifact', controlVersion: 1,
980
+ idempotencyKey: 'promote-1', reasonCode: 'owner_review', note: 'reviewed',
981
+ });
982
+ const output = JSON.parse(consoleLogSpy.mock.calls[0][0]);
983
+ expect(output.reasonCode).toBe('promotion_safety_gate_blocked');
984
+ expect(output.failedChecks).toEqual([{ checkId: 'lineage_binding', reasonCode: 'artifact_not_found' }]);
985
+ expect(mockClose).toHaveBeenCalledOnce();
986
+ expect(mockPromoteActivation).not.toHaveBeenCalled();
987
+ });
988
+
989
+ it('authenticated dry-run opens state read-only and never commits', async () => {
990
+ const { RuntimeStateManager } = await import('@principles/core/runtime-v2');
991
+ mockFeatureFlags.flags.rulecode_owner_live_decision.enabled = true;
992
+ vi.stubEnv('PD_CONSOLE_TOKEN', 'configured-secret');
993
+ vi.stubEnv('PD_OWNER_ID', 'owner-1');
994
+ vi.stubEnv('PD_OWNER_CREDENTIAL_ID', 'credential-1');
995
+ await handleRuntimeActivationPromote({
996
+ workspace: WS, activationId: 'act-hook-1', dryRun: true, json: true,
997
+ artifactId: 'art-002', artifactDigest: 'sha256:artifact', controlVersion: 1,
998
+ idempotencyKey: 'promote-1', reasonCode: 'owner_review', note: 'reviewed',
999
+ });
1000
+
1001
+ expect(RuntimeStateManager).toHaveBeenCalledWith(expect.objectContaining({ readonly: true }));
1002
+ expect(mockPromoteActivation).not.toHaveBeenCalled();
942
1003
  });
943
1004
 
944
1005
  it('rejects mutually exclusive dry-run and confirm without mutation', async () => {
@@ -400,7 +400,7 @@ describe('Cross-Package Acceptance Test (PRI-408 P1/P2 fixes) — unsplippable c
400
400
  // PRI-489: Owner approval creates a SHADOW activation first (not live).
401
401
  // Shadow activations are observation-only — they record would-block into
402
402
  // shadowDecisions but never actually block the tool call. The only
403
- // shadow -> live transition is `pd activation promote --confirm`.
403
+ // shadow -> live transition requires the Owner decision service.
404
404
  expect(activationRecord!.action).toBe('code_tool_hook_shadow_activate');
405
405
 
406
406
  // Verify via listCodeToolHookActivations (P2 #5: default excludes deactivated)
@@ -437,10 +437,8 @@ describe('Cross-Package Acceptance Test (PRI-408 P1/P2 fixes) — unsplippable c
437
437
  }
438
438
 
439
439
  // ── Step 7b: Promote shadow → live (PRI-489) ──────────────────────────
440
- // `pd activation promote --activation-id ... --confirm` is the ONLY
441
- // shadow live entry. SqliteActivationStateStore.promoteActivation
442
- // atomically rewrites action to `code_tool_hook_live_activate` inside a
443
- // BEGIN IMMEDIATE transaction.
440
+ // This lower-level store call verifies the persistence transition only;
441
+ // production callers must enter through RuleCodeOwnerDecisionService.
444
442
  const activationId = activationRecord!.activationId;
445
443
  const promoteResult = await stateStore.promoteActivation(activationId, new Date().toISOString());
446
444
  expect(promoteResult).toBe(true);