@allocator-one/rcl 4.5.4 → 4.5.5

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 (64) hide show
  1. package/README.md +3 -3
  2. package/dist/converge/attempt-budget.d.ts +14 -0
  3. package/dist/converge/attempt-budget.js +216 -1
  4. package/dist/converge/attempt-budget.js.map +1 -1
  5. package/dist/converge/launch-guard.js +23 -6
  6. package/dist/converge/launch-guard.js.map +1 -1
  7. package/dist/converge/launch-record.d.ts +36 -0
  8. package/dist/converge/launch-record.js +9 -3
  9. package/dist/converge/launch-record.js.map +1 -1
  10. package/dist/converge/legacy-launch-health.d.ts +36 -0
  11. package/dist/converge/native-lock.d.ts +3 -1
  12. package/dist/converge/native-lock.js +4 -4
  13. package/dist/converge/native-lock.js.map +1 -1
  14. package/dist/converge/ordinary-pending-export.d.ts +3 -0
  15. package/dist/converge/ordinary-pending-export.js +64 -17
  16. package/dist/converge/ordinary-pending-export.js.map +1 -1
  17. package/dist/converge/ordinary-pending-package.d.ts +11 -0
  18. package/dist/converge/ordinary-pending-package.js +18 -4
  19. package/dist/converge/ordinary-pending-package.js.map +1 -1
  20. package/dist/converge/pending-finalization-receipt.d.ts +4 -0
  21. package/dist/converge/pending-finalization-receipt.js +102 -0
  22. package/dist/converge/pending-finalization-receipt.js.map +1 -0
  23. package/dist/converge/pending-legacy-resume.d.ts +42 -3
  24. package/dist/converge/pending-legacy-resume.js +164 -32
  25. package/dist/converge/pending-legacy-resume.js.map +1 -1
  26. package/dist/converge/pending-recovery-source.d.ts +114 -0
  27. package/dist/converge/pending-recovery-source.js +36 -1
  28. package/dist/converge/pending-recovery-source.js.map +1 -1
  29. package/dist/converge/process-identity.d.ts +51 -0
  30. package/dist/converge/process-identity.js +190 -0
  31. package/dist/converge/process-identity.js.map +1 -0
  32. package/dist/converge/recovery-launch.js +39 -17
  33. package/dist/converge/recovery-launch.js.map +1 -1
  34. package/dist/converge/recovery-state.d.ts +55 -0
  35. package/dist/converge/recovery-state.js +306 -0
  36. package/dist/converge/recovery-state.js.map +1 -0
  37. package/dist/converge/run-state.d.ts +39 -1
  38. package/dist/converge/run-state.js +246 -18
  39. package/dist/converge/run-state.js.map +1 -1
  40. package/dist/converge/semantic-state.d.ts +55 -0
  41. package/dist/converge/semantic-state.js +666 -0
  42. package/dist/converge/semantic-state.js.map +1 -0
  43. package/dist/converge/stale-report.d.ts +36 -0
  44. package/dist/dispatch/async-lane.d.ts +12 -0
  45. package/dist/dispatch/async-lane.js +94 -0
  46. package/dist/dispatch/async-lane.js.map +1 -1
  47. package/dist/evidence/claim-recovery/validation/native-state.d.ts +22 -0
  48. package/dist/evidence/claim-recovery/validation/native-state.js +91 -9
  49. package/dist/evidence/claim-recovery/validation/native-state.js.map +1 -1
  50. package/dist/evidence/claim-recovery/validation/obligations.js +2 -1
  51. package/dist/evidence/claim-recovery/validation/obligations.js.map +1 -1
  52. package/dist/evidence/claim-recovery/validation/semantic-validation.d.ts +11 -0
  53. package/dist/evidence/claim-recovery/validation/semantic-validation.js +105 -28
  54. package/dist/evidence/claim-recovery/validation/semantic-validation.js.map +1 -1
  55. package/dist/evidence/claim-recovery/validation/types.d.ts +10 -0
  56. package/dist/evidence/original-run/lock-scope.d.ts +12 -6
  57. package/dist/evidence/original-run/lock-scope.js +12 -9
  58. package/dist/evidence/original-run/lock-scope.js.map +1 -1
  59. package/dist/index.js +31 -10
  60. package/dist/index.js.map +1 -1
  61. package/dist/telemetry/recovery/files.d.ts +4 -0
  62. package/dist/telemetry/recovery/files.js +15 -5
  63. package/dist/telemetry/recovery/files.js.map +1 -1
  64. package/package.json +1 -1
