@allocator-one/rcl 4.5.8 → 4.5.12

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 (82) hide show
  1. package/README.md +5 -4
  2. package/dist/consensus/semantic-deduper.d.ts +2 -1
  3. package/dist/consensus/semantic-deduper.js +21 -10
  4. package/dist/consensus/semantic-deduper.js.map +1 -1
  5. package/dist/converge/attempt-budget.d.ts +11 -0
  6. package/dist/converge/attempt-budget.js +119 -61
  7. package/dist/converge/attempt-budget.js.map +1 -1
  8. package/dist/converge/cycle-remote.d.ts +6 -1
  9. package/dist/converge/cycle-remote.js +13 -3
  10. package/dist/converge/cycle-remote.js.map +1 -1
  11. package/dist/converge/delivery-reconciliation.d.ts +2 -1
  12. package/dist/converge/delivery-reconciliation.js +105 -11
  13. package/dist/converge/delivery-reconciliation.js.map +1 -1
  14. package/dist/converge/launch-guard.d.ts +3 -0
  15. package/dist/converge/launch-guard.js +53 -17
  16. package/dist/converge/launch-guard.js.map +1 -1
  17. package/dist/converge/ordinary-pending-export.d.ts +5 -0
  18. package/dist/converge/ordinary-pending-export.js +9 -1
  19. package/dist/converge/ordinary-pending-export.js.map +1 -1
  20. package/dist/converge/recovered-production.d.ts +14 -0
  21. package/dist/converge/recovered-production.js +61 -0
  22. package/dist/converge/recovered-production.js.map +1 -0
  23. package/dist/converge/recovery-launch.js +82 -35
  24. package/dist/converge/recovery-launch.js.map +1 -1
  25. package/dist/converge/run-state.d.ts +2 -0
  26. package/dist/converge/run-state.js +26 -12
  27. package/dist/converge/run-state.js.map +1 -1
  28. package/dist/converge/semantic-state.js +18 -4
  29. package/dist/converge/semantic-state.js.map +1 -1
  30. package/dist/coordination/registry-lock.d.ts +2 -0
  31. package/dist/coordination/registry-lock.js +42 -13
  32. package/dist/coordination/registry-lock.js.map +1 -1
  33. package/dist/evidence/claim-recovery/delivery.d.ts +25 -0
  34. package/dist/evidence/claim-recovery/delivery.js +100 -0
  35. package/dist/evidence/claim-recovery/delivery.js.map +1 -0
  36. package/dist/evidence/claim-recovery/public-adoption.d.ts +31 -0
  37. package/dist/evidence/claim-recovery/public-adoption.js +177 -0
  38. package/dist/evidence/claim-recovery/public-adoption.js.map +1 -0
  39. package/dist/evidence/claim-recovery/public-manifest.d.ts +114 -0
  40. package/dist/evidence/claim-recovery/public-manifest.js +11 -0
  41. package/dist/evidence/claim-recovery/public-manifest.js.map +1 -0
  42. package/dist/evidence/claim-recovery/public-model.d.ts +85 -0
  43. package/dist/evidence/claim-recovery/public-model.js +177 -0
  44. package/dist/evidence/claim-recovery/public-model.js.map +1 -0
  45. package/dist/evidence/original-run/journal.d.ts +10 -0
  46. package/dist/evidence/original-run/journal.js +55 -3
  47. package/dist/evidence/original-run/journal.js.map +1 -1
  48. package/dist/evidence/original-run/lock.js +22 -9
  49. package/dist/evidence/original-run/lock.js.map +1 -1
  50. package/dist/evidence/recover-claim.d.ts +21 -0
  51. package/dist/evidence/recover-claim.js +504 -0
  52. package/dist/evidence/recover-claim.js.map +1 -0
  53. package/dist/index.js +239 -137
  54. package/dist/index.js.map +1 -1
  55. package/dist/report/assembly.d.ts +2 -0
  56. package/dist/report/assembly.js +1 -0
  57. package/dist/report/assembly.js.map +1 -1
  58. package/dist/report/consensus-assembly.d.ts +2 -0
  59. package/dist/report/consensus-assembly.js +6 -3
  60. package/dist/report/consensus-assembly.js.map +1 -1
  61. package/dist/report/reviewer-artifact.js +3 -1
  62. package/dist/report/reviewer-artifact.js.map +1 -1
  63. package/dist/report/run-header.js +2 -0
  64. package/dist/report/run-header.js.map +1 -1
  65. package/dist/telemetry/deliver.d.ts +8 -0
  66. package/dist/telemetry/deliver.js +55 -8
  67. package/dist/telemetry/deliver.js.map +1 -1
  68. package/dist/telemetry/events.js +2 -0
  69. package/dist/telemetry/events.js.map +1 -1
  70. package/dist/telemetry/outbox.d.ts +20 -0
  71. package/dist/telemetry/outbox.js +324 -103
  72. package/dist/telemetry/outbox.js.map +1 -1
  73. package/dist/telemetry/reviewer-delivery.d.ts +95 -3
  74. package/dist/telemetry/reviewer-delivery.js +600 -12
  75. package/dist/telemetry/reviewer-delivery.js.map +1 -1
  76. package/dist/telemetry/sink.d.ts +14 -0
  77. package/dist/telemetry/sink.js +44 -2
  78. package/dist/telemetry/sink.js.map +1 -1
  79. package/dist/telemetry/terminal-reviewer-delivery.d.ts +154 -5
  80. package/dist/telemetry/terminal-reviewer-delivery.js +196 -21
  81. package/dist/telemetry/terminal-reviewer-delivery.js.map +1 -1
  82. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recover-claim.js","sourceRoot":"","sources":["../../src/evidence/recover-claim.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -19,6 +19,7 @@ import { applyHarnessModelKeys } from './config/harness.js';
