review-council 4.1.5 → 4.1.6

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.
@@ -101,7 +101,7 @@ function requireLaunch(options, state, attemptsUsed) {
101
101
  ? 'A real fix needs changed review inputs and a fresh resulting head.'
102
102
  : 'These inputs were already reviewed; upstream tip movement alone needs no new council.');
103
103
  }
104
- if ((resolution?.fixedThisRound ?? 0) > 0 && previous.headSha === options.headSha) {
104
+ if (healthy && (resolution?.fixedThisRound ?? 0) > 0 && previous.headSha === options.headSha) {
105
105
  refuse('fix_head_unchanged', 'Commit and push the real fix before reviewing its resulting head.');
106
106
  }
107
107
  if ((previous.hardFailure || !healthy) && !options.retryReason) {
@@ -1 +1 @@
1
- {"version":3,"file":"launch-guard.js","sourceRoot":"","sources":["../../src/converge/launch-guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"launch-guard.js","sourceRoot":"","sources":["../../src/converge/launch-guard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /** Successful blocking-reviewer policy shared by dispatch and admission. */
2
+ export interface QuorumPolicy {
3
+ readonly version: 1;
4
+ readonly fraction: number;
5
+ readonly seatCount: number;
6
+ readonly minimumSuccessful: number;
7
+ }
8
+ /**
9
+ * Freeze the minimum for the original blocking roster. A stricter supported
10
+ * fraction raises the required successes; 1 requires the entire roster.
11
+ * Fewer than two seats can never produce conclusive reviewer health.
12
+ */
13
+ export declare function resolveQuorumPolicy(seatCount: number, fraction?: number): QuorumPolicy;
14
+ /** Count only distinct, complete, durably accepted blocking seats. */
15
+ export declare function hasSuccessfulQuorum(policy: QuorumPolicy, successfulSeats: number): boolean;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Freeze the minimum for the original blocking roster. A stricter supported
3
+ * fraction raises the required successes; 1 requires the entire roster.
4
+ * Fewer than two seats can never produce conclusive reviewer health.
5
+ */
6
+ export function resolveQuorumPolicy(seatCount, fraction = 2 / 3) {
7
+ if (!Number.isSafeInteger(seatCount) || seatCount < 0) {
8
+ throw new Error('Quorum seat count must be a nonnegative safe integer');
9
+ }
10
+ if (!Number.isFinite(fraction) || fraction < 2 / 3 || fraction > 1) {
11
+ throw new Error('Quorum fraction must be between 2/3 and 1');
12
+ }
13
+ // Integer arithmetic preserves the authoritative floor without overflowing
14
+ // 2 * seatCount.
15
+ const floor = Math.floor(seatCount / 3) * 2 + Math.ceil((seatCount % 3) * 2 / 3);
16
+ // Start with the usual product, then decide boundary cases against the
17
+ // public ratio contract. This corrects multiplication noise such as
18
+ // 0.8 * 35 without weakening the next representable value above 2/3.
19
+ let rounded = Math.ceil(fraction * seatCount);
20
+ while (rounded > 0 && (rounded - 1) / seatCount >= fraction)
21
+ rounded--;
22
+ while (rounded < seatCount && rounded / seatCount < fraction)
23
+ rounded++;
24
+ return { version: 1, fraction, seatCount, minimumSuccessful: Math.max(2, floor, rounded) };
25
+ }
26
+ /** Count only distinct, complete, durably accepted blocking seats. */
27
+ export function hasSuccessfulQuorum(policy, successfulSeats) {
28
+ if (!Number.isSafeInteger(successfulSeats) || successfulSeats < 0 || successfulSeats > policy.seatCount) {
29
+ throw new Error('Successful seat count must be an integer within the frozen roster');
30
+ }
31
+ return policy.seatCount >= 2 && successfulSeats >= policy.minimumSuccessful;
32
+ }
33
+ //# sourceMappingURL=quorum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quorum.js","sourceRoot":"","sources":["../../src/dispatch/quorum.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiB,EAAE,QAAQ,GAAG,CAAC,GAAG,CAAC;IACrE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,2EAA2E;IAC3E,iBAAiB;IACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACjF,uEAAuE;IACvE,oEAAoE;IACpE,qEAAqE;IACrE,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;IAC9C,OAAO,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,SAAS,IAAI,QAAQ;QAAE,OAAO,EAAE,CAAC;IACvE,OAAO,OAAO,GAAG,SAAS,IAAI,OAAO,GAAG,SAAS,GAAG,QAAQ;QAAE,OAAO,EAAE,CAAC;IACxE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;AAC7F,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,mBAAmB,CAAC,MAAoB,EAAE,eAAuB;IAC/E,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,eAAe,GAAG,CAAC,IAAI,eAAe,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACxG,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,MAAM,CAAC,SAAS,IAAI,CAAC,IAAI,eAAe,IAAI,MAAM,CAAC,iBAAiB,CAAC;AAC9E,CAAC"}
@@ -3,26 +3,66 @@ import type { ReviewAssignment } from '../roles/types.js';
3
3
  import type { BuiltPrompt } from '../prepare/prompt-builder.js';
4
4
  import type { ReviewAdapter } from './adapter.js';
5
5
  import type { ReasoningEffort } from '../config/schema.js';
6
+ /** A successful cell read from a durably validated, exact-input checkpoint. */
7
+ export interface RetainedReview {
8
+ callIndex: number;
9
+ callIdentity: string;
10
+ review: ModelReview;
11
+ }
12
+ /**
13
+ * Local matrix binding, supplementary to the checkpoint's complete plan
14
+ * validation. Original index and exact prompts prevent cross-chunk reuse.
15
+ */
16
+ export declare function reviewCallIdentity(assignment: ReviewAssignment, prompt: BuiltPrompt, originalIndex: number, seatId?: string): string;
6
17
  export interface RunnerOptions {
7
18
  timeoutMs: number;
8
19
  maxRetries: number;
9
20
  concurrency: number;
10
21
  verbose?: boolean;
22
+ /** Progress notification receives an isolated copy after durable acceptance. */
11
23
  onReviewComplete?: (review: ModelReview) => void;
24
+ /** Full-matrix original seat instances; omission groups provider/model/role. */
25
+ seatIds?: readonly string[];
26
+ /** Caller must first validate the checkpoint's entire frozen plan and bytes. */
27
+ retainedReviews?: readonly RetainedReview[];
28
+ /** Unique original indices in dispatch priority order; defaults to all missing cells. */
29
+ eligibleCallIndices?: readonly number[];
30
+ /** Persist intent/check budget; false skips this cell, while rejection stops the run. */
31
+ beforeReview?: (callIndex: number, signal: AbortSignal) => Promise<void | false>;
32
+ /** Operation deadline/cancellation, independent of quorum and adapter cooperation. */
33
+ signal?: AbortSignal;
34
+ /**
35
+ * Audit-only raw results arriving after closure. Receives an isolated copy;
36
+ * never changes returned results or health. The caller owns persistence and
37
+ * draining started audit writes; this runner cannot await a late provider.
38
+ * An error sink is required when this hook is supplied.
39
+ */
40
+ auditLateReview?: (review: ModelReview, callIndex: number) => void | Promise<void>;
41
+ /** Must report audit persistence failure without throwing or changing the report. */
42
+ onLateAuditError?: (error: unknown, callIndex: number) => void;
43
+ /**
44
+ * Durable acceptance boundary, serialized in arrival order. The index names
45
+ * the cell in the complete supplied assignment/prompt matrix. Called for
46
+ * every dispatched terminal result, including in-flight cancellations, before
47
+ * progress or success counting. Retained/unstarted/ineligible placeholders
48
+ * bypass this hook: they do not represent newly paid calls. Receives an isolated copy;
49
+ * rejection stops dispatch, aborts remaining calls and rejects the run.
50
+ * The caller owns bounded storage I/O and frozen checkpoint identity.
51
+ */
52
+ acceptReview?: (review: ModelReview, callIndex: number) => Promise<void>;
12
53
  /** Reasoning budget for providers that support it; defaults to 'medium'. */
13
54
  reasoningEffort?: ReasoningEffort;
14
55
  /** Test seam / config-key wiring; defaults to the builtin providers. */
15
56
  adapterFactory?: (provider: string) => ReviewAdapter;
16
57
  /**
17
- * Quorum round closure (RCL-26): once `fraction` of planned calls have
18
- * completed, outstanding calls are canceled and recorded as such — the
19
- * round stops waiting for stragglers. Calls from `coreModels` are never
20
- * canceled: the round always waits for the blocking council itself, so
21
- * wall-clock ≤ max(time to quorum, slowest core-model call). A fraction
22
- * of 1 (or omitting the option) disables early closure.
58
+ * Successful complete-seat quorum over the full supplied blocking matrix.
59
+ * Seats are provider/model/role tuples; all their expected chunks must
60
+ * succeed. At quorum cancel every outstanding call, including core models,
61
+ * without waiting for noncooperative adapters. Omission keeps wait-for-all.
62
+ * coreModels is accepted for source compatibility but grants no exemption.
23
63
  */
24
64
  quorum?: {
25
- fraction: number;
65
+ fraction?: number;
26
66
  coreModels?: readonly string[];
27
67
  };
28
68
  }
@@ -1,8 +1,23 @@
1
+ import { createHash } from 'node:crypto';
1
2
  import { AnthropicAdapter } from './anthropic.js';
2
3
  import { OpenAIAdapter } from './openai.js';
3
4
  import { GoogleAdapter } from './google.js';
4
5
  import { OpenAICompatAdapter } from './openai-compat.js';
5
6
  import { DEFAULT_REASONING_EFFORT } from '../config/defaults.js';
7
+ import { hasSuccessfulQuorum, resolveQuorumPolicy } from './quorum.js';
8
+ /**
9
+ * Local matrix binding, supplementary to the checkpoint's complete plan
10
+ * validation. Original index and exact prompts prevent cross-chunk reuse.
11
+ */
12
+ export function reviewCallIdentity(assignment, prompt, originalIndex, seatId) {
13
+ if (!Number.isSafeInteger(originalIndex) || originalIndex < 0)
14
+ throw new Error('Invalid original call index');
15
+ const seat = seatId ?? JSON.stringify([assignment.provider, assignment.model, assignment.role.name]);
16
+ return createHash('sha256').update(JSON.stringify([
17
+ 1, originalIndex, seat, assignment.provider, assignment.model, assignment.role.name,
18
+ prompt.systemPrompt, prompt.userPrompt,
19
+ ])).digest('hex');
20
+ }
6
21
  export function defaultAdapterFactory(provider, reasoningEffort = DEFAULT_REASONING_EFFORT) {
7
22
  switch (provider) {
8
23
  case 'anthropic':
@@ -33,6 +48,12 @@ export function defaultAdapterFactory(provider, reasoningEffort = DEFAULT_REASON
33
48
  }
34
49
  }
35
50
  export async function runReviews(assignments, prompts, options) {
51
+ if (!Number.isSafeInteger(options.concurrency) || options.concurrency < 1) {
52
+ throw new Error('Runner concurrency must be a positive safe integer');
53
+ }
54
+ if (!Number.isFinite(options.timeoutMs) || options.timeoutMs <= 0 || options.timeoutMs > 2_147_483_647) {
55
+ throw new Error('Runner timeout must be positive and within the supported timer range');
56
+ }
36
57
  if (assignments.length !== prompts.length) {
37
58
  throw new Error('assignments and prompts arrays must have same length');
38
59
  }
@@ -55,105 +76,244 @@ export async function runReviews(assignments, prompts, options) {
55
76
  const adapters = new Map();
56
77
  const results = new Array(calls.length);
57
78
  let nextIndex = 0;
58
- // Quorum round closure (RCL-26). A call counts toward the quorum when it
59
- // settles for any reason except cancellation — a timeout completes at the
60
- // cap just like it does on the wall-clock. Core-model calls are exempt
61
- // from cancellation, so the round still waits for the blocking council.
62
- const planned = calls.length;
63
- // The epsilon absorbs float noise so fraction*planned that is
64
- // mathematically an integer (e.g. 2/3 of 6) never ceils one call too high.
65
- const quorumThreshold = options.quorum && options.quorum.fraction < 1
66
- ? Math.min(planned, Math.max(1, Math.ceil(options.quorum.fraction * planned - 1e-9)))
67
- : Infinity;
68
- const coreModels = new Set(options.quorum?.coreModels ?? []);
69
- let completedCount = 0;
70
- let roundClosed = false;
71
- const onRoundClosed = [];
72
- function noteCompletion() {
73
- completedCount++;
74
- if (!roundClosed && completedCount >= quorumThreshold) {
75
- roundClosed = true;
76
- for (const cancel of onRoundClosed)
77
- cancel();
79
+ if (options.seatIds !== undefined &&
80
+ (!Array.isArray(options.seatIds) || options.seatIds.length !== calls.length ||
81
+ calls.some((_call, index) => typeof options.seatIds[index] !== 'string' || options.seatIds[index].trim().length === 0))) {
82
+ throw new Error('Invalid seat ID matrix');
83
+ }
84
+ const seatKeys = calls.map((call, index) => options.seatIds?.[index] ?? JSON.stringify([call.provider, call.model, call.role]));
85
+ const expected = new Map();
86
+ const seatIdentities = new Map();
87
+ for (const [index, key] of seatKeys.entries()) {
88
+ if (typeof key !== 'string' || key.trim().length === 0)
89
+ throw new Error('Invalid empty seat ID');
90
+ const call = calls[index];
91
+ const identity = JSON.stringify([call.provider, call.model, call.role]);
92
+ if (seatIdentities.has(key) && seatIdentities.get(key) !== identity)
93
+ throw new Error('Inconsistent original seat identity');
94
+ seatIdentities.set(key, identity);
95
+ expected.set(key, (expected.get(key) ?? 0) + 1);
96
+ }
97
+ const policy = options.quorum ? resolveQuorumPolicy(expected.size, options.quorum.fraction) : undefined;
98
+ const successfulChunks = new Map();
99
+ let successfulSeats = 0;
100
+ function countSuccess(index) {
101
+ const key = seatKeys[index];
102
+ const count = (successfulChunks.get(key) ?? 0) + 1;
103
+ successfulChunks.set(key, count);
104
+ if (count === expected.get(key))
105
+ successfulSeats++;
106
+ }
107
+ function matches(index, review) {
108
+ const call = calls[index];
109
+ return review?.model === call.model && review.role === call.role && review.provider === call.provider;
110
+ }
111
+ function validIndex(index) {
112
+ return Number.isSafeInteger(index) && index >= 0 && index < calls.length;
113
+ }
114
+ const retained = new Set();
115
+ for (const entry of options.retainedReviews ?? []) {
116
+ const index = entry.callIndex;
117
+ if (!validIndex(index) || retained.has(index) || !matches(index, entry.review) ||
118
+ entry.review.status !== 'success' || entry.review.async === true ||
119
+ entry.callIdentity !== reviewCallIdentity(assignments[index], prompts[index], index, options.seatIds?.[index])) {
120
+ throw new Error('Invalid retained review identity, chunk, status or duplicate index');
78
121
  }
122
+ retained.add(index);
123
+ results[index] = entry.review;
124
+ countSuccess(index);
125
+ }
126
+ // Set iteration retains planner priority without renumbering original cells.
127
+ const eligible = new Set();
128
+ for (const index of options.eligibleCallIndices ?? calls.map((_call, index) => index).filter(index => !retained.has(index))) {
129
+ if (!validIndex(index) || retained.has(index) || eligible.has(index))
130
+ throw new Error('Invalid eligible call index');
131
+ eligible.add(index);
132
+ }
133
+ if (options.auditLateReview && !options.onLateAuditError)
134
+ throw new Error('Late review audit requires an error sink');
135
+ let closed = policy && hasSuccessfulQuorum(policy, successfulSeats) ? 'quorum' : undefined;
136
+ let failure;
137
+ let acceptance = Promise.resolve();
138
+ const dispatched = new Set();
139
+ const intended = new Set();
140
+ const cancelOutstanding = new Set();
141
+ function cancelCalls() { for (const cancel of cancelOutstanding)
142
+ cancel(); }
143
+ function fail(error) { failure ??= { error }; cancelCalls(); }
144
+ function abort() { closed ??= 'signal'; cancelCalls(); }
145
+ function stopped() { return closed !== undefined || failure !== undefined; }
146
+ function isAbortError(error) {
147
+ return typeof error === 'object' && error !== null && 'name' in error && error.name === 'AbortError';
79
148
  }
80
149
  function canceledReview(call, elapsedMs, detail) {
81
- return {
82
- model: call.model,
83
- role: call.role,
84
- provider: call.provider,
85
- findings: [],
86
- durationMs: elapsedMs,
87
- status: 'canceled',
88
- error: `Canceled at quorum round closure ${detail}`,
89
- };
150
+ const closure = closed === 'signal' ? 'by operation signal'
151
+ : closed === 'quorum' ? 'at quorum round closure' : undefined;
152
+ return { model: call.model, role: call.role, provider: call.provider, findings: [],
153
+ durationMs: elapsedMs, status: 'canceled',
154
+ error: ['Canceled', closure, detail].filter(Boolean).join(' ') };
155
+ }
156
+ function failedReview(index, error, startedAt) {
157
+ const call = calls[index];
158
+ return { model: call.model, role: call.role, provider: call.provider, findings: [],
159
+ durationMs: Date.now() - startedAt, status: 'error',
160
+ error: error instanceof Error ? error.message : String(error) };
161
+ }
162
+ const auditedRawIndices = new Set();
163
+ function audit(index, review) {
164
+ if (!options.auditLateReview || auditedRawIndices.has(index))
165
+ return;
166
+ auditedRawIndices.add(index);
167
+ // The audit sink cannot mutate a shared result object in the report. Its
168
+ // completion/errors have no path back into success counting or dispatch.
169
+ void Promise.resolve().then(() => options.auditLateReview(structuredClone(review), index))
170
+ .catch(error => options.onLateAuditError(error, index))
171
+ .catch(() => { });
172
+ }
173
+ function accept(index, received) {
174
+ const operation = acceptance.then(async () => {
175
+ if (failure)
176
+ return;
177
+ let review = received;
178
+ if (closed && received.status !== 'canceled') {
179
+ audit(index, received);
180
+ review = canceledReview(calls[index], received.durationMs, 'before durable acceptance');
181
+ }
182
+ if (!matches(index, review))
183
+ throw new Error(`Reviewer result does not match planned cell identity at index ${index}`);
184
+ const countsTowardQuorum = review.status === 'success' && review.async !== true;
185
+ if (dispatched.has(index) || intended.has(index)) {
186
+ await options.acceptReview?.(structuredClone(review), index);
187
+ }
188
+ results[index] = review;
189
+ options.onReviewComplete?.(structuredClone(review));
190
+ if (review.status === 'error' && options.verbose)
191
+ console.error(`${review.model}/${review.role}: ${review.error}`);
192
+ if (countsTowardQuorum) {
193
+ countSuccess(index);
194
+ if (!closed && policy && hasSuccessfulQuorum(policy, successfulSeats)) {
195
+ closed = 'quorum';
196
+ cancelCalls();
197
+ }
198
+ }
199
+ });
200
+ acceptance = operation.catch(fail);
201
+ return operation;
90
202
  }
91
203
  async function runOne(index) {
92
204
  const call = calls[index];
93
- const cancelable = quorumThreshold !== Infinity && !coreModels.has(call.model);
94
- let review;
95
- if (roundClosed && cancelable) {
96
- review = canceledReview(call, 0, 'before starting');
205
+ if (retained.has(index))
206
+ return;
207
+ if (stopped() || !eligible.has(index)) {
208
+ await accept(index, canceledReview(call, 0, eligible.has(index) ? 'before starting' : 'not eligible for recovery'));
209
+ return;
210
+ }
211
+ const startedAt = Date.now();
212
+ const controller = new AbortController();
213
+ let canceled = false;
214
+ let raw;
215
+ let audited = false;
216
+ function auditCanceledRaw() {
217
+ if (canceled && raw && !audited) {
218
+ audited = true;
219
+ audit(index, raw);
220
+ }
97
221
  }
98
- else {
99
- const startedAt = Date.now();
100
- const controller = new AbortController();
222
+ let cancel;
223
+ const cancellation = new Promise(resolveCancel => {
224
+ cancel = () => {
225
+ canceled = true;
226
+ const review = canceledReview(call, Date.now() - startedAt, 'while in flight');
227
+ controller.abort();
228
+ resolveCancel(review);
229
+ auditCanceledRaw();
230
+ };
231
+ cancelOutstanding.add(cancel);
232
+ });
233
+ try {
234
+ // Intent persistence is an owned, caller-bounded durability operation.
235
+ // Cancellation signals it, but the run still observes how it settles.
236
+ if (options.beforeReview) {
237
+ try {
238
+ const intent = await options.beforeReview(index, controller.signal);
239
+ if (intent === false) {
240
+ await accept(index, canceledReview(call, 0, 'intent declined before provider dispatch'));
241
+ return;
242
+ }
243
+ intended.add(index);
244
+ }
245
+ catch (error) {
246
+ if ((canceled || controller.signal.aborted || closed) && isAbortError(error)) {
247
+ await accept(index, canceledReview(call, Date.now() - startedAt, 'while awaiting intent'));
248
+ return;
249
+ }
250
+ fail(error);
251
+ throw error;
252
+ }
253
+ }
254
+ if (stopped()) {
255
+ await accept(index, canceledReview(call, Date.now() - startedAt, 'before provider dispatch'));
256
+ return;
257
+ }
258
+ let adapter;
101
259
  try {
102
- let adapter = adapters.get(call.provider);
103
- if (!adapter) {
104
- adapter = factory(call.provider);
260
+ const existing = adapters.get(call.provider);
261
+ adapter = existing ?? factory(call.provider);
262
+ if (!existing)
105
263
  adapters.set(call.provider, adapter);
106
- }
107
- const reviewPromise = adapter.review(call.model, call.role, call.systemPrompt, call.userPrompt, { ...adapterOpts, signal: controller.signal });
108
- // Builtin adapters never reject, but a custom adapterFactory might.
109
- // Once the cancellation wins the race, a late rejection from the
110
- // abandoned promise must not surface as an unhandled rejection.
111
- reviewPromise.catch(() => { });
112
- review = cancelable
113
- ? await Promise.race([
114
- reviewPromise,
115
- new Promise((resolveCancel) => {
116
- onRoundClosed.push(() => {
117
- // Settle the cancellation FIRST: aborting can settle the
118
- // adapter promise synchronously, and the race must record
119
- // this call as canceled, not as the adapter's timeout.
120
- resolveCancel(canceledReview(call, Date.now() - startedAt, `after ${Math.round((Date.now() - startedAt) / 1000)}s`));
121
- controller.abort();
122
- });
123
- }),
124
- ])
125
- : await reviewPromise;
126
264
  }
127
- catch (err) {
128
- review = {
129
- model: call.model,
130
- role: call.role,
131
- provider: call.provider,
132
- findings: [],
133
- durationMs: 0,
134
- status: 'error',
135
- error: err instanceof Error ? err.message : String(err),
136
- };
265
+ catch (error) {
266
+ await accept(index, failedReview(index, error, startedAt));
267
+ return;
137
268
  }
269
+ dispatched.add(index);
270
+ const provider = (async () => {
271
+ try {
272
+ raw = await adapter.review(call.model, call.role, call.systemPrompt, call.userPrompt, { ...adapterOpts, signal: controller.signal });
273
+ }
274
+ catch (error) {
275
+ raw = failedReview(index, error, startedAt);
276
+ }
277
+ auditCanceledRaw();
278
+ return raw;
279
+ })();
280
+ const review = await Promise.race([provider, cancellation]);
281
+ // A returned response is no longer an in-flight provider call. Remove
282
+ // it before acceptance can close quorum, so accepted work is not audited
283
+ // as a canceled straggler by its own completion.
284
+ cancelOutstanding.delete(cancel);
285
+ await accept(index, review);
138
286
  }
139
- if (review.status !== 'canceled')
140
- noteCompletion();
141
- if (review.status === 'error' && options.verbose) {
142
- console.error(`${call.model}/${call.role}: ${review.error}`);
287
+ finally {
288
+ cancelOutstanding.delete(cancel);
143
289
  }
144
- options.onReviewComplete?.(review);
145
- results[index] = review;
146
- }
147
- // Index-stealing worker pool: each worker pulls the next unclaimed call,
148
- // so one slow provider never stalls the rest of the queue.
149
- const width = Math.max(1, Math.min(options.concurrency, calls.length));
150
- const workers = Array.from({ length: width }, async () => {
151
- while (nextIndex < calls.length) {
152
- const index = nextIndex++;
153
- await runOne(index);
290
+ }
291
+ if (options.signal?.aborted)
292
+ abort();
293
+ else
294
+ options.signal?.addEventListener('abort', abort, { once: true });
295
+ try {
296
+ const queue = [...eligible];
297
+ const width = Math.min(options.concurrency, queue.length);
298
+ const workers = Array.from({ length: width }, async () => {
299
+ while (!failure && nextIndex < queue.length) {
300
+ const index = queue[nextIndex++];
301
+ await runOne(index);
302
+ }
303
+ });
304
+ await Promise.allSettled(workers);
305
+ if (failure)
306
+ throw failure.error;
307
+ // Ineligible cells still occupy their original matrix positions. These
308
+ // placeholders have no provider invocation and cannot become paid results.
309
+ for (let index = 0; index < calls.length; index++) {
310
+ if (!results[index])
311
+ await accept(index, canceledReview(calls[index], 0, 'not eligible for recovery'));
154
312
  }
155
- });
156
- await Promise.all(workers);
157
- return results;
313
+ return results;
314
+ }
315
+ finally {
316
+ options.signal?.removeEventListener('abort', abort);
317
+ }
158
318
  }
159
319
  //# sourceMappingURL=runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/dispatch/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/dispatch/runner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "review-council",
3
- "version": "4.1.5",
3
+ "version": "4.1.6",
4
4
  "description": "Review Council \u2014 multi-model AI code review CLI",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",