@@ -2,16 +2,23 @@ import { rejectionManifest, validateTerminalRejectionAudit } from './terminal-re
2
2
  import { staleManifest, validateStaleReportAudit } from './stale-report-schema.js';
3
3
  import { isDeepStrictEqual } from 'node:util';
4
4
  import { createHash, randomUUID } from 'node:crypto';
5
- import { lstat, mkdir, readFile, realpath, rename, rm } from 'node:fs/promises';
5
+ import { lstat, mkdir, realpath, rename, rm } from 'node:fs/promises';
6
6
  import { join, resolve } from 'node:path';
7
7
  import { ownedNativeTargetCommonDir, withNativeTarget, withOwnedNativeOperation } from './target-ownership.js';
8
8
  import { gapManifest, validateRoundGapAudit } from './round-gap-schema.js';
9
9
  import { validateHistoricalDeliveryReconciliationAudit } from './historical-delivery-reconciliation-schema.js';
10
10
  import { syncNativeDirectory, writeNativeStateExclusive } from './native-lock.js';
11
11
  import { checkDarwinLockACL } from '../evidence/original-run/lock-path.js';
12
+ import { fileFailure, readOrdinaryNativeFile, readStable } from '../telemetry/recovery/files.js';
13
+ import { effectivePendingIdentities, validateNativeRecoveryState, verifyNativeRecoveryLineage } from './recovery-state.js';
12
14
  import * as lockScope from '../evidence/original-run/lock-scope.js';
15
+ import { admittedActionableBeforeTriage, validateSemanticState as validateRetainedSemanticState } from '../evidence/claim-recovery/validation/semantic-validation.js';
16
+ import { recoveryProjectionFreshness } from '../evidence/claim-recovery/validation/current-projection.js';
13
17
  import { validCycleVersion } from './review-cycle.js';
14
18
  import { DEFAULT_SEVERITY_ORDER } from '../config/defaults.js';
19
+ import { bindRoundEvidence, processSemanticRound, verifyRoundBinding } from './semantic-state.js';
20
+ import { verdictClearsPending } from '../evidence/claim-recovery/validation/obligations.js';
21
+ export { verdictClearsPending };
15
22
  import { availableFindingKey, matchFinding, } from './finding-identity.js';
16
23
  /**
17
24
  * Per-converge-run state (RCL-24): the machine-enforced round cap and the
@@ -25,6 +32,7 @@ export const HARD_CONVERGE_ROUND_CAP = 99;
25
32
  export const MIN_CONVERGE_ROUNDS = 2;
26
33
  const STATE_VERSION = 1;
27
34
  const STATE_DIR = 'rcl-converge-runs';
35
+ const MAX_NATIVE_STATE_BYTES = 64 * 1024 * 1024;
28
36
  const DEFAULT_LINE_WINDOW = 5;
29
37
  const REPORT_IDENTITY = /^report:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}:[0-9a-f]{16}(?![\s\S])/;
30
38
  const REPORT_IDENTITY_SHAPE = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}:[0-9a-f]{16}/i;
@@ -77,18 +85,59 @@ export function initialConvergeRunState(target) {
77
85
  async function readState(gitCommonDir, target) {
78
86
  return (await loadConvergeRunStateEvidence(gitCommonDir, target))?.state;
79
87
  }
88
+ async function validateSemanticStateFiles(state, gitCommonDir) {
89
+ const path = convergeRunStatePath(gitCommonDir, state.target);
90
+ const requireCanonicalPath = async (storedPath, expectedPath) => {
91
+ try {
92
+ if (!storedPath || await realpath(storedPath) !== await realpath(expectedPath)) {
93
+ throw new Error('canonical_path_mismatch');
94
+ }
95
+ }
96
+ catch (cause) {
97
+ throw new ConvergeRunStateError('Retained semantic evidence is outside its canonical native path.', { cause });
98
+ }
99
+ };
100
+ const sources = { reports: new Map(), snapshots: new Map(), usedReports: new Set(), pathRequirements: [] };
101
+ let remaining = MAX_NATIVE_STATE_BYTES;
102
+ for (const binding of state.rounds.flatMap(round => round.reportBinding ? [round.reportBinding] : [])) {
103
+ await requireCanonicalPath(binding.sourcePath, `${path}.evidence/${binding.reportSha256}.json`);
104
+ const source = await readStable(binding.sourcePath, remaining);
105
+ remaining -= source.raw.length;
106
+ if (remaining < 0 || source.sha256 !== binding.reportSha256)
107
+ throw new ConvergeRunStateError('Invalid retained report evidence.');
108
+ sources.reports.set(binding.reportSha256, source.text);
109
+ }
110
+ if (state.migration) {
111
+ await requireCanonicalPath(state.migration.snapshotPath, `${path}.v1-${state.migration.sourceSha256}.snapshot`);
112
+ const source = await readStable(state.migration.snapshotPath, remaining);
113
+ remaining -= source.raw.length;
114
+ if (remaining < 0 || source.sha256 !== state.migration.sourceSha256)
115
+ throw new ConvergeRunStateError('Invalid migration evidence.');
116
+ sources.snapshots.set(state.migration.sourceSha256, source.text);
117
+ }
118
+ validateRetainedSemanticState(state, sources);
119
+ for (const requirement of sources.pathRequirements) {
120
+ const expected = requirement.nativePathSuffix ? `${path}${requirement.nativePathSuffix}` : undefined;
121
+ if (expected)
122
+ await requireCanonicalPath(requirement.storedPath, expected);
123
+ }
124
+ }
80
125
  /** Read-only native evidence: state and the digest of the same bytes, without re-encoding or persisting it. */