19
19
  import { DEFAULT_MODELS, DEFAULT_TIMEOUT_MS, DEFAULT_ASYNC_TIMEOUT_MS, DEFAULT_QUORUM_FRACTION, DEFAULT_MAX_RETRIES, DEFAULT_CONCURRENCY, DEFAULT_REASONING_EFFORT, DEFAULT_THRESHOLDS, } from './config/defaults.js';
20
20
  import { resolveProviderConcurrency } from './config/provider-concurrency.js';
21
21
  import { parseGitHubTarget, fetchPRDiff, isGitHubTarget } from './resolver/github.js';
22
+ import { createGitHubClient, getGitHubPullRequest } from './resolver/github-client.js';
22
23
  import { loadLocalDiff } from './resolver/local.js';
23
24
  import { loadGitDiff, resolveGitHeads } from './resolver/git.js';
24
25
  import { loadPlanAsDiff } from './resolver/plan.js';
@@ -47,7 +48,9 @@ import { resolveFinding, buildDiscussPrompts, runDiscussion, loadContextDocs, }
47
48
  import { DEFAULT_CONVERGE_ATTEMPT_CAP, claimConvergeAttempt, ConvergeAttemptBudgetExceededError, convergeAttemptErrorExitCode, ConvergeAttemptStateError, resolveGitCommonDir, } from './converge/attempt-budget.js';
48
49
  import { DEFAULT_CONVERGE_ROUND_CAP, HARD_CONVERGE_ROUND_CAP, processRoundReport, recordVerdicts, findingGatingReason, ConvergeRoundCapError, ConvergeRunStateError, } from './converge/run-state.js';
49
50
  import { applyRoundGap, previewRoundGap } from './converge/round-gap.js';
51
+ import { withNativeTarget } from './converge/target-ownership.js';
50
52
  import { guardReviewLaunch, ReviewLaunchRefused } from './converge/launch-guard.js';
53
+ import { selectCurrentRecoveredProduction } from './converge/recovered-production.js';
51
54
  import { createBoundFixRecovery } from './converge/bound-fix-recovery.js';
52
55
  import { openReadSink } from './telemetry/read-sink.js';
53
56
  import { reconcileFlushedRun } from './converge/delivery-reconciliation.js';
@@ -110,7 +113,7 @@ program.hook('preAction', async (_thisCommand, actionCommand) => {
110
113
  // Reads and explicit repairs must not flush unrelated evidence, even in preview.
111
114
  if (actionCommand.parent?.name() === 'evidence' && (name === 'show' || name === 'status'))
112
115
  return;
113
- if (name === 'converge-rejected' || name === 'converge-stale' || name === 'converge-gap' || name === 'converge-reconcile-history' || name === 'recover-run' || name === 'recover-finding' || name === 'retriage-finding' || name === 'telemetry' || actionCommand.parent?.name() === 'telemetry' || name.includes('worker'))
116
+ if (name === 'converge-rejected' || name === 'converge-stale' || name === 'converge-gap' || name === 'converge-reconcile-history' || name === 'recover-run' || name === 'recover-claim' || name === 'recover-finding' || name === 'retriage-finding' || name === 'telemetry' || actionCommand.parent?.name() === 'telemetry' || name.includes('worker'))
114
117
  return;
115
118
  const flags = actionCommand.opts();
116
119
  if (flags.telemetry === false || (process.env['RCL_TELEMETRY'] ?? '').trim().toLowerCase() === 'off')
@@ -234,7 +237,7 @@ program
234
237
  .option('--round <n>', 'Converge round number (or RCL_CONVERGE_ROUND)')
235
238
  .option('--attempt <n>', 'Converge attempt number (or RCL_CONVERGE_ATTEMPT)')
236
239
  .option('--start-over', 'Start an explicitly requested fresh review with a new normal budget; retain all prior evidence and spending')
237
- .option('--guarded-converge', 'Validate and claim inside this review process; derive the round from native state')
240
+ .option('--guarded-converge', 'Validate and claim inside this review process, or consume an exact recovered-v3 --attempt; derive the round from native state')
238
241
  .option('--bound-fix-recovery <run-id>', 'Review unchanged inputs once live Harness evidence proves a retained bound fix obligation after this native dismissal-only run')
239
242
  .option('--launch-intent <intent>', 'Guarded intent: review, stop-upstream, stop-review, or retry-delivery')
240
243
  .option('--retry-report <path>', 'Original legacy report proving an inconclusive launch; the new inputs may differ; requires --retry-reason')
@@ -329,24 +332,31 @@ program
329
332
  throw new ConvergeAttemptStateError('maxAttempts (--max-attempts) must be a positive safe integer.');
330
333
  }
331
334
  }
