@allocator-one/rcl 4.5.20 → 4.5.22
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 +2 -0
- package/dist/converge/fresh-review-close.d.ts +89 -0
- package/dist/converge/fresh-review-close.js +222 -0
- package/dist/converge/fresh-review-close.js.map +1 -0
- package/dist/converge/fresh-review.d.ts +52 -0
- package/dist/converge/fresh-review.js +35 -0
- package/dist/converge/fresh-review.js.map +1 -1
- package/dist/converge/launch-guard.js +8 -6
- package/dist/converge/launch-guard.js.map +1 -1
- package/dist/converge/pending-finalization-receipt.d.ts +6 -2
- package/dist/converge/pending-finalization-receipt.js +7 -3
- package/dist/converge/pending-finalization-receipt.js.map +1 -1
- package/dist/converge/pr-snapshot.d.ts +53 -0
- package/dist/converge/pr-snapshot.js +76 -0
- package/dist/converge/pr-snapshot.js.map +1 -0
- package/dist/index.js +72 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -445,6 +445,8 @@ commands are documented in
|
|
|
445
445
|
| `rcl converge-reconcile-history` | Authenticate and append a reconciliation receipt for an exact historical guarded launch after `lastLaunch` advanced |
|
|
446
446
|
| `rcl converge-stale` | Audited disposition of a healthy or reconciled delivered-hard-failure report that became stale before admission |
|
|
447
447
|
| `rcl converge-gap` | Audited record of one evidenced missing terminal report |
|
|
448
|
+
| `rcl converge-close-fresh` | Audited close of a fresh-review operation whose launch died before writing any report |
|
|
449
|
+
| `rcl pr-snapshot` | Capture a pull request's live state for a review process that holds no GitHub credentials (`rcl review --pr-snapshot`) |
|
|
448
450
|
| `rcl converge-rejected` | Audited disposition of a report rejected locally before delivery |
|
|
449
451
|
| `rcl converge-attempt` | Claim one durable attempt; recovered-v3 continuation hands the exact claim to its guarded producer with `--attempt` |
|
|
450
452
|
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { processIdentitySchema, type ProcessIdentityStatus } from './process-identity.js';
|
|
3
|
+
export declare const freshReviewCloseManifestSchema: z.ZodObject<{
|
|
4
|
+
kind: z.ZodLiteral<"rcl-fresh-review-close">;
|
|
5
|
+
version: z.ZodLiteral<1>;
|
|
6
|
+
auditId: z.ZodString;
|
|
7
|
+
createdAt: z.ZodString;
|
|
8
|
+
gitCommonDir: z.ZodString;
|
|
9
|
+
target: z.ZodString;
|
|
10
|
+
freshOperationId: z.ZodString;
|
|
11
|
+
cycleId: z.ZodString;
|
|
12
|
+
headSha: z.ZodString;
|
|
13
|
+
operation: z.ZodObject<{
|
|
14
|
+
path: z.ZodString;
|
|
15
|
+
sha256: z.ZodString;
|
|
16
|
+
bytes: z.ZodNumber;
|
|
17
|
+
}, z.core.$strict>;
|
|
18
|
+
run: z.ZodObject<{
|
|
19
|
+
path: z.ZodString;
|
|
20
|
+
sha256: z.ZodString;
|
|
21
|
+
bytes: z.ZodNumber;
|
|
22
|
+
}, z.core.$strict>;
|
|
23
|
+
attempts: z.ZodObject<{
|
|
24
|
+
path: z.ZodString;
|
|
25
|
+
sha256: z.ZodString;
|
|
26
|
+
bytes: z.ZodNumber;
|
|
27
|
+
}, z.core.$strict>;
|
|
28
|
+
launch: z.ZodObject<{
|
|
29
|
+
attempt: z.ZodNumber;
|
|
30
|
+
round: z.ZodNumber;
|
|
31
|
+
startedAt: z.ZodString;
|
|
32
|
+
pid: z.ZodNumber;
|
|
33
|
+
processIdentity: z.ZodObject<{
|
|
34
|
+
version: z.ZodLiteral<1>;
|
|
35
|
+
pid: z.ZodNumber;
|
|
36
|
+
scope: z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
37
|
+
platform: z.ZodLiteral<"darwin">;
|
|
38
|
+
boot: z.ZodString;
|
|
39
|
+
namespace: z.ZodLiteral<"native">;
|
|
40
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
41
|
+
platform: z.ZodLiteral<"linux">;
|
|
42
|
+
boot: z.ZodString;
|
|
43
|
+
namespace: z.ZodString;
|
|
44
|
+
}, z.core.$strict>], "platform">, z.ZodObject<{
|
|
45
|
+
platform: z.ZodLiteral<"win32">;
|
|
46
|
+
bootSha256: z.ZodString;
|
|
47
|
+
namespace: z.ZodLiteral<"native">;
|
|
48
|
+
}, z.core.$strict>]>;
|
|
49
|
+
birthSha256: z.ZodString;
|
|
50
|
+
}, z.core.$strict>;
|
|
51
|
+
}, z.core.$strict>;
|
|
52
|
+
evidence: z.ZodObject<{
|
|
53
|
+
process: z.ZodLiteral<"dead">;
|
|
54
|
+
admittedRounds: z.ZodLiteral<0>;
|
|
55
|
+
checkpoint: z.ZodObject<{
|
|
56
|
+
path: z.ZodString;
|
|
57
|
+
present: z.ZodBoolean;
|
|
58
|
+
results: z.ZodLiteral<0>;
|
|
59
|
+
events: z.ZodNumber;
|
|
60
|
+
}, z.core.$strict>;
|
|
61
|
+
}, z.core.$strict>;
|
|
62
|
+
disposition: z.ZodObject<{
|
|
63
|
+
kind: z.ZodLiteral<"died_before_report">;
|
|
64
|
+
accounting: z.ZodLiteral<"unchanged">;
|
|
65
|
+
scope: z.ZodLiteral<"local operation close; no admission or approval">;
|
|
66
|
+
}, z.core.$strict>;
|
|
67
|
+
}, z.core.$strict>;
|
|
68
|
+
export type FreshReviewCloseManifest = z.infer<typeof freshReviewCloseManifestSchema>;
|
|
69
|
+
export interface FreshReviewCloseSelection {
|
|
70
|
+
target: string;
|
|
71
|
+
operationId: string;
|
|
72
|
+
}
|
|
73
|
+
export interface FreshReviewCloseIO {
|
|
74
|
+
inspectProcess?: (identity: z.infer<typeof processIdentitySchema>) => Promise<ProcessIdentityStatus>;
|
|
75
|
+
}
|
|
76
|
+
/** Read-only preview of a close; the only identity it introduces is the audit's own. */
|
|
77
|
+
export declare function previewFreshReviewClose(selection: FreshReviewCloseSelection, gitCommonDir: string, io?: FreshReviewCloseIO): Promise<FreshReviewCloseManifest>;
|
|
78
|
+
/** Where a close retains its manifest and the exact native bytes it rested on. */
|
|
79
|
+
export declare function freshReviewCloseAuditPath(commonDir: string, target: string, auditId: string): string;
|
|
80
|
+
export interface ApplyFreshReviewCloseOptions {
|
|
81
|
+
manifest: string;
|
|
82
|
+
manifestSha256: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Apply a reviewed manifest: under recovery ownership of the target, prove the
|
|
86
|
+
* same facts on the same bytes, retain them, then mark the operation terminal.
|
|
87
|
+
* Re-applying a completed close answers `already_closed` and changes nothing.
|
|
88
|
+
*/
|
|
89
|
+
export declare function applyFreshReviewClose(input: ApplyFreshReviewCloseOptions, gitCommonDir: string, io?: FreshReviewCloseIO): Promise<'closed' | 'already_closed'>;
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { readdir, realpath } from 'node:fs/promises';
|
|
3
|
+
import { join, resolve } from 'node:path';
|
|
4
|
+
import { isDeepStrictEqual } from 'node:util';
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import { checkpointPath } from '../dispatch/checkpoint.js';
|
|
7
|
+
import { prepareLockRoot } from '../evidence/original-run/lock-path.js';
|
|
8
|
+
import { serializeRecoveryDocument, syncDirectory, writeExclusiveBytes } from '../evidence/original-run/journal.js';
|
|
9
|
+
import { readStable } from '../telemetry/recovery/files.js';
|
|
10
|
+
import { convergeAttemptStatePath, loadConvergeAttemptState } from './attempt-budget.js';
|
|
11
|
+
import { closeDiedFreshReview, readFreshReviewOperation, reviewCycleDirectory } from './fresh-review.js';
|
|
12
|
+
import { ordinaryCheckpointNamespace } from './launch-guard.js';
|
|
13
|
+
import { inspectProcessIdentity, processIdentitySchema } from './process-identity.js';
|
|
14
|
+
import { convergeRunStatePath, loadConvergeRunState } from './run-state.js';
|
|
15
|
+
import { withRecoveryTarget } from './target-ownership.js';
|
|
16
|
+
/**
|
|
17
|
+
* An audited close of a fresh-review operation whose launch died before the
|
|
18
|
+
* council wrote anything (RCL-216).
|
|
19
|
+
*
|
|
20
|
+
* Such an operation stays `active` for good: `converge-gap` needs an original
|
|
21
|
+
* report and run that never existed, an ordinary round refuses while the
|
|
22
|
+
* operation is pending, and `--start-over` resumes it. The close proves, from
|
|
23
|
+
* the target's own native state, that nothing was produced: the operation is
|
|
24
|
+
* active, its cycle admitted no round, its last launch is still pending with
|
|
25
|
+
* no run, report or recovery, the exact process that claimed it is dead, and
|
|
26
|
+
* the launch's council journal holds no reviewer result. The preview pins all
|
|
27
|
+
* of that in a manifest; the apply re-proves it on the same bytes, retains
|
|
28
|
+
* them, and marks the operation terminal with a reference to the audit. No
|
|
29
|
+
* round, finding, verdict or attempt is created or released: the spent
|
|
30
|
+
* attempt stays spent, and the cycle's accounting becomes history for the
|
|
31
|
+
* next explicitly requested fresh review.
|
|
32
|
+
*/
|
|
33
|
+
const MAX_MANIFEST = 256 * 1024;
|
|
34
|
+
const digest = z.string().regex(/^[a-f0-9]{64}$/);
|
|
35
|
+
const sourceSchema = z.object({ path: z.string().min(1), sha256: digest, bytes: z.number().int().nonnegative().safe() }).strict();
|
|
36
|
+
export const freshReviewCloseManifestSchema = z.object({
|
|
37
|
+
kind: z.literal('rcl-fresh-review-close'),
|
|
38
|
+
version: z.literal(1),
|
|
39
|
+
auditId: z.string().uuid(),
|
|
40
|
+
createdAt: z.string().datetime(),
|
|
41
|
+
gitCommonDir: z.string().min(1),
|
|
42
|
+
target: z.string().min(1).max(200),
|
|
43
|
+
freshOperationId: z.string().uuid(),
|
|
44
|
+
cycleId: z.string().uuid(),
|
|
45
|
+
headSha: z.string().regex(/^[a-f0-9]{40}$/),
|
|
46
|
+
operation: sourceSchema,
|
|
47
|
+
run: sourceSchema,
|
|
48
|
+
attempts: sourceSchema,
|
|
49
|
+
launch: z.object({
|
|
50
|
+
attempt: z.number().int().positive().safe(),
|
|
51
|
+
round: z.number().int().positive().safe(),
|
|
52
|
+
startedAt: z.string().datetime(),
|
|
53
|
+
pid: z.number().int().positive().safe(),
|
|
54
|
+
processIdentity: processIdentitySchema,
|
|
55
|
+
}).strict(),
|
|
56
|
+
evidence: z.object({
|
|
57
|
+
process: z.literal('dead'),
|
|
58
|
+
admittedRounds: z.literal(0),
|
|
59
|
+
checkpoint: z.object({ path: z.string().min(1), present: z.boolean(), results: z.literal(0),
|
|
60
|
+
events: z.number().int().nonnegative().safe() }).strict(),
|
|
61
|
+
}).strict(),
|
|
62
|
+
disposition: z.object({ kind: z.literal('died_before_report'), accounting: z.literal('unchanged'),
|
|
63
|
+
scope: z.literal('local operation close; no admission or approval') }).strict(),
|
|
64
|
+
}).strict();
|
|
65
|
+
const fail = (code) => { throw new Error(code); };
|
|
66
|
+
const source = (path, snap) => ({ path, sha256: snap.sha256, bytes: snap.raw.length });
|
|
67
|
+
async function entries(path) {
|
|
68
|
+
try {
|
|
69
|
+
return (await readdir(path)).filter(name => !name.startsWith('.'));
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
if (error.code === 'ENOENT')
|
|
73
|
+
return undefined;
|
|
74
|
+
throw error;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/** Everything the close rests on, read from the target's current native files. */
|
|
78
|
+
async function observe(commonDir, selection, io) {
|
|
79
|
+
const { target, operationId } = selection;
|
|
80
|
+
const current = await readFreshReviewOperation(commonDir, target);
|
|
81
|
+
if (!current || current.operation.operationId !== operationId)
|
|
82
|
+
fail('fresh_close_operation_not_current');
|
|
83
|
+
const operation = current.operation;
|
|
84
|
+
if (operation.phase !== 'active' || !operation.receipt)
|
|
85
|
+
fail('fresh_close_operation_not_active');
|
|
86
|
+
const runPath = convergeRunStatePath(commonDir, target), attemptsPath = convergeAttemptStatePath(commonDir, target);
|
|
87
|
+
const runBytes = await readStable(runPath), attemptBytes = await readStable(attemptsPath);
|
|
88
|
+
const run = await loadConvergeRunState(commonDir, target), attempts = await loadConvergeAttemptState(commonDir, target);
|
|
89
|
+
if (!run || !attempts)
|
|
90
|
+
fail('fresh_close_state_missing');
|
|
91
|
+
if (run.cycle?.operationId !== operationId || attempts.cycle?.operationId !== operationId ||
|
|
92
|
+
run.cycle.id !== operation.receipt.id || !isDeepStrictEqual(run.cycle, attempts.cycle))
|
|
93
|
+
fail('fresh_close_cycle_mismatch');
|
|
94
|
+
if (run.rounds.length !== 0)
|
|
95
|
+
fail('fresh_close_round_admitted');
|
|
96
|
+
const launch = run.lastLaunch;
|
|
97
|
+
if (!launch || launch.status !== 'pending')
|
|
98
|
+
fail('fresh_close_launch_not_pending');
|
|
99
|
+
if (launch.runId || launch.reportJsonSha256 || launch.retainedOriginal || launch.pendingResume ||
|
|
100
|
+
launch.pendingRecovery || launch.recovery)
|
|
101
|
+
fail('fresh_close_launch_has_work');
|
|
102
|
+
if (launch.headSha !== operation.headSha)
|
|
103
|
+
fail('fresh_close_launch_head_mismatch');
|
|
104
|
+
if (!launch.processIdentity)
|
|
105
|
+
fail('fresh_close_process_unverifiable');
|
|
106
|
+
// The dead launch must hold the cycle's latest claim: a later attempt may
|
|
107
|
+
// have produced work this close would not see.
|
|
108
|
+
const claim = attempts.attempts.find(record => record.attempt === launch.attempt);
|
|
109
|
+
if (!claim || attempts.attemptsUsed !== launch.attempt)
|
|
110
|
+
fail('fresh_close_attempt_not_latest');
|
|
111
|
+
const status = await (io.inspectProcess ?? inspectProcessIdentity)(launch.processIdentity).catch(() => 'unverifiable');
|
|
112
|
+
if (status === 'alive')
|
|
113
|
+
fail('fresh_close_process_alive');
|
|
114
|
+
if (status !== 'dead')
|
|
115
|
+
fail('fresh_close_process_unverifiable');
|
|
116
|
+
// The council journals every reviewer result before anything is reported;
|
|
117
|
+
// an empty (or never created) journal is the proof that nothing was produced.
|
|
118
|
+
// Without the launch's packet binding there is no journal to inspect, and
|
|
119
|
+
// so no proof.
|
|
120
|
+
if (!launch.ordinaryInputs)
|
|
121
|
+
fail('fresh_close_journal_unknown');
|
|
122
|
+
const checkpoint = checkpointPath(commonDir, target, ordinaryCheckpointNamespace(launch.ordinaryInputs.packetSha256));
|
|
123
|
+
const results = await entries(join(checkpoint, 'results'));
|
|
124
|
+
const events = await entries(join(checkpoint, 'events'));
|
|
125
|
+
if (results && results.length)
|
|
126
|
+
fail('fresh_close_results_present');
|
|
127
|
+
return { operation, operationPath: current.path, operationBytes: await readStable(current.path, 64 * 1024),
|
|
128
|
+
runPath, runBytes, attemptsPath, attemptBytes, launch: launch,
|
|
129
|
+
checkpoint: { path: checkpoint, present: results !== undefined, results: 0, events: events?.length ?? 0 } };
|
|
130
|
+
}
|
|
131
|
+
/** Read-only preview of a close; the only identity it introduces is the audit's own. */
|
|
132
|
+
export async function previewFreshReviewClose(selection, gitCommonDir, io = {}) {
|
|
133
|
+
const parsed = z.object({ target: z.string().min(1).max(200).refine(value => value.trim() === value),
|
|
134
|
+
operationId: z.string().uuid() }).strict().safeParse(selection);
|
|
135
|
+
if (!parsed.success)
|
|
136
|
+
fail('invalid_fresh_close_selection');
|
|
137
|
+
const commonDir = await realpath(resolve(gitCommonDir));
|
|
138
|
+
const seen = await observe(commonDir, parsed.data, io);
|
|
139
|
+
return freshReviewCloseManifestSchema.parse({
|
|
140
|
+
kind: 'rcl-fresh-review-close', version: 1, auditId: randomUUID(), createdAt: new Date().toISOString(),
|
|
141
|
+
gitCommonDir: commonDir, target: parsed.data.target, freshOperationId: seen.operation.operationId,
|
|
142
|
+
cycleId: seen.operation.receipt.id, headSha: seen.operation.headSha,
|
|
143
|
+
operation: source(seen.operationPath, seen.operationBytes), run: source(seen.runPath, seen.runBytes),
|
|
144
|
+
attempts: source(seen.attemptsPath, seen.attemptBytes),
|
|
145
|
+
launch: { attempt: seen.launch.attempt, round: seen.launch.round, startedAt: seen.launch.startedAt,
|
|
146
|
+
pid: seen.launch.pid, processIdentity: seen.launch.processIdentity },
|
|
147
|
+
evidence: { process: 'dead', admittedRounds: 0, checkpoint: seen.checkpoint },
|
|
148
|
+
disposition: { kind: 'died_before_report', accounting: 'unchanged', scope: 'local operation close; no admission or approval' },
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
/** Where a close retains its manifest and the exact native bytes it rested on. */
|
|
152
|
+
export function freshReviewCloseAuditPath(commonDir, target, auditId) {
|
|
153
|
+
if (!z.string().uuid().safeParse(auditId).success)
|
|
154
|
+
fail('invalid_fresh_close_audit');
|
|
155
|
+
return join(reviewCycleDirectory(commonDir, target), 'closures', auditId);
|
|
156
|
+
}
|
|
157
|
+
async function retain(path, bytes) {
|
|
158
|
+
try {
|
|
159
|
+
await writeExclusiveBytes(path, bytes);
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
if (error.code !== 'EEXIST')
|
|
163
|
+
throw error;
|
|
164
|
+
if (!(await readStable(path, MAX_MANIFEST)).raw.equals(bytes))
|
|
165
|
+
fail('fresh_close_retained_conflict');
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Apply a reviewed manifest: under recovery ownership of the target, prove the
|
|
170
|
+
* same facts on the same bytes, retain them, then mark the operation terminal.
|
|
171
|
+
* Re-applying a completed close answers `already_closed` and changes nothing.
|
|
172
|
+
*/
|
|
173
|
+
export async function applyFreshReviewClose(input, gitCommonDir, io = {}) {
|
|
174
|
+
const pinned = z.object({ manifest: z.string().min(1), manifestSha256: digest }).strict().safeParse(input);
|
|
175
|
+
if (!pinned.success)
|
|
176
|
+
fail('invalid_fresh_close_apply_selection');
|
|
177
|
+
const original = await readStable(pinned.data.manifest, MAX_MANIFEST);
|
|
178
|
+
if (original.sha256 !== pinned.data.manifestSha256)
|
|
179
|
+
fail('fresh_close_manifest_digest_mismatch');
|
|
180
|
+
let manifest;
|
|
181
|
+
try {
|
|
182
|
+
manifest = freshReviewCloseManifestSchema.parse(JSON.parse(original.text));
|
|
183
|
+
}
|
|
184
|
+
catch {
|
|
185
|
+
return fail('invalid_fresh_close_manifest');
|
|
186
|
+
}
|
|
187
|
+
const commonDir = await realpath(resolve(gitCommonDir));
|
|
188
|
+
if (commonDir !== manifest.gitCommonDir)
|
|
189
|
+
fail('fresh_close_repository_changed');
|
|
190
|
+
const closure = { kind: 'died_before_report', auditId: manifest.auditId, manifestSha256: original.sha256 };
|
|
191
|
+
return withRecoveryTarget(commonDir, manifest.target, async (ownership) => {
|
|
192
|
+
const current = await readFreshReviewOperation(commonDir, manifest.target);
|
|
193
|
+
if (current?.operation.operationId === manifest.freshOperationId && current.operation.phase === 'terminal' &&
|
|
194
|
+
isDeepStrictEqual(current.operation.closure, closure))
|
|
195
|
+
return 'already_closed';
|
|
196
|
+
const seen = await observe(commonDir, { target: manifest.target, operationId: manifest.freshOperationId }, io);
|
|
197
|
+
const now = { operation: source(seen.operationPath, seen.operationBytes), run: source(seen.runPath, seen.runBytes),
|
|
198
|
+
attempts: source(seen.attemptsPath, seen.attemptBytes) };
|
|
199
|
+
if (!isDeepStrictEqual(now, { operation: manifest.operation, run: manifest.run, attempts: manifest.attempts }) ||
|
|
200
|
+
seen.operation.receipt.id !== manifest.cycleId || !isDeepStrictEqual(seen.checkpoint, manifest.evidence.checkpoint) ||
|
|
201
|
+
!isDeepStrictEqual(seen.launch.processIdentity, manifest.launch.processIdentity))
|
|
202
|
+
fail('fresh_close_state_changed');
|
|
203
|
+
const audit = freshReviewCloseAuditPath(commonDir, manifest.target, manifest.auditId);
|
|
204
|
+
await prepareLockRoot(join(audit, '..'));
|
|
205
|
+
await prepareLockRoot(audit);
|
|
206
|
+
await retain(join(audit, 'manifest.json'), original.raw);
|
|
207
|
+
await retain(join(audit, 'operation-before.json'), seen.operationBytes.raw);
|
|
208
|
+
await retain(join(audit, 'run-before.json'), seen.runBytes.raw);
|
|
209
|
+
await retain(join(audit, 'attempts-before.json'), seen.attemptBytes.raw);
|
|
210
|
+
await syncDirectory(audit);
|
|
211
|
+
// Nothing may have moved while the evidence was retained.
|
|
212
|
+
if ((await readStable(seen.runPath)).sha256 !== manifest.run.sha256 ||
|
|
213
|
+
(await readStable(seen.attemptsPath)).sha256 !== manifest.attempts.sha256)
|
|
214
|
+
fail('fresh_close_state_changed');
|
|
215
|
+
const result = await closeDiedFreshReview(commonDir, manifest.target, manifest.freshOperationId, manifest.operation.sha256, closure, ownership);
|
|
216
|
+
await retain(join(audit, 'complete.json'), Buffer.from(serializeRecoveryDocument({ version: 1,
|
|
217
|
+
auditId: manifest.auditId, manifestSha256: original.sha256, freshOperationId: manifest.freshOperationId,
|
|
218
|
+
cycleId: manifest.cycleId, phase: 'terminal' })));
|
|
219
|
+
return result;
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=fresh-review-close.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fresh-review-close.js","sourceRoot":"","sources":["../../src/converge/fresh-review-close.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,42 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
1
2
|
import { type NativeTargetOwnership } from './target-ownership.js';
|
|
2
3
|
import { type NativeReviewCycle, type ReviewCycleRemote } from './review-cycle.js';
|
|
4
|
+
declare const operationSchema: z.ZodObject<{
|
|
5
|
+
version: z.ZodLiteral<1>;
|
|
6
|
+
target: z.ZodString;
|
|
7
|
+
operationId: z.ZodString;
|
|
8
|
+
repo: z.ZodString;
|
|
9
|
+
prNumber: z.ZodNumber;
|
|
10
|
+
url: z.ZodString;
|
|
11
|
+
headSha: z.ZodString;
|
|
12
|
+
previousCycleId: z.ZodNullable<z.ZodString>;
|
|
13
|
+
attemptCap: z.ZodNumber;
|
|
14
|
+
roundCap: z.ZodNumber;
|
|
15
|
+
archiveSha256: z.ZodString;
|
|
16
|
+
phase: z.ZodEnum<{
|
|
17
|
+
terminal: "terminal";
|
|
18
|
+
rejected: "rejected";
|
|
19
|
+
active: "active";
|
|
20
|
+
recorded: "recorded";
|
|
21
|
+
prepared: "prepared";
|
|
22
|
+
}>;
|
|
23
|
+
rejection: z.ZodOptional<z.ZodString>;
|
|
24
|
+
receipt: z.ZodOptional<z.ZodObject<{
|
|
25
|
+
id: z.ZodString;
|
|
26
|
+
operation_id: z.ZodString;
|
|
27
|
+
previous_cycle_id: z.ZodNullable<z.ZodString>;
|
|
28
|
+
head_sha: z.ZodString;
|
|
29
|
+
inserted_at: z.ZodString;
|
|
30
|
+
}, z.core.$strict>>;
|
|
31
|
+
closure: z.ZodOptional<z.ZodObject<{
|
|
32
|
+
kind: z.ZodLiteral<"died_before_report">;
|
|
33
|
+
auditId: z.ZodString;
|
|
34
|
+
manifestSha256: z.ZodString;
|
|
35
|
+
}, z.core.$strict>>;
|
|
36
|
+
}, z.core.$strict>;
|
|
37
|
+
type Operation = z.infer<typeof operationSchema>;
|
|
38
|
+
export type FreshReviewOperationRecord = Operation;
|
|
39
|
+
export type FreshReviewClosure = NonNullable<Operation['closure']>;
|
|
3
40
|
export interface FreshReviewOptions {
|
|
4
41
|
gitCommonDir: string;
|
|
5
42
|
target: string;
|
|
@@ -14,6 +51,12 @@ export interface FreshReviewOperation {
|
|
|
14
51
|
operationId: string;
|
|
15
52
|
}
|
|
16
53
|
export declare function reviewCycleDirectory(common: string, target: string): string;
|
|
54
|
+
/** The target's current fresh-review operation and its exact bytes, if any. */
|
|
55
|
+
export declare function readFreshReviewOperation(common: string, target: string): Promise<{
|
|
56
|
+
operation: Operation;
|
|
57
|
+
path: string;
|
|
58
|
+
sha256: string;
|
|
59
|
+
} | undefined>;
|
|
17
60
|
/** Capture the request generation before waiting for another launcher. */
|
|
18
61
|
export declare function freshReviewRequestVersion(common: string, target: string): Promise<string | undefined>;
|
|
19
62
|
/** A durably completed first dispatch needs no new provider/output preflight. */
|
|
@@ -28,6 +71,14 @@ export declare function verifyReviewCycle(common: string, target: string, cycle:
|
|
|
28
71
|
export declare function prepareFreshReview(options: FreshReviewOptions): Promise<FreshReviewOperation>;
|
|
29
72
|
/** Mark a returned dispatch outcome terminal; a later explicit request may create another cycle. */
|
|
30
73
|
export declare function finishFreshReview(common: string, target: string, operationId: string, ownership: NativeTargetOwnership): Promise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* Close an active operation whose launch died before any report, as one
|
|
76
|
+
* compare-and-swap on its exact bytes: it becomes terminal and names the audit
|
|
77
|
+
* that justified it. Nothing else changes: no round, finding, verdict or
|
|
78
|
+
* attempt is created or released, and the cycle's spending stays history for
|
|
79
|
+
* the next explicitly requested fresh review (RCL-216).
|
|
80
|
+
*/
|
|
81
|
+
export declare function closeDiedFreshReview(common: string, target: string, operationId: string, expectedSha256: string, closure: FreshReviewClosure, ownership: NativeTargetOwnership): Promise<'closed' | 'already_closed'>;
|
|
31
82
|
/** Neither a missing partner nor a legacy ledger may replenish a cycle's budget. */
|
|
32
83
|
export declare function assertReviewCyclePair(common: string, target: string, expected: NativeReviewCycle | undefined): Promise<void>;
|
|
33
84
|
/** Default retained outputs make the explicit command usable without bookkeeping flags. */
|
|
@@ -35,3 +86,4 @@ export declare function freshReviewOutputPaths(common: string): Promise<{
|
|
|
35
86
|
jsonFile: string;
|
|
36
87
|
markdown: string;
|
|
37
88
|
}>;
|
|
89
|
+
export {};
|
|
@@ -30,6 +30,9 @@ const operationSchema = z.object({
|
|
|
30
30
|
phase: z.enum(['prepared', 'recorded', 'active', 'rejected', 'terminal']),
|
|
31
31
|
rejection: z.string().optional(),
|
|
32
32
|
receipt: reviewCycleReceiptSchema.optional(),
|
|
33
|
+
/** An audited close of an operation whose launch died before any report (RCL-216). */
|
|
34
|
+
closure: z.object({ kind: z.literal('died_before_report'), auditId: z.string().uuid(),
|
|
35
|
+
manifestSha256: z.string().regex(/^[a-f0-9]{64}$/) }).strict().optional(),
|
|
33
36
|
}).strict();
|
|
34
37
|
export function reviewCycleDirectory(common, target) {
|
|
35
38
|
return join(common, 'rcl-review-cycles', basename(convergeRunStatePath(common, target), '.json'));
|
|
@@ -97,6 +100,18 @@ async function currentOperation(directory, target) {
|
|
|
97
100
|
throw new Error('fresh_review_operation_mismatch');
|
|
98
101
|
return operation;
|
|
99
102
|
}
|
|
103
|
+
/** The target's current fresh-review operation and its exact bytes, if any. */
|
|
104
|
+
export async function readFreshReviewOperation(common, target) {
|
|
105
|
+
const directory = reviewCycleDirectory(common, target);
|
|
106
|
+
const operation = await currentOperation(directory, target);
|
|
107
|
+
if (!operation)
|
|
108
|
+
return undefined;
|
|
109
|
+
const path = join(directory, `${operation.operationId}.json`);
|
|
110
|
+
const bytes = (await readStable(path, 64 * 1024)).raw;
|
|
111
|
+
if (!isDeepStrictEqual(operationSchema.parse(JSON.parse(bytes.toString())), operation))
|
|
112
|
+
throw new Error('fresh_review_operation_changed');
|
|
113
|
+
return { operation, path, sha256: hash(bytes) };
|
|
114
|
+
}
|
|
100
115
|
/** Capture the request generation before waiting for another launcher. */
|
|
101
116
|
export async function freshReviewRequestVersion(common, target) {
|
|
102
117
|
const operation = await currentOperation(reviewCycleDirectory(common, target), target);
|
|
@@ -303,6 +318,26 @@ export async function finishFreshReview(common, target, operationId, ownership)
|
|
|
303
318
|
throw new Error('fresh_review_operation_changed');
|
|
304
319
|
await replaceJson(join(directory, `${operationId}.json`), { ...operation, phase: 'terminal' });
|
|
305
320
|
}
|
|
321
|
+
/**
|
|
322
|
+
* Close an active operation whose launch died before any report, as one
|
|
323
|
+
* compare-and-swap on its exact bytes: it becomes terminal and names the audit
|
|
324
|
+
* that justified it. Nothing else changes: no round, finding, verdict or
|
|
325
|
+
* attempt is created or released, and the cycle's spending stays history for
|
|
326
|
+
* the next explicitly requested fresh review (RCL-216).
|
|
327
|
+
*/
|
|
328
|
+
export async function closeDiedFreshReview(common, target, operationId, expectedSha256, closure, ownership) {
|
|
329
|
+
common = await ownedNativeTargetCommonDir(ownership, common, target);
|
|
330
|
+
const directory = reviewCycleDirectory(common, target);
|
|
331
|
+
const current = await readFreshReviewOperation(common, target);
|
|
332
|
+
if (!current || current.operation.operationId !== operationId)
|
|
333
|
+
throw new Error('fresh_review_operation_changed');
|
|
334
|
+
if (current.operation.phase === 'terminal' && isDeepStrictEqual(current.operation.closure, closure))
|
|
335
|
+
return 'already_closed';
|
|
336
|
+
if (current.operation.phase !== 'active' || current.sha256 !== expectedSha256)
|
|
337
|
+
throw new Error('fresh_review_operation_changed');
|
|
338
|
+
await replaceJson(join(directory, `${operationId}.json`), { ...current.operation, phase: 'terminal', closure });
|
|
339
|
+
return 'closed';
|
|
340
|
+
}
|
|
306
341
|
/** Neither a missing partner nor a legacy ledger may replenish a cycle's budget. */
|
|
307
342
|
export async function assertReviewCyclePair(common, target, expected) {
|
|
308
343
|
const run = await loadConvergeRunState(common, target);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fresh-review.js","sourceRoot":"","sources":["../../src/converge/fresh-review.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fresh-review.js","sourceRoot":"","sources":["../../src/converge/fresh-review.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,7 +61,9 @@ function nextRound(state) {
|
|
|
61
61
|
}
|
|
62
62
|
return state.rounds.reduce((latest, entry) => Math.max(latest, entry.round), 0) + 1;
|
|
63
63
|
}
|
|
64
|
-
async function requireLaunch(options, state, attemptsUsed, recordedLaunch = state.lastLaunch
|
|
64
|
+
async function requireLaunch(options, state, attemptsUsed, recordedLaunch = state.lastLaunch,
|
|
65
|
+
/** Round cap the native state was persisted with; recovery receipts are issued against it, not a requested cap. */
|
|
66
|
+
persistedRoundCap = state.roundCap) {
|
|
65
67
|
const intent = options.intent ?? 'review';
|
|
66
68
|
if (!['review', 'stop-upstream', 'stop-review', 'retry-delivery'].includes(intent)) {
|
|
67
69
|
refuse('invalid_intent', 'Choose review, stop-upstream, stop-review, or retry-delivery.');
|
|
@@ -146,12 +148,11 @@ async function requireLaunch(options, state, attemptsUsed, recordedLaunch = stat
|
|
|
146
148
|
}
|
|
147
149
|
if (previous.status !== 'completed') {
|
|
148
150
|
if (state.cycle && ((previous.status === 'pending' && !previous.runId) || previous.pendingRecovery)) {
|
|
149
|
-
if (!await verifyCyclePendingFinalization(options.gitCommonDir, state, previous)) {
|
|
151
|
+
if (!await verifyCyclePendingFinalization(options.gitCommonDir, state, previous, persistedRoundCap)) {
|
|
150
152
|
refuse('cycle_pending_recovery_required', 'The previous cycle dispatch is not terminal. Authenticate and finalize its pending recovery before launching a successor.');
|
|
151
153
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
}
|
|
154
|
+
// The recovered dispatch is unknown and its results were never admitted, so an
|
|
155
|
+
// explicit bounded retry may run a fresh attempt at the same exact inputs.
|
|
155
156
|
if (!options.retryReason) {
|
|
156
157
|
refuse('dispatch_unknown', 'The recovered dispatch remains spent; supply a bounded retry reason for its successor.');
|
|
157
158
|
}
|
|
@@ -435,6 +436,7 @@ async function guardReviewLaunchOwned(options, ownership) {
|
|
|
435
436
|
throw error;
|
|
436
437
|
refuse('stale_report_audit_invalid', 'Retained stale-report evidence is missing or inconsistent; no attempt was claimed.');
|
|
437
438
|
}
|
|
439
|
+
const persistedRoundCap = state.roundCap;
|
|
438
440
|
if (options.maxRounds !== undefined) {
|
|
439
441
|
const cap = validateRoundCap(options.maxRounds);
|
|
440
442
|
if (recovered && cap !== state.roundCap) {
|
|
@@ -464,7 +466,7 @@ async function guardReviewLaunchOwned(options, ownership) {
|
|
|
464
466
|
refuse('fresh_review_superseded', 'This review cycle has been replaced.');
|
|
465
467
|
}
|
|
466
468
|
const guardedAttemptsUsed = preclaimed ? attempts.attemptsUsed - 1 : attempts?.attemptsUsed ?? 0;
|
|
467
|
-
const { round, retryProof, boundFixRecoverySource } = await requireLaunch(options, state, guardedAttemptsUsed, recovered ? attempts?.lastLaunch : state.lastLaunch);
|
|
469
|
+
const { round, retryProof, boundFixRecoverySource } = await requireLaunch(options, state, guardedAttemptsUsed, recovered ? attempts?.lastLaunch : state.lastLaunch, persistedRoundCap);
|
|
468
470
|
const cap = options.maxAttempts ?? attempts?.cap;
|
|
469
471
|
if (!preclaimed && cap !== undefined && attempts && attempts.attemptsUsed >= cap) {
|
|
470
472
|
throw new ConvergeAttemptBudgetExceededError(options.target, attempts.attemptsUsed, cap);
|