@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.
- package/README.md +3 -3
- package/dist/converge/attempt-budget.d.ts +14 -0
- package/dist/converge/attempt-budget.js +216 -1
- package/dist/converge/attempt-budget.js.map +1 -1
- package/dist/converge/launch-guard.js +23 -6
- package/dist/converge/launch-guard.js.map +1 -1
- package/dist/converge/launch-record.d.ts +36 -0
- package/dist/converge/launch-record.js +9 -3
- package/dist/converge/launch-record.js.map +1 -1
- package/dist/converge/legacy-launch-health.d.ts +36 -0
- package/dist/converge/native-lock.d.ts +3 -1
- package/dist/converge/native-lock.js +4 -4
- package/dist/converge/native-lock.js.map +1 -1
- package/dist/converge/ordinary-pending-export.d.ts +3 -0
- package/dist/converge/ordinary-pending-export.js +64 -17
- package/dist/converge/ordinary-pending-export.js.map +1 -1
- package/dist/converge/ordinary-pending-package.d.ts +11 -0
- package/dist/converge/ordinary-pending-package.js +18 -4
- package/dist/converge/ordinary-pending-package.js.map +1 -1
- package/dist/converge/pending-finalization-receipt.d.ts +4 -0
- package/dist/converge/pending-finalization-receipt.js +102 -0
- package/dist/converge/pending-finalization-receipt.js.map +1 -0
- package/dist/converge/pending-legacy-resume.d.ts +42 -3
- package/dist/converge/pending-legacy-resume.js +164 -32
- package/dist/converge/pending-legacy-resume.js.map +1 -1
- package/dist/converge/pending-recovery-source.d.ts +114 -0
- package/dist/converge/pending-recovery-source.js +36 -1
- package/dist/converge/pending-recovery-source.js.map +1 -1
- package/dist/converge/process-identity.d.ts +51 -0
- package/dist/converge/process-identity.js +190 -0
- package/dist/converge/process-identity.js.map +1 -0
- package/dist/converge/recovery-launch.js +39 -17
- package/dist/converge/recovery-launch.js.map +1 -1
- package/dist/converge/recovery-state.d.ts +55 -0
- package/dist/converge/recovery-state.js +306 -0
- package/dist/converge/recovery-state.js.map +1 -0
- package/dist/converge/run-state.d.ts +39 -1
- package/dist/converge/run-state.js +246 -18
- package/dist/converge/run-state.js.map +1 -1
- package/dist/converge/semantic-state.d.ts +55 -0
- package/dist/converge/semantic-state.js +666 -0
- package/dist/converge/semantic-state.js.map +1 -0
- package/dist/converge/stale-report.d.ts +36 -0
- package/dist/dispatch/async-lane.d.ts +12 -0
- package/dist/dispatch/async-lane.js +94 -0
- package/dist/dispatch/async-lane.js.map +1 -1
- package/dist/evidence/claim-recovery/validation/native-state.d.ts +22 -0
- package/dist/evidence/claim-recovery/validation/native-state.js +91 -9
- package/dist/evidence/claim-recovery/validation/native-state.js.map +1 -1
- package/dist/evidence/claim-recovery/validation/obligations.js +2 -1
- package/dist/evidence/claim-recovery/validation/obligations.js.map +1 -1
- package/dist/evidence/claim-recovery/validation/semantic-validation.d.ts +11 -0
- package/dist/evidence/claim-recovery/validation/semantic-validation.js +105 -28
- package/dist/evidence/claim-recovery/validation/semantic-validation.js.map +1 -1
- package/dist/evidence/claim-recovery/validation/types.d.ts +10 -0
- package/dist/evidence/original-run/lock-scope.d.ts +12 -6
- package/dist/evidence/original-run/lock-scope.js +12 -9
- package/dist/evidence/original-run/lock-scope.js.map +1 -1
- package/dist/index.js +31 -10
- package/dist/index.js.map +1 -1
- package/dist/telemetry/recovery/files.d.ts +4 -0
- package/dist/telemetry/recovery/files.js +15 -5
- package/dist/telemetry/recovery/files.js.map +1 -1
- 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,
|
|
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
|
|
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
|
-
|
|
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 (!
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
255
|
-
|
|
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
|
|
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
|
|
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 =
|
|
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
|
-
|
|
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
|
|
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:
|
|
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[];
|