332
- const claim = await claimConvergeAttempt({
333
- gitCommonDir: await resolveGitCommonDir(),
334
- target: opts.target,
335
- maxAttempts,
335
+ const gitCommonDir = await resolveGitCommonDir();
336
+ const claim = await withNativeTarget(gitCommonDir, opts.target, async (ownership) => {
337
+ const committed = await claimConvergeAttempt({
338
+ gitCommonDir,
339
+ target: opts.target,
340
+ maxAttempts,
341
+ ownership,
342
+ });
343
+ await reportConvergeEvents([
344
+ buildEvent({
345
+ kind: 'attempt_claimed',
346
+ convergeTarget: committed.target,
347
+ attempt: committed.attempt,
348
+ // The claim's local state path and process id stay on this machine.
349
+ payload: { attempt: committed.attempt, cap: committed.cap,
350
+ ...(committed.cycle ? { cycle_id: committed.cycle.id } : {}) },
351
+ }),
352
+ // An explicit --max-attempts is consent evidence, whatever it was before.
353
+ ...(maxAttempts !== undefined
354
+ ? [buildEvent({ kind: 'cap_changed', convergeTarget: committed.target, attempt: committed.attempt,
355
+ payload: { kind: 'attempts', to: committed.cap } })]
356
+ : []),
357
+ ]);
358
+ return committed;
336
359
  });
337
- await reportConvergeEvents([
338
- buildEvent({
339
- kind: 'attempt_claimed',
340
- convergeTarget: claim.target,
341
- attempt: claim.attempt,
342
- // The claim's local state path and process id stay on this machine.
343
- payload: { attempt: claim.attempt, cap: claim.cap, ...(claim.cycle ? { cycle_id: claim.cycle.id } : {}) },
344
- }),
345
- // An explicit --max-attempts is consent evidence, whatever it was before.
346
- ...(maxAttempts !== undefined
347
- ? [buildEvent({ kind: 'cap_changed', convergeTarget: claim.target, attempt: claim.attempt, payload: { kind: 'attempts', to: claim.cap } })]
348
- : []),
349
- ]);
350
360
  if (opts.json) {
351
361
  console.log(JSON.stringify(claim));
352
362
  }
@@ -596,10 +606,12 @@ program
596
606
  }
597
607
  }
598
608
  let report;
609
+ let reportJson;
599
610
  let reportSha256;
600
611
  try {
601
612
  const source = await readFile(opts.report);
602
- report = JSON.parse(source.toString('utf8'));
613
+ reportJson = source.toString('utf8');
614
+ report = JSON.parse(reportJson);
603
615
  reportSha256 = sha256(source);
604
616
  }