81
126
  export async function loadConvergeRunStateEvidence(gitCommonDir, target) {
82
127
  const path = convergeRunStatePath(gitCommonDir, target);
83
128
  let raw;
84
129
  try {
85
- raw = await readFile(path);
130
+ raw = (await readOrdinaryNativeFile(path, MAX_NATIVE_STATE_BYTES)).raw;
86
131
  }
87
132
  catch (err) {
88
133
  if (err instanceof Error && err.code === 'ENOENT') {
89
134
  return undefined;
90
135
  }
91
- throw new ConvergeRunStateError(`Could not read converge run state: ${path}`, { cause: err });
136
+ const failure = fileFailure(err);
137
+ if (failure === 'symlink_directory') {
138
+ throw new ConvergeRunStateError('unsafe_converge_state_directory', { cause: err });
139
+ }
140
+ throw new ConvergeRunStateError(`Could not read converge run state: ${path} (${failure})`, { cause: err });
92
141
  }
93
142
  let parsed;
94
143
  try {
@@ -98,14 +147,31 @@ export async function loadConvergeRunStateEvidence(gitCommonDir, target) {
98
147
  throw new ConvergeRunStateError(`Invalid JSON in converge run state ${path}; refusing to reset cross-round identity.`, { cause: err });
99
148
  }
100
149
  const state = parsed;
101
- if (!validCycleVersion(state, STATE_VERSION) ||
150
+ if (!state || typeof state !== 'object' || state.startOverPending !== undefined ||
151
+ (state.version !== 1 && state.version !== 2 && state.version !== 3) ||
152
+ (state.version === 1 && !validCycleVersion(state, STATE_VERSION)) ||
102
153
  state.target !== target ||
103
154
  !Number.isSafeInteger(state.roundCap) ||
104
155
  !Array.isArray(state.rounds) ||
105
156
  typeof state.findings !== 'object' ||
106
- state.findings === null) {
157
+ state.findings === null || Array.isArray(state.findings)) {
107
158
  throw new ConvergeRunStateError(`Invalid converge run state in ${path}; refusing to reset cross-round identity.`);
108
159
  }
160
+ if (state.version === 2 && state.cycle !== undefined) {
161
+ verifyNativeRecoveryLineage(raw.toString('utf8'), target);
162
+ }
163
+ if (state.version === 2 && state.cycle === undefined) {
164
+ if (!Buffer.from(raw.toString('utf8'), 'utf8').equals(raw))
165
+ throw new ConvergeRunStateError('invalid_utf8');
166
+ await validateSemanticStateFiles(state, gitCommonDir);
167
+ }
168
+ if (state.version === 3) {
169
+ const canonical = await readStable(path, MAX_NATIVE_STATE_BYTES);
170
+ if (!canonical.raw.equals(raw)) {
171
+ throw new ConvergeRunStateError('Native recovery state changed during validation.');
172
+ }
173
+ await validateNativeRecoveryState(state, gitCommonDir, raw);
174
+ }
109
175
  validateRoundGapAudit(state);
110
176
  validateStaleReportAudit(state);
111
177
  validateHistoricalDeliveryReconciliationAudit(state);
@@ -114,7 +180,35 @@ export async function loadConvergeRunStateEvidence(gitCommonDir, target) {
114
180
  }
115
181
  /** Persist only under live explicit target authority; started writes drain before release. */
116
182
  export function writeState(gitCommonDir, state, ownership) {
117
- return withOwnedNativeOperation(ownership, gitCommonDir, state.target, () => writeStateOwned(gitCommonDir, state));
183
+ const next = structuredClone(state);
184
+ return withOwnedNativeOperation(ownership, gitCommonDir, next.target, async () => {
185
+ if (next.version === 3) {
186
+ await validateNativeRecoveryState(next, gitCommonDir, Buffer.from(`${JSON.stringify(next, null, 2)}\n`));
187
+ }
188
+ await writeStateOwned(gitCommonDir, next);
189
+ });
190
+ }
191
+ /** Exact ordinary CAS for retained transitions under the same target lease. */
192
+ export function writeStateIfUnchanged(gitCommonDir, sourceSha256, next, ownership) {
193
+ const state = structuredClone(next);
194
+ const bytes = `${JSON.stringify(state, null, 2)}\n`;
195
+ const afterSha256 = createHash('sha256').update(bytes).digest('hex');
196
+ return withOwnedNativeOperation(ownership, gitCommonDir, state.target, async () => {
197
+ const { assertNoPendingFreshReview, assertReviewCyclePair } = await import('./fresh-review.js');
198
+ await assertNoPendingFreshReview(gitCommonDir, state.target);
199
+ await assertReviewCyclePair(gitCommonDir, state.target, state.cycle);
200
+ const current = await loadConvergeRunStateEvidence(gitCommonDir, state.target);
201
+ if (current?.sha256 === afterSha256)
202
+ return 'already-written';
203
+ if (current?.sha256 !== sourceSha256) {
204
+ throw new ConvergeRunStateError('Native state changed after this transition was prepared.');
205
+ }
206
+ if (state.version === 3) {
207
+ await validateNativeRecoveryState(state, gitCommonDir, Buffer.from(bytes));
208
+ }
209
+ await writeStateOwned(gitCommonDir, state);
210
+ return 'written';
211
+ });
118
212
  }
119
213
  /** Read-only qualification for an update to an existing native state file. */
120
214
  export function preflightConvergeRunStateWrite(gitCommonDir, state, ownership) {
@@ -156,7 +250,7 @@ async function writeStateOwned(gitCommonDir, state) {
156
250
  await syncNativeDirectory(gitCommonDir);
157
251
  const temp = `${path}.${process.pid}.${randomUUID()}.tmp`;
158
252
  try {
159
- await writeNativeStateExclusive(temp, state);
253
+ await writeNativeStateExclusive(temp, state, MAX_NATIVE_STATE_BYTES);
160
254
  await rename(temp, path);
161
255
  await syncNativeDirectory(stateDir);
162
256
  }
@@ -194,7 +288,15 @@ export function validateReportIdentityMappings(findings) {
194
288
  }
195
289
  }
196
290
  export async function processRoundReport(options) {
197
- const { target } = validateRoundReportInput(options);
291
+ // The caller keeps ownership of its objects. Freeze the complete finding
292
+ // batch synchronously so queued ownership and filesystem work cannot observe
293
+ // later caller mutation after the original report comparison.
294
+ options = { ...options, findings: structuredClone(options.findings),
295
+ evidence: options.evidence ? { reportJson: options.evidence.reportJson } : undefined };
296
+ const target = options.target.trim();
297
+ if (!target)
298
+ throw new ConvergeRunStateError('Convergence target must not be empty.');
299
+ options = { ...options, target };
198
300
  return options.ownership
199
301
  ? withOwnedNativeOperation(options.ownership, options.gitCommonDir, target, ownership => processRoundReportOwned(options, ownership))
200
302
  : withNativeTarget(options.gitCommonDir, target, ownership => processRoundReportOwned(options, ownership));
@@ -205,9 +307,22 @@ function validateRoundReportInput(options) {
205
307
  throw new ConvergeRunStateError('Convergence target must not be empty.');
206
308
  // A blank id is no binding at all; only a real one is persisted.
207
309
  const runId = options.runId?.trim() || undefined;
310
+ const binding = options.evidence ? bindRoundEvidence(options) : undefined;
311
+ const gating = binding ? JSON.parse(options.evidence.reportJson).run?.gating : undefined;
312
+ if (gating && Object.hasOwn(gating, 'bound_classification_protocol')) {
313
+ if (gating.bound_classification_protocol !== 1)
314
+ throw new ConvergeRunStateError('Unsupported bound classification protocol.');
315
+ if (options.findings.some(finding => finding.claimDescriptor === undefined)) {
316
+ throw new ConvergeRunStateError('Declared bound classifications require semantic claim descriptors before native admission.');
317
+ }
318
+ }
208
319
  if (!Number.isSafeInteger(options.round) || options.round < 1) {
209
320
  throw new ConvergeRunStateError('round must be a positive integer.');
210
321
  }
322
+ if (options.lineWindow !== undefined &&
323
+ (!Number.isSafeInteger(options.lineWindow) || options.lineWindow < 0)) {
324
+ throw new ConvergeRunStateError('lineWindow must be a nonnegative safe integer.');
325
+ }
211
326
  if (options.findings.some((finding) => !DEFAULT_SEVERITY_ORDER.includes(finding.severity))) {
212
327
  throw new ConvergeRunStateError('Invalid finding severity: expected critical, important, minor, or nitpick.');
213
328
  }
@@ -230,7 +345,7 @@ function validateRoundReportInput(options) {
230
345
  if (new Set(reportIdentities).size !== reportIdentities.length) {
231
346
  throw new ConvergeRunStateError('Duplicate report identity; each modern report claim must be independently addressable.');
232
347
  }
233
- return { target, runId };
348
+ return { target, runId, binding, gating };
234
349
  }
235
350
  function looksLikeReportIdentity(identity) {
236
351
  const normalized = identity.normalize('NFKC')
@@ -251,8 +366,9 @@ function claimTextSha256(finding) {
251
366
  .digest('hex');
252
367
  }
253
368
  async function processRoundReportOwned(options, ownership) {
254
- const { target, runId } = validateRoundReportInput(options);
255
- const gitCommonDir = await ownedNativeTargetCommonDir(ownership, options.gitCommonDir, target);
369
+ const gitCommonDir = await ownedNativeTargetCommonDir(ownership, options.gitCommonDir, options.target);
370
+ options = { ...options, gitCommonDir };
371
+ const { target, runId, binding, gating } = validateRoundReportInput(options);
256
372
  const lineWindow = options.lineWindow ?? DEFAULT_LINE_WINDOW;
257
373
  const state = (await readState(gitCommonDir, target)) ?? initialConvergeRunState(target);
258
374
  const { assertReviewCyclePair, assertNoPendingFreshReview } = await import('./fresh-review.js');
@@ -263,7 +379,10 @@ async function processRoundReportOwned(options, ownership) {
263
379
  const { hasHealthyGuardedLaunch } = await import('./launch-guard.js');
264
380
  // A guarded launch that recorded inconclusive blocking health is never
265
381
  // admitted, whatever its aggregate counters say (RCL-136).
266
- const launch = state.lastLaunch;
382
+ const attempts = state.version === 3
383
+ ? await (await import('./attempt-budget.js')).loadConvergeAttemptState(gitCommonDir, target)
384
+ : undefined;
385
+ const launch = attempts?.lastLaunch ?? state.lastLaunch;
267
386
  if (launch && launch.runId === runId && launch.deliveryFailure === 'local-invalid')
268
387
  throw new ConvergeRunStateError('terminal_rejection_cannot_be_admitted');
269
388
  if (launch?.status === 'completed' && launch.reviewerHealth !== undefined && launch.runId === runId) {
@@ -332,6 +451,16 @@ async function processRoundReportOwned(options, ownership) {
332
451
  throw new ConvergeRunStateError(`Round ${options.round} for ${target} is out of order: recorded rounds reach ` +
333
452
  `${maxRecorded}; only round ${maxRecorded} (re-run) or ${maxRecorded + 1} is accepted.`);
334
453
  }
454
+ if (state.version === 3) {
455
+ if (!binding || gating?.bound_classification_protocol !== 1) {
456
+ throw new ConvergeRunStateError('Recovered-v3 continuation requires a marked immutable original report.');
457
+ }
458
+ return processSemanticRound({ ...options, gitCommonDir }, binding, ownership);
459
+ }
460
+ if ((state.version === 2 && state.cycle === undefined) || options.findings.some(f => f.claimDescriptor !== undefined) ||
461
+ gating?.bound_classification_protocol !== undefined) {
462
+ throw new ConvergeRunStateError('Semantic continuation requires a validated recovered-v3 target.');
463
+ }
335
464
  // Live list: entries created earlier in THIS round must be matchable by
336
465
  // later findings of the same report, or near-duplicates in one report
337
466
  // would split into separate identities. Matching is overlap-only — a
@@ -488,12 +617,22 @@ async function processRoundReportOwned(options, ownership) {
488
617
  status: a.status,
489
618
  gating: findingGatingReason(a.finding),
490
619
  })),
620
+ actionableBeforeTriage: effectivePendingIdentities(state),
491
621
  };
492
622
  state.updatedAt = new Date().toISOString();
493
623
  await writeState(gitCommonDir, state, ownership);
494
624
  return { roundCap: state.roundCap, counts, findings: annotated };
495
625
  }
626
+ function validateVerdictKeys(verdicts) {
627
+ if (verdicts.some(({ key }) => !/^[a-f0-9]{16}$/.test(key))) {
628
+ throw new ConvergeRunStateError('Every verdict requires a canonical finding identity.');
629
+ }
630
+ if (new Set(verdicts.map(({ key }) => key)).size !== verdicts.length) {
631
+ throw new ConvergeRunStateError('Pass each finding identity only once, as either fixed or dismissed.');
632
+ }
633
+ }
496
634
  export async function recordVerdicts(options) {
635
+ validateVerdictKeys(options.verdicts);
497
636
  return options.ownership
498
637
  ? withOwnedNativeOperation(options.ownership, options.gitCommonDir, options.target, ownership => recordVerdictsOwned(options, ownership))
499
638
  : withNativeTarget(options.gitCommonDir, options.target, ownership => recordVerdictsOwned(options, ownership));
@@ -516,23 +655,44 @@ async function recordVerdictsOwned(options, ownership) {
516
655
  (options.runId !== undefined && options.runId !== reviewedRound.runId)) {
517
656
  throw new ConvergeRunStateError('review_cycle_verdict_run_mismatch: use --run-id from the current report');
518
657
  }
658
+ if (options.requireVerifiedBinding && (!reviewedRound.reportBinding || !reviewedRound.runId)) {
659
+ throw new ConvergeRunStateError(`Round ${options.round} has no verified original report binding.`);
660
+ }
661
+ if (reviewedRound.reportBinding && (options.requireVerifiedBinding || state.version === 3)) {
662
+ if (!reviewedRound.runId)
663
+ throw new ConvergeRunStateError(`Round ${options.round} has no verified original report binding.`);
664
+ await verifyRoundBinding(reviewedRound.reportBinding, target, options.round, reviewedRound.runId);
665
+ }
666
+ if (state.version === 3) {
667
+ const prepared = prepareVerdicts(state, { ...options, recordedAt: new Date().toISOString() });
668
+ await writeState(gitCommonDir, prepared.state, ownership);
669
+ return { ...prepared.result, ...(reviewedRound.runId ? { runId: reviewedRound.runId } : {}) };
670
+ }
671
+ if (state.version === 2 && state.cycle === undefined) {
672
+ throw new ConvergeRunStateError('Semantic verdicts require supported recovery of this target first.');
673
+ }
519
674
  const updated = [];
520
675
  const severities = reviewedRound.severities;
521
676
  for (const { key, verdict, reason } of options.verdicts) {
522
- const entry = state.findings[key];
677
+ const entry = Object.hasOwn(state.findings, key) ? state.findings[key] : undefined;
523
678
  if (!entry) {
524
679
  throw new ConvergeRunStateError(`Unknown finding key "${key}" for target ${target}.`);
525
680
  }
526
- if (severities !== undefined && severities[key] === undefined) {
681
+ if (severities !== undefined && !Object.hasOwn(severities, key)) {
527
682
  throw new ConvergeRunStateError(`Finding "${key}" was not sighted in round ${options.round}.`);
528
683
  }
529
684
  // Emit delayed evidence without replacing a newer round's active verdict.
530
685
  const recorded = entry.verdictRound !== undefined && entry.verdictRound > options.round
531
686
  ? { ...entry, verdictReason: undefined }
532
687
  : entry;
688
+ const verdictSeverity = severities?.[key] ?? entry.severity;
689
+ if (recorded === entry && entry.pendingRound !== undefined &&
690
+ verdictClearsPending(state, key, entry.pendingRound, options.round, verdictSeverity)) {
691
+ delete entry.pendingRound;
692
+ }
533
693
  recorded.verdict = verdict;
534
694
  recorded.verdictRound = options.round;
535
- recorded.verdictSeverity = severities?.[key] ?? entry.severity;
695
+ recorded.verdictSeverity = verdictSeverity;
536
696
  if (reason !== undefined)
537
697
  recorded.verdictReason = reason;
538
698
  else if (verdict === 'fixed')
@@ -544,21 +704,29 @@ async function recordVerdictsOwned(options, ownership) {
544
704
  const resolution = resolveRoundResolution(state, options.round);
545
705
  return { entries: updated, ...(reviewedRound.runId ? { runId: reviewedRound.runId } : {}), ...(resolution ? { resolution } : {}) };
546
706
  }
547
- export function resolveRoundResolution(state, round) {
707
+ function deriveRoundResolution(state, round, pendingBeforeTriage) {
548
708
  if (state.lastAnnotations && state.lastAnnotations.round === round) {
549
709
  const actionable = state.lastAnnotations.identities.filter((a) => (a.status === 'new' || a.status === 'regating') && a.gating !== 'none');
550
- const unresolved = actionable
710
+ const currentUnresolved = actionable
551
711
  .filter((a) => {
552
712
  const entry = state.findings[a.identity];
553
713
  return !entry || entry.verdict === undefined || entry.verdictRound !== round;
554
714
  })
555
715
  .map((a) => a.identity);
716
+ const unresolved = state.version === 3
717
+ ? [...new Set([...effectivePendingIdentities(state), ...currentUnresolved])].sort()
718
+ : currentUnresolved;
556
719
  const fixedThisRound = Object.values(state.findings).filter((e) => e.verdict === 'fixed' && e.verdictRound === round).length;
720
+ const admittedActionable = pendingBeforeTriage ?? admittedActionableBeforeTriage(state, round);
721
+ const recoveryProjection = recoveryProjectionFreshness(state);
557
722
  return {
558
723
  round,
559
- actionable: actionable.length,
724
+ actionable: state.version === 3 ? new Set([
725
+ ...actionable.map(entry => entry.identity), ...admittedActionable, ...unresolved,
726
+ ]).size : actionable.length,
560
727
  unresolved,
561
728
  fixedThisRound,
729
+ ...(recoveryProjection ? { recoveryProjection } : {}),
562
730
  status: unresolved.length > 0
563
731
  ? 'unresolved'
564
732
  : fixedThisRound > 0
@@ -567,4 +735,64 @@ export function resolveRoundResolution(state, round) {
567
735
  };
568
736
  }
569
737
  }
738
+ export function resolveRoundResolution(state, round) {
739
+ return deriveRoundResolution(state, round);
740
+ }
741
+ /** Pure ordinary verdict projection for retained persistence before any write. */
742
+ export function prepareVerdicts(source, options) {
743
+ validateVerdictKeys(options.verdicts);
744
+ const target = options.target.trim();
745
+ if (!target || source.target !== target || ![1, 2, 3].includes(source.version)) {
746
+ throw new ConvergeRunStateError('Native verdict preparation target or version conflict.');
747
+ }
748
+ if (!Number.isFinite(Date.parse(options.recordedAt))) {
749
+ throw new ConvergeRunStateError('Invalid retained verdict timestamp.');
750
+ }
751
+ const state = structuredClone(source);
752
+ const reviewedRound = state.rounds.find((round) => round.round === options.round);
753
+ if (!reviewedRound) {
754
+ throw new ConvergeRunStateError(`Round ${options.round} is not recorded for ${target}.`);
755
+ }
756
+ if (state.version === 3 && ((state.cycle && options.runId === undefined) ||
757
+ (options.runId !== undefined && options.runId !== reviewedRound.runId))) {
758
+ throw new ConvergeRunStateError('review_cycle_verdict_run_mismatch: use the run ID bound to the reviewed round');
759
+ }
760
+ const pendingBeforeTriage = admittedActionableBeforeTriage(state, options.round);
761
+ if (state.sightings !== undefined && state.lastAnnotations?.round === options.round &&
762
+ state.lastAnnotations.actionableBeforeTriage === undefined) {
763
+ state.lastAnnotations.actionableBeforeTriage = pendingBeforeTriage;
764
+ }
765
+ const updated = [];
766
+ const severities = reviewedRound.severities;
767
+ for (const { key, verdict, reason } of options.verdicts) {
768
+ const entry = Object.hasOwn(state.findings, key) ? state.findings[key] : undefined;
769
+ if (!entry) {
770
+ throw new ConvergeRunStateError(`Unknown finding key "${key}" for target ${target}.`);
771
+ }
772
+ if (severities !== undefined && !Object.hasOwn(severities, key)) {
773
+ throw new ConvergeRunStateError(`Finding "${key}" was not sighted in round ${options.round}.`);
774
+ }
775
+ // Emit delayed evidence without replacing a newer round's active verdict.
776
+ const recorded = entry.verdictRound !== undefined && entry.verdictRound > options.round
777
+ ? { ...entry, verdictReason: undefined }
778
+ : entry;
779
+ const verdictSeverity = severities?.[key] ?? entry.severity;
780
+ if (recorded === entry &&
781
+ entry.pendingRound !== undefined &&
782
+ verdictClearsPending(state, key, entry.pendingRound, options.round, verdictSeverity)) {
783
+ delete entry.pendingRound;
784
+ }
785
+ recorded.verdict = verdict;
786
+ recorded.verdictRound = options.round;
787
+ recorded.verdictSeverity = verdictSeverity;
788
+ if (reason !== undefined)
789
+ recorded.verdictReason = reason;
790
+ else if (verdict === 'fixed')
791
+ delete recorded.verdictReason;
792
+ updated.push(recorded);
793
+ }
794
+ state.updatedAt = options.recordedAt;
795
+ const resolution = deriveRoundResolution(state, options.round, pendingBeforeTriage);
796
+ return { state, result: { entries: updated, ...(resolution ? { resolution } : {}) } };
797
+ }
570
798
  //# sourceMappingURL=run-state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-state.js","sourceRoot":"","sources":["../../src/converge/run-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-state.js","sourceRoot":"","sources":["../../src/converge/run-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { type NativeTargetOwnership } from './target-ownership.js';
2
+ import { migratedLegacyPendingRound } from '../evidence/claim-recovery/validation/obligations.js';
3
+ export { migratedLegacyPendingRound };
4
+ import { type ClaimDescriptor, type MatchRationale } from '../consensus/claim-identity.js';
5
+ import type { ConsensusFinding, ReviewResult } from '../consensus/types.js';
6
+ import { type ProcessRoundOptions, type RoundReport, type ConvergeRunState, type FindingStatus } from './run-state.js';
7
+ export interface ReportBinding {
8
+ runId: string;
9
+ target: string;
10
+ round: number;
11
+ reportSha256: string;
12
+ sourcePath: string;
13
+ }
14
+ export interface SemanticSighting {
15
+ runId: string;
16
+ target: string;
17
+ round: number;
18
+ reportSha256: string;
19
+ findingRef: string;
20
+ reportKey: string;
21
+ canonicalIdentity: string;
22
+ claimDescriptor: ClaimDescriptor;
23
+ matchRationale: MatchRationale;
24
+ status: FindingStatus;
25
+ /** Obligation immediately after this sighting, before subsequent verdicts. */
26
+ pendingRound: number | null;
27
+ suppressReason?: string;
28
+ severity: ConsensusFinding['severity'];
29
+ gating: string;
30
+ belowThreshold: boolean;
31
+ file: string;
32
+ category: string;
33
+ startLine: number;
34
+ endLine: number;
35
+ }
36
+ /** Validate exact original bytes and caller bindings before any durable effect. */
37
+ export declare function bindRoundEvidence(options: ProcessRoundOptions): ReportBinding;
38
+ export declare function retainReportEvidence(raw: string, binding: ReportBinding): Promise<void>;
39
+ export declare function verifyRoundBinding(binding: ReportBinding, target: string, round: number, runId: string): Promise<ReviewResult>;
40
+ /** All native consumers validate the same immutable sighting membership before effects. */
41
+ export declare function validateSemanticState(state: ConvergeRunState, gitCommonDir: string, recoveryLegacy?: ConvergeRunState): Promise<void>;
42
+ /** @internal Linear first-seen index for admission candidates. */
43
+ export declare function indexSemanticPriorByFileCategory<T extends {
44
+ file: string;
45
+ category: string;
46
+ }>(prior: readonly T[]): Map<string, T[]>;
47
+ /** Frozen batch matching: a component must be a clique and agree on one prior claim. */
48
+ export declare function processSemanticRound(options: ProcessRoundOptions, binding: ReportBinding, ownership: NativeTargetOwnership): Promise<RoundReport>;
49
+ /** Historical attribution may add an escalation obligation, never clear one.
50
+ * Each recovery operation is bound to the exact predecessor state that existed
51
+ * before it. A later refresh cannot rewrite the dismissal explaining an earlier
52
+ * semantic sighting. */
53
+ /** @internal Physical adapter for the shared retained-dismissal projection. */
54
+ export declare function retainedRecoveredDismissalsByRound(state: ConvergeRunState, gitCommonDir: string): Promise<Map<number, Map<string, string>>>;
55
+ export declare function pending(state: ConvergeRunState): string[];