605
617
  catch (err) {
@@ -626,48 +638,69 @@ program
626
638
  if (reportRunId !== undefined && runId === undefined) {
627
639
  console.error(chalk.yellow(`Report run ${reportRunId} ${reportTarget === undefined ? 'carries no converge target' : `belongs to converge target ${reportTarget}`}, not ${opts.target}; the round keeps no run id.`));
628
640
  }
629
- const result = await processRoundReport({
630
- gitCommonDir: await resolveGitCommonDir(),
631
- target: opts.target,
632
- round,
633
- findings: report.findings,
634
- reportSha256,
635
- cycleId: report.run?.cycle_id,
636
- ...(maxRounds !== undefined ? { maxRounds } : {}),
637
- ...(runId !== undefined ? { runId } : {}),
638
- });
639
- const classified = result.findings.map((f) => ({
640
- identity: f.identity,
641
- status: f.status,
642
- gating: findingGatingReason(f.finding),
643
- severity: f.finding.severity,
644
- file: f.finding.file,
645
- startLine: f.finding.startLine,
646
- endLine: f.finding.endLine,
647
- title: f.finding.title,
648
- ...(f.suppressReason ? { suppressReason: f.suppressReason } : {}),
649
- }));
650
- const actionable = classified.filter((f) => (f.status === 'new' || f.status === 'regating') && f.gating !== 'none');
651
- await reportConvergeEvents([
652
- buildEvent({
653
- kind: 'round_processed',
654
- convergeTarget: opts.target,
641
+ const gitCommonDir = await resolveGitCommonDir();
642
+ const target = opts.target;
643
+ const { result, classified, actionable } = await withNativeTarget(gitCommonDir, target, async (ownership) => {
644
+ const existing = await loadConvergeRunState(gitCommonDir, target);
645
+ const recoveredReport = existing?.version === 3 || report.run?.gating?.bound_classification_protocol !== undefined;
646
+ const result = await processRoundReport({
647
+ gitCommonDir,
648
+ target,
655
649
  round,
650
+ findings: recoveredReport
651
+ ? [...report.findings, ...(report.belowThresholdFindings ?? [])]
652
+ : report.findings,
653
+ ...(recoveredReport ? { evidence: { reportJson } } : {}),
654
+ reportSha256,
655
+ cycleId: report.run?.cycle_id,
656
+ ownership,
657
+ ...(maxRounds !== undefined ? { maxRounds } : {}),
656
658
  ...(runId !== undefined ? { runId } : {}),
657
- payload: {
659
+ });
660
+ const classified = result.findings.map((f) => ({
661
+ identity: f.identity,
662
+ status: f.status,
663
+ gating: f.sighting?.gating ?? findingGatingReason(f.finding),
664
+ severity: f.finding.severity,
665
+ file: f.finding.file,
666
+ startLine: f.finding.startLine,
667
+ endLine: f.finding.endLine,
668
+ title: f.finding.title,
669
+ ...(f.suppressReason ? { suppressReason: f.suppressReason } : {}),
670
+ }));
671
+ const actionable = classified.filter((f) => (f.status === 'new' || f.status === 'regating') && f.gating !== 'none');
672
+ await reportConvergeEvents([
673
+ buildEvent({
674
+ kind: 'round_processed',
675
+ convergeTarget: target,
658
676
  round,
659
- round_cap: result.roundCap,
660
- counts: result.counts,
661
- actionable_gating: actionable.length,
662
- // Which identity each sighting was matched to, so the server
663
- // can apply standing verdicts to keys that moved (IO-12601).
664
- identities: roundIdentities(result.findings),
665
- },
666
- }),
667
- ...(maxRounds !== undefined
668
- ? [buildEvent({ kind: 'cap_changed', convergeTarget: opts.target, round, payload: { kind: 'rounds', to: result.roundCap } })]
669
- : []),
670
- ]);
677
+ ...(runId !== undefined ? { runId } : {}),
678
+ payload: {
679
+ round,
680
+ round_cap: result.roundCap,
681
+ counts: result.counts,
682
+ actionable_gating: result.actionableIdentities?.length ?? actionable.length,
683
+ ...(result.classificationVersion
684
+ ? {
685
+ classification_version: result.classificationVersion,
686
+ report_json_sha256: result.reportBinding.reportSha256,
687
+ ...(result.legacyPendingIdentities
688
+ ? { legacy_pending_identities: result.legacyPendingIdentities }
689
+ : {}),
690
+ }
691
+ : {}),
692
+ // Which identity each sighting was matched to, so the server
693
+ // can apply standing verdicts to keys that moved (IO-12601).
694
+ identities: roundIdentities(result.findings),
695
+ },
696
+ }),
697
+ ...(maxRounds !== undefined
698
+ ? [buildEvent({ kind: 'cap_changed', convergeTarget: target, round,
699
+ payload: { kind: 'rounds', to: result.roundCap } })]
700
+ : []),
701
+ ]);
702
+ return { result, classified, actionable };
703
+ });
671
704
  if (opts.json) {
672
705
  console.log(JSON.stringify({
673
706
  target: opts.target,
@@ -675,8 +708,11 @@ program
675
708
  roundCap: result.roundCap,
676
709
  reviewerHealth: blockingHealthJson(health),
677
710
  counts: result.counts,
678
- actionableGating: actionable.length,
711
+ actionableGating: result.actionableIdentities?.length ?? actionable.length,
679
712
  findings: classified,
713
+ ...(result.recoveryProjection
714
+ ? { recoveryProjection: result.recoveryProjection }
715
+ : {}),
680
716
  }, null, 2));
681
717
  return;
682
718
  }
@@ -684,7 +720,7 @@ program
684
720
  console.log(`Round ${round}/${result.roundCap} for ${opts.target}: ` +
685
721
  `${result.counts.new} new, ${result.counts.repeat} repeat, ` +
686
722
  `${result.counts.suppressed} suppressed, ${result.counts.regating} regating · ` +
687
- `${actionable.length} actionable gating finding(s)`);
723
+ `${result.actionableIdentities?.length ?? actionable.length} actionable gating finding(s)`);
688
724
  for (const f of actionable) {
689
725
  console.log(` [${f.status}] ${f.identity} ${f.file}:${f.startLine} — ${f.title}`);
690
726
  }
@@ -778,68 +814,74 @@ program
778
814
  if (new Set(verdicts.map(({ key }) => key)).size !== verdicts.length) {
779
815
  throw new ConvergeRunStateError('Pass each finding identity only once, as either fixed or dismissed.');
780
816
  }
781
- const { entries: updated, resolution, runId: roundRun } = await recordVerdicts({
782
- gitCommonDir: await resolveGitCommonDir(),
783
- target: opts.target,
784
- round,
785
- verdicts,
786
- runId: opts.runId,
787
- });
788
- // Feed the cross-run precision history (RCL-27) — fail-soft, the
789
- // verdicts above are already durably recorded.
790
- try {
791
- const ts = new Date().toISOString();
792
- await appendOutcomes(updated
793
- .filter((e) => e.verdict !== undefined && e.models.length > 0)
794
- .map((e) => ({
795
- ts,
796
- verdict: e.verdict,
797
- models: e.models,
798
- severity: e.verdictSeverity ?? e.severity,
799
- target: opts.target,
800
- findingKey: e.key,
801
- source: 'live',
802
- })));
803
- }
804
- catch (err) {
805
- // Advisory history; verdict recording must not fail over it —
806
- // but say so, or a broken store silently stops learning.
807
- console.warn(`Model-stats store unavailable (outcomes not recorded): ${String(err)}`);
808
- }
809
- await reportConvergeEvents([
810
- buildEvent({
811
- kind: 'verdicts_recorded',
812
- convergeTarget: opts.target,
817
+ const target = opts.target;
818
+ const gitCommonDir = await resolveGitCommonDir();
819
+ const { entries: updated, resolution, runId: roundRun } = await withNativeTarget(gitCommonDir, target, async (ownership) => {
820
+ const recorded = await recordVerdicts({
821
+ gitCommonDir,
822
+ target,
813
823
  round,
814
- ...(roundRun !== undefined ? { runId: roundRun } : {}),
815
- payload: {
816
- verdicts: updated.map((e) => ({
817
- identity_key: e.key,
818
- verdict: e.verdict,
819
- // Verdict reasons are user-authored prose: scrubbed like every other free text that leaves the machine.
820
- ...(e.verdictReason !== undefined ? { reason: scrubText(e.verdictReason, 500) } : {}),
821
- severity: e.verdictSeverity ?? e.severity,
822
- models: e.models,
823
- })),
824
- },
825
- }),
826
- ...(resolution
827
- ? [
828
- buildEvent({
829
- kind: 'resolution',
830
- convergeTarget: opts.target,
831
- round,
832
- ...(roundRun !== undefined ? { runId: roundRun } : {}),
833
- payload: {
834
- status: resolution.status,
835
- actionable: resolution.actionable,
836
- unresolved: resolution.unresolved.length,
837
- fixed_this_round: resolution.fixedThisRound,
838
- },
839
- }),
840
- ]
841
- : []),
842
- ]);
824
+ verdicts,
825
+ runId: opts.runId,
826
+ ownership,
827
+ });
828
+ // Feed the cross-run precision history (RCL-27) — fail-soft, the
829
+ // verdicts above are already durably recorded.
830
+ try {
831
+ const ts = new Date().toISOString();
832
+ await appendOutcomes(recorded.entries
833
+ .filter((e) => e.verdict !== undefined && e.models.length > 0)
834
+ .map((e) => ({
835
+ ts,
836
+ verdict: e.verdict,
837
+ models: e.models,
838
+ severity: e.verdictSeverity ?? e.severity,
839
+ target,
840
+ findingKey: e.key,
841
+ source: 'live',
842
+ })));
843
+ }
844
+ catch (err) {
845
+ // Advisory history; verdict recording must not fail over it —
846
+ // but say so, or a broken store silently stops learning.
847
+ console.warn(`Model-stats store unavailable (outcomes not recorded): ${String(err)}`);
848
+ }
849
+ await reportConvergeEvents([
850
+ buildEvent({
851
+ kind: 'verdicts_recorded',
852
+ convergeTarget: target,
853
+ round,
854
+ ...(recorded.runId !== undefined ? { runId: recorded.runId } : {}),
855
+ payload: {
856
+ verdicts: recorded.entries.map((e) => ({
857
+ identity_key: e.key,
858
+ verdict: e.verdict,
859
+ // Verdict reasons are user-authored prose: scrubbed like every other free text that leaves the machine.
860
+ ...(e.verdictReason !== undefined ? { reason: scrubText(e.verdictReason, 500) } : {}),
861
+ severity: e.verdictSeverity ?? e.severity,
862
+ models: e.models,
863
+ })),
864
+ },
865
+ }),
866
+ ...(recorded.resolution
867
+ ? [
868
+ buildEvent({
869
+ kind: 'resolution',
870
+ convergeTarget: target,
871
+ round,
872
+ ...(recorded.runId !== undefined ? { runId: recorded.runId } : {}),
873
+ payload: {
874
+ status: recorded.resolution.status,
875
+ actionable: recorded.resolution.actionable,
876
+ unresolved: recorded.resolution.unresolved.length,
877
+ fixed_this_round: recorded.resolution.fixedThisRound,
878
+ },
879
+ }),
880
+ ]
881
+ : []),
882
+ ]);
883
+ return recorded;
884
+ });
843
885
  if (opts.json) {
844
886
  console.log(JSON.stringify({
845
887
  target: opts.target,
@@ -886,19 +928,31 @@ const telemetry = program
886
928
  .description('Evidence delivery to Harness: credentials, queued deliveries and retained rejected reports');
887
929
  telemetry
888
930
  .command('recover-reviewer')
889
- .description('Deliver one exact retained terminal reviewer report without restarting reviewers or verification')
890
- .requiredOption('--target <target>', 'Exact guarded convergence target')
891
- .requiredOption('--run <id>', 'Exact retained terminal run UUID')
931
+ .description('Recover one terminal reviewer delivery without restarting reviewers')
932
+ .option('--preview', 'Write a pinned manifest without changing the server')
933
+ .option('--apply', 'Apply one exact reviewed recovery manifest')
934
+ .option('--resume', 'Resume the same journaled recovery operation')
935
+ .option('--manifest <path>', 'Immutable recovery manifest path; required for preview, apply or resume')
936
+ .option('--manifest-sha256 <sha256>', 'Required exact manifest digest for apply or resume')
937
+ .option('--target <target>', 'Exact guarded convergence target (preview or legacy no-outbox delivery)')
938
+ .option('--run <id>', 'Exact retained terminal run UUID (preview or legacy no-outbox delivery)')
892
939
  .option('--json', 'Output JSON')
893
940
  .action(async (opts) => {
894
941
  try {
895
942
  const runtime = await createTelemetryRuntime({ rclVersion: RCL_VERSION });
896
- const result = await deliverTerminalReviewerRun(runtime, { target: opts.target, runId: opts.run });
943
+ const result = await deliverTerminalReviewerRun(runtime, { preview: opts.preview, apply: opts.apply, resume: opts.resume,
944
+ manifest: opts.manifest, manifestSha256: opts.manifestSha256, target: opts.target, runId: opts.run });
897
945
  if (opts.json)
898
946
  console.log(JSON.stringify(result, null, 2));
947
+ else if (!('status' in result)) {
948
+ const legacy = result;
949
+ console.log(`${legacy.outcome.line}\nReport ${legacy.reportSha256}; reviewer artifact ${legacy.reviewerArtifactSha256}`);
950
+ }
951
+ else if (result.status === 'prepared')
952
+ console.log(`Recovery manifest ${result.manifest}\nSHA-256 ${result.manifest_sha256}\nOperation ${result.operation_id}`);
899
953
  else
900
- console.log(`${result.outcome.line}\nReport ${result.reportSha256}; reviewer artifact ${result.reviewerArtifactSha256}`);
901
- process.exitCode = result.outcome.exitCode;
954
+ console.log(`Reviewer recovery complete for ${result.run_id}\nJournal ${result.journal}\nAcknowledgement ${result.recovery_acknowledgement}`);
955
+ process.exitCode = !('status' in result) ? result.outcome.exitCode : 0;
902
956
  }
903
957
  catch (error) {
904
958
  const message = scrubText(error instanceof Error ? error.message : String(error), 300);
@@ -1054,6 +1108,22 @@ evidenceCmd
1054
1108
  .action(async (runId, opts) => {
1055
1109
  process.exitCode = await runEvidenceShow(runId ?? '', opts, evidenceDeps());
1056
1110
  });
1111
+ evidenceCmd
1112
+ .command('recover-claim')
1113
+ .description('Preview, apply or resume an evidence-backed claim correction on the same target')
1114
+ .option('--preview', 'Read immutable evidence and write an exclusive preview manifest')
1115
+ .option('--apply', 'Apply the explicitly pinned manifest')
1116
+ .option('--resume', 'Resume the same operation after independently reading accepted receipts')
1117
+ .option('--selection <path>', 'Explicit source and claim selection for preview')
1118
+ .option('--adopt-manifest <path>', 'Existing operation manifest to adopt during preview')
1119
+ .option('--adopt-manifest-sha256 <sha256>', 'Exact digest of the existing operation manifest')
1120
+ .requiredOption('--manifest <path>', 'Exclusive preview manifest or existing operation manifest')
1121
+ .option('--manifest-sha256 <sha256>', 'Exact reviewed manifest digest for apply or resume')
1122
+ .option('--json', 'Print machine-readable operation status')
1123
+ .action(async (opts) => {
1124
+ const { runPublicClaimRecovery } = await import('./evidence/recover-claim.js');
1125
+ process.exitCode = await runPublicClaimRecovery(opts, evidenceDeps());
1126
+ });
1057
1127
  evidenceCmd
1058
1128
  .command('recover-run')
1059
1129
  .description('Preview, apply or resume delivery of one immutable original asserted run; no review, events or native accounting')
@@ -1360,7 +1430,20 @@ async function prepareCouncil(spinner, opts, fallbackRoles, attestation) {
1360
1430
  const startedAt = new Date();
1361
1431
  // Validate the converge context first: a bad --round must fail before any
1362
1432
  // model time is spent, not after the council has run.
1363
- const converge = resolveConvergeContext({ convergeTarget: opts.convergeTarget, round: opts.round, attempt: opts.attempt }, reviewConvergeEnvironment(opts));
1433
+ let converge = resolveConvergeContext({ convergeTarget: opts.convergeTarget, round: opts.round, attempt: opts.attempt }, reviewConvergeEnvironment(opts));
1434
+ if (!opts.startOver && opts.guardedConverge && converge && converge.round === undefined) {
1435
+ const state = await loadConvergeRunState(await resolveGitCommonDir(), converge.target);
1436
+ converge = { ...converge, round: Math.max(0, ...(state?.rounds.map(entry => entry.round) ?? [])) + 1 };
1437
+ }
1438
+ const recoveredProduction = converge && !opts.startOver
1439
+ ? await selectCurrentRecoveredProduction(converge)
1440
+ : undefined;
1441
+ if (recoveredProduction && !opts.guardedConverge) {
1442
+ throw new ReviewLaunchRefused('recovery_guard_required', 'Recovered-v3 production requires --guarded-converge so the provider call and report admission remain bound to one durable attempt.');
1443
+ }
1444
+ if (opts.guardedConverge && converge?.attempt !== undefined && !recoveredProduction) {
1445
+ throw new ReviewLaunchRefused('preclaimed_attempt_ineligible', 'An explicit guarded attempt may only hand off the exact standalone claim for recovered-v3 production.');
1446
+ }
1364
1447
  if (!opts.exportPendingPackage)
1365
1448
  await fetchHarnessKeys(spinner, attestation?.credential);
1366
1449
  const config = await loadConfig(opts.config, undefined, { preserveDefaultRoster: opts.guardedConverge });
@@ -1554,7 +1637,10 @@ async function prepareCouncil(spinner, opts, fallbackRoles, attestation) {
1554
1637
  ...(pendingClaimPlan ? { pendingClaimPlan } : {}),
1555
1638
  explicit: explicitReviewers !== undefined,
1556
1639
  coreModels: models,
1557
- ...(converge ? { converge } : {}),
1640
+ ...(converge ? { converge: { ...converge, ...(recoveredProduction ? { recovery_source: {
1641
+ version: 1, native_sha256: recoveredProduction.nativeSha256,
1642
+ } } : {}) } } : {}),
1643
+ ...(recoveredProduction ? { recoveredProduction } : {}),
1558
1644
  startedAt,
1559
1645
  };
1560
1646
  }
@@ -1585,8 +1671,10 @@ async function discoverCycleReview(target, opts) {
1585
1671
  const active = opts.startOver ? undefined : await loadConvergeRunState(common, targetKey);
1586
1672
  if (!opts.startOver && !active?.cycle)
1587
1673
  return opts;
1588
- if (opts.attempt !== undefined || (opts.startOver && opts.round !== undefined) || opts.attest)
1674
+ const recoveredPreclaim = active?.version === 3 && opts.guardedConverge && opts.attempt !== undefined;
1675
+ if ((opts.attempt !== undefined && !recoveredPreclaim) || (opts.startOver && opts.round !== undefined) || opts.attest) {
1589
1676
  throw new Error('A fresh review assigns its own ordinals and needs an ordinary actor credential');
1677
+ }
1590
1678
  if (opts.telemetry === false)
1591
1679
  throw new Error('Fresh review cycles require Harness evidence');
1592
1680
  const paths = opts.jsonFile ? {} : await freshReviewOutputPaths(common);
@@ -1681,8 +1769,8 @@ async function runReview(target, opts) {
1681
1769
  const converge = resolveConvergeContext(opts, reviewConvergeEnvironment(opts));
1682
1770
  if (!converge)
1683
1771
  throw new ReviewLaunchRefused('target_required', 'A guarded launch requires --converge-target.');
1684
- if (converge.attempt !== undefined || opts.attest) {
1685
- throw new ReviewLaunchRefused('incompatible_launch', 'Guarded review claims its own attempt; do not preclaim, pass --attempt, or combine it with --attest.');
1772
+ if (opts.attest) {
1773
+ throw new ReviewLaunchRefused('incompatible_launch', 'Guarded review cannot be combined with --attest.');
1686
1774
  }
1687
1775
  }
1688
1776
  // Exactly one review source: a positional target, --staged, or --working-tree
@@ -1897,7 +1985,16 @@ async function executeCouncil(spinner, prepared, diff, opts, extra, preparedWork
1897
1985
  const runtime = await createTelemetryRuntime({ rclVersion: RCL_VERSION, config, noTelemetry: opts.telemetry === false });
1898
1986
  if (!runtime.sink || runtime.level !== 'full')
1899
1987
  throw new Error('Fresh review cycles require full Harness evidence and an actor credential');
1900
- cycleRemote = createReviewCycleRemote(runtime.sink, extra.target.repo, extra.target.prNumber, opts.expectPrHeadSha ?? extra.target.headSha ?? '');
1988
+ const prTarget = parseGitHubTarget(`${extra.target.repo}#${extra.target.prNumber}`);
1989
+ cycleRemote = createReviewCycleRemote(runtime.sink, extra.target.repo, extra.target.prNumber, opts.expectPrHeadSha ?? extra.target.headSha ?? '', async () => {
1990
+ const client = await createGitHubClient(config.githubToken);
1991
+ const auth = await client.auth();
1992
+ if (typeof auth !== 'object' || auth === null || !('type' in auth) || auth.type !== 'token') {
1993
+ throw new Error('fresh_review_github_auth_unavailable');
1994
+ }
1995
+ const { data: pr } = await getGitHubPullRequest(client, prTarget);
1996
+ return { headSha: pr.head.sha, merged: pr.merged, state: pr.state };
1997
+ });
1901
1998
  }
1902
1999
  if (opts.resumePending || opts.finalizePendingOnly) {
1903
2000
  const asyncBinding = opts.resumeAsyncSha256.trim();
@@ -2122,6 +2219,7 @@ async function executeCouncil(spinner, prepared, diff, opts, extra, preparedWork
2122
2219
  target: prepared.converge.target,
2123
2220
  startOver: opts.startOver, cycleRemote,
2124
2221
  boundFixRecovery,
2222
+ recoverySource: prepared.converge.recovery_source,
2125
2223
  headSha: extra.target.headSha ?? '',
2126
2224
  inputSha256: guardedInputSha256(guardedInput),
2127
2225
  round: prepared.converge.round,
@@ -2130,6 +2228,7 @@ async function executeCouncil(spinner, prepared, diff, opts, extra, preparedWork
2130
2228
  ...(opts.retryReport ? { legacyRetry: { reportPath: opts.retryReport, config, roster,
2131
2229
  historicalPlan: prepared.historicalRetryPlan === true } } : {}),
2132
2230
  maxAttempts: opts.maxAttempts === undefined ? undefined : Number(opts.maxAttempts),
2231
+ consumeAttempt: prepared.recoveredProduction ? prepared.converge.attempt : undefined,
2133
2232
  maxRounds: opts.maxRounds === undefined ? undefined : Number(opts.maxRounds),
2134
2233
  validate: async () => {
2135
2234
  validateLaunchProviders(roster.map(entry => entry.provider));
@@ -2147,7 +2246,7 @@ async function executeCouncil(spinner, prepared, diff, opts, extra, preparedWork
2147
2246
  baseSha: retained.baseSha } };
2148
2247
  },
2149
2248
  onClaim: async (claim) => {
2150
- if (opts.telemetry !== false)
2249
+ if (!claim.preclaimed && opts.telemetry !== false)
2151
2250
  await reportConvergeEvents([buildEvent({
2152
2251
  kind: 'attempt_claimed', convergeTarget: claim.target, attempt: claim.attempt,
2153
2252
  payload: { attempt: claim.attempt, cap: claim.cap, ...(claim.cycle ? { cycle_id: claim.cycle.id } : {}),
@@ -2444,7 +2543,10 @@ async function executeCouncil(spinner, prepared, diff, opts, extra, preparedWork
2444
2543
  startedAt: extra.pendingResume
2445
2544
  ? new Date(extra.pendingResume.launch.startedAtMs)
2446
2545
  : prepared.startedAt,
2447
- ...(prepared.converge ? { converge: { target: prepared.converge.target, round: prepared.converge.round, attempt: prepared.converge.attempt }, cycleId: prepared.converge.cycleId } : {}),
2546
+ ...(prepared.converge ? { converge: {
2547
+ target: prepared.converge.target, round: prepared.converge.round, attempt: prepared.converge.attempt,
2548
+ ...(prepared.converge.recovery_source ? { recovery_source: prepared.converge.recovery_source } : {}),
2549
+ }, cycleId: prepared.converge.cycleId } : {}),
2448
2550
  };
2449
2551
  const assemblyDependencies = {
2450
2552
  onStage: postReviewStage,
@@ -2501,7 +2603,7 @@ async function executeCouncil(spinner, prepared, diff, opts, extra, preparedWork
2501
2603
  else
2502
2604
  result = await assembleCompletedReview({
2503
2605
  chunkReviews, arrivedAsync, asyncLaunched, startTime, roleMap, config, diff,
2504
- gatingConfig: prepared.gatingConfig, modelWeights, run: runInput,
2606
+ gatingConfig: prepared.gatingConfig, recoveredProduction: prepared.recoveredProduction, modelWeights, run: runInput,
2505
2607
  }, assemblyDependencies);
2506
2608
  const { run } = result;
2507
2609
  // The same derivation converge-report and the server apply to this report.