@telora/daemon 0.22.187 → 0.22.189
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/build-info.json +2 -2
- package/dist/completion/escalations.d.ts.map +1 -1
- package/dist/completion/escalations.js +2 -1
- package/dist/completion/escalations.js.map +1 -1
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +11 -4
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/standing-approval-convergence.d.ts.map +1 -1
- package/dist/completion/standing-approval-convergence.js +2 -1
- package/dist/completion/standing-approval-convergence.js.map +1 -1
- package/dist/focus/focus-loop-registry.js +2 -2
- package/dist/focus/focus-loop-registry.js.map +1 -1
- package/dist/loops/llm-client.d.ts +1 -1
- package/dist/loops/llm-client.d.ts.map +1 -1
- package/dist/loops/llm-client.js +18 -105
- package/dist/loops/llm-client.js.map +1 -1
- package/dist/queries/agent-resolvable-promotion.d.ts +12 -0
- package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -1
- package/dist/queries/agent-resolvable-promotion.js +17 -6
- package/dist/queries/agent-resolvable-promotion.js.map +1 -1
- package/dist/queries/delivery-gate-state.d.ts +3 -0
- package/dist/queries/delivery-gate-state.d.ts.map +1 -1
- package/dist/queries/delivery-gate-state.js +1 -1
- package/dist/queries/delivery-gate-state.js.map +1 -1
- package/dist/queries/verify-own-holds.d.ts +89 -0
- package/dist/queries/verify-own-holds.d.ts.map +1 -0
- package/dist/queries/verify-own-holds.js +93 -0
- package/dist/queries/verify-own-holds.js.map +1 -0
- package/dist/spawn/one-shot-model.d.ts +145 -0
- package/dist/spawn/one-shot-model.d.ts.map +1 -0
- package/dist/spawn/one-shot-model.js +329 -0
- package/dist/spawn/one-shot-model.js.map +1 -0
- package/dist/spawn/review-hold-park.d.ts.map +1 -1
- package/dist/spawn/review-hold-park.js +7 -3
- package/dist/spawn/review-hold-park.js.map +1 -1
- package/dist/spawn/routing-decider-spawn.d.ts +30 -0
- package/dist/spawn/routing-decider-spawn.d.ts.map +1 -1
- package/dist/spawn/routing-decider-spawn.js +84 -2
- package/dist/spawn/routing-decider-spawn.js.map +1 -1
- package/dist/spawn/routing-decider.d.ts.map +1 -1
- package/dist/spawn/routing-decider.js +22 -0
- package/dist/spawn/routing-decider.js.map +1 -1
- package/dist/spawn/spawn-cooldown.d.ts +15 -1
- package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
- package/dist/spawn/spawn-cooldown.js +67 -19
- package/dist/spawn/spawn-cooldown.js.map +1 -1
- package/dist/verify/ai-inspection-runner.d.ts.map +1 -1
- package/dist/verify/ai-inspection-runner.js +26 -7
- package/dist/verify/ai-inspection-runner.js.map +1 -1
- package/dist/verify/de-restatement.d.ts +9 -2
- package/dist/verify/de-restatement.d.ts.map +1 -1
- package/dist/verify/de-restatement.js +14 -76
- package/dist/verify/de-restatement.js.map +1 -1
- package/dist/verify/default-on-guards.d.ts +5 -2
- package/dist/verify/default-on-guards.d.ts.map +1 -1
- package/dist/verify/default-on-guards.js +5 -3
- package/dist/verify/default-on-guards.js.map +1 -1
- package/dist/verify/verification-deps-default.d.ts.map +1 -1
- package/dist/verify/verification-deps-default.js +6 -0
- package/dist/verify/verification-deps-default.js.map +1 -1
- package/dist/verify/verification-deps.d.ts +10 -0
- package/dist/verify/verification-deps.d.ts.map +1 -1
- package/dist/verify/verification-deterministic.d.ts +7 -0
- package/dist/verify/verification-deterministic.d.ts.map +1 -1
- package/dist/verify/verification-deterministic.js.map +1 -1
- package/dist/verify/verification-engine.d.ts +1 -20
- package/dist/verify/verification-engine.d.ts.map +1 -1
- package/dist/verify/verification-engine.js +24 -55
- package/dist/verify/verification-engine.js.map +1 -1
- package/dist/verify/verification-evidence-unavailable-feedback.d.ts +3 -1
- package/dist/verify/verification-evidence-unavailable-feedback.d.ts.map +1 -1
- package/dist/verify/verification-evidence-unavailable-feedback.js +3 -1
- package/dist/verify/verification-evidence-unavailable-feedback.js.map +1 -1
- package/dist/verify/verification-feedback.d.ts +4 -12
- package/dist/verify/verification-feedback.d.ts.map +1 -1
- package/dist/verify/verification-feedback.js +7 -12
- package/dist/verify/verification-feedback.js.map +1 -1
- package/dist/verify/verification-history-reset.d.ts.map +1 -1
- package/dist/verify/verification-history-reset.js +11 -3
- package/dist/verify/verification-history-reset.js.map +1 -1
- package/dist/verify/verification-model-unavailable-hold.d.ts +92 -0
- package/dist/verify/verification-model-unavailable-hold.d.ts.map +1 -0
- package/dist/verify/verification-model-unavailable-hold.js +207 -0
- package/dist/verify/verification-model-unavailable-hold.js.map +1 -0
- package/dist/verify/verification-strategies.d.ts +32 -0
- package/dist/verify/verification-strategies.d.ts.map +1 -0
- package/dist/verify/verification-strategies.js +47 -0
- package/dist/verify/verification-strategies.js.map +1 -0
- package/dist/verify/verify-reconciliation.d.ts.map +1 -1
- package/dist/verify/verify-reconciliation.js +2 -1
- package/dist/verify/verify-reconciliation.js.map +1 -1
- package/dist/verify/verify-restatement.d.ts.map +1 -1
- package/dist/verify/verify-restatement.js +21 -8
- package/dist/verify/verify-restatement.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing-decider.d.ts","sourceRoot":"","sources":["../../src/spawn/routing-decider.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAa,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"routing-decider.d.ts","sourceRoot":"","sources":["../../src/spawn/routing-decider.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAa,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAO9H,OAAO,EAKL,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC/B,MAAM,4BAA4B,CAAC;AAEpC,+CAA+C;AAC/C,eAAO,MAAM,6BAA6B,EAAE,SAAS,MAAM,EAA0D,CAAC;AAEtH;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,oBAAoB,CAAC;AAEjE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,aAAa,CAAC,GAAG,IAAI,CAAC;IAC1E,MAAM,EAAE,YAAY,CAAC;IACrB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5F,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,0BAA0B,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAAC;CAClF;AAED,mGAAmG;AACnG,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,YAAY,CAG7F;AAED,iEAAiE;AACjE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,yBAAyB,GAAG,qBAAqB,CAqBhG;AAkDD,2CAA2C;AAC3C,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,cAAc,CAe7E"}
|
|
@@ -5,6 +5,7 @@ import { resolveAssemblyRecipeWithManifest } from '../resolvers/assembly-engine.
|
|
|
5
5
|
import { initResolvers } from '../resolvers/index.js';
|
|
6
6
|
import { getFocusDeliveries } from '../queries/focuses.js';
|
|
7
7
|
import { configForProduct, findProduct } from '../shell/config.js';
|
|
8
|
+
import { providerRateLimitHoldUntilMs } from './spawn-cooldown.js';
|
|
8
9
|
import { buildRoutingDeciderPrompt, parseRoutingDecision } from '../prompt-sections/routing-decider-sections.js';
|
|
9
10
|
import { spawnRoutingDecider, ROUTING_DECIDER_MCP_TOOLS, ROUTING_DECIDER_MODEL, ROUTING_DECIDER_TIMEOUT_MS, } from './routing-decider-spawn.js';
|
|
10
11
|
/** The intent ladder a decider reads first. */
|
|
@@ -22,6 +23,18 @@ export function deciderConfigFor(config, productId) {
|
|
|
22
23
|
}
|
|
23
24
|
/** Pure: a spawn result as the sweep's RoutingDecisionResult. */
|
|
24
25
|
export function toRoutingDecisionResult(result) {
|
|
26
|
+
if (result.modelUnavailable) {
|
|
27
|
+
// The MODEL was unavailable (provider rate limit, auth): the decider did not
|
|
28
|
+
// decide and did not attempt -- nothing is stamped, the sweep re-hands it.
|
|
29
|
+
const { kind, resetAtMs } = result.modelUnavailable;
|
|
30
|
+
return {
|
|
31
|
+
ran: false,
|
|
32
|
+
decided: false,
|
|
33
|
+
modelUnavailable: true,
|
|
34
|
+
detail: `decider could not run: model unavailable (${kind}` +
|
|
35
|
+
`${resetAtMs !== null ? `, resets ${new Date(resetAtMs).toISOString()}` : ''})`,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
25
38
|
if (!result.started) {
|
|
26
39
|
return { ran: false, decided: false, detail: result.errorMessage ?? 'decider process did not start' };
|
|
27
40
|
}
|
|
@@ -49,6 +62,15 @@ async function defaultAssembleLadder(request, config) {
|
|
|
49
62
|
return (await resolveAssemblyRecipeWithManifest([...ROUTING_DECIDER_LADDER_RECIPE], ctx)).content;
|
|
50
63
|
}
|
|
51
64
|
async function runDecider(deps, request) {
|
|
65
|
+
// Inside the provider-wide rate-limit window nothing can run: say so before
|
|
66
|
+
// the ladder assembly spends its API reads (the spawn checks again, last).
|
|
67
|
+
const holdUntil = providerRateLimitHoldUntilMs();
|
|
68
|
+
if (holdUntil !== null) {
|
|
69
|
+
return toRoutingDecisionResult({
|
|
70
|
+
started: false, exitCode: null, timedOut: false, stdout: '', stderr: '', sessionId: null,
|
|
71
|
+
modelUnavailable: { kind: 'rate_limit', resetAtMs: holdUntil },
|
|
72
|
+
});
|
|
73
|
+
}
|
|
52
74
|
const config = deciderConfigFor(deps.config, request.item.productId);
|
|
53
75
|
let ladder = '';
|
|
54
76
|
let ladderError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing-decider.js","sourceRoot":"","sources":["../../src/spawn/routing-decider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"routing-decider.js","sourceRoot":"","sources":["../../src/spawn/routing-decider.ts"],"names":[],"mappings":"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"}
|
|
@@ -154,7 +154,21 @@ export declare function resolveCooldownUntilMs(entry: Pick<TeardownEntry, 'time'
|
|
|
154
154
|
* other readers).
|
|
155
155
|
*/
|
|
156
156
|
export declare function getSpawnCooldownFocusIds(): string[];
|
|
157
|
-
/**
|
|
157
|
+
/**
|
|
158
|
+
* Record a provider rate-limit signal. Returns true when the window is now open
|
|
159
|
+
* (the reset is in the future), false when the signal closed it.
|
|
160
|
+
*/
|
|
161
|
+
export declare function recordProviderRateLimit(resetAtMs: number, nowMs?: number): boolean;
|
|
162
|
+
/**
|
|
163
|
+
* The instant the provider-wide window closes, or null when no window is open.
|
|
164
|
+
* A window whose reset has passed reads as closed and is dropped.
|
|
165
|
+
*/
|
|
166
|
+
export declare function providerRateLimitHoldUntilMs(nowMs?: number): number | null;
|
|
167
|
+
/**
|
|
168
|
+
* Check if a focus is in spawn cooldown. True during the provider-wide
|
|
169
|
+
* rate-limit window whatever the focus's own entry says: a spawn now would be
|
|
170
|
+
* rejected on the same limit, and the teardown it costs is not a team failure.
|
|
171
|
+
*/
|
|
158
172
|
export declare function isInSpawnCooldown(focusId: string): boolean;
|
|
159
173
|
/**
|
|
160
174
|
* Record a provider rate-limit-induced cooldown: hold spawning until the reset
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-cooldown.d.ts","sourceRoot":"","sources":["../../src/spawn/spawn-cooldown.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spawn-cooldown.d.ts","sourceRoot":"","sources":["../../src/spawn/spawn-cooldown.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,5 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
-
// Pinned by: packages/daemon/src/
|
|
3
|
-
// packages/daemon/src/completion/review-cycle-cap-regression.test.ts,
|
|
4
|
-
// packages/daemon/src/completion/review-window-idle-coding-lead-regression.test.ts,
|
|
5
|
-
// packages/daemon/src/focus/awaiting-slot.test.ts,
|
|
6
|
-
// packages/daemon/src/focus/listener-auto-advance-teamless-wedge.test.ts,
|
|
7
|
-
// packages/daemon/src/focus/parked-shortfall-spawn.test.ts,
|
|
8
|
-
// packages/daemon/src/focus/pending-review-approved-head.test.ts,
|
|
9
|
-
// packages/daemon/src/focus/pending-spawn-review-next-step.test.ts,
|
|
10
|
-
// packages/daemon/src/focus/unchanged-reviewed-head.test.ts,
|
|
11
|
-
// packages/daemon/src/integration/approved-head-gate-failure-respawn-regression.test.ts,
|
|
12
|
-
// packages/daemon/src/integration/approved-head-hold-release-regression.test.ts,
|
|
13
|
-
// packages/daemon/src/integration/failed-verdict-review-exit-respawn-regression.test.ts,
|
|
14
|
-
// packages/daemon/src/integration/failed-verdict-review-loop-regression.test.ts,
|
|
15
|
-
// packages/daemon/src/integration/shortfall-park-incident-regression.test.ts,
|
|
16
|
-
// packages/daemon/src/shell/heartbeat-team-phases.test.ts,
|
|
17
|
-
// packages/daemon/src/spawn/pending-spawn-guard.test.ts,
|
|
18
|
-
// packages/daemon/src/spawn/review-hold-park-shortfall.test.ts,
|
|
19
|
-
// packages/daemon/src/spawn/review-hold-park.test.ts, packages/daemon/src/spawn/spawn-cooldown.test.ts
|
|
2
|
+
// Pinned by: 22 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/spawn/spawn-cooldown.ts
|
|
20
3
|
// PINNED-BY-END
|
|
21
4
|
import { createLogger } from '../shell/log.js';
|
|
22
5
|
import { resolveRespawnCycleMaxHours, resolveRespawnCycleMaxCount, } from '../verify/stall-detector-config.js';
|
|
@@ -223,9 +206,71 @@ export function getSpawnCooldownFocusIds() {
|
|
|
223
206
|
cleanupStaleEntries();
|
|
224
207
|
return [...teardownTimestamps.keys()];
|
|
225
208
|
}
|
|
226
|
-
|
|
209
|
+
// ---------------------------------------------------------------------------
|
|
210
|
+
// Provider-wide rate-limit window
|
|
211
|
+
// ---------------------------------------------------------------------------
|
|
212
|
+
/**
|
|
213
|
+
* The provider rate limit is ACCOUNT-wide, not per focus. When one team or one
|
|
214
|
+
* one-shot is rejected, every other spawn on this daemon is rejected too, until
|
|
215
|
+
* the same reset instant. The per-focus entry above records the hold for the
|
|
216
|
+
* focus whose team saw the rejection; this window records it for everyone.
|
|
217
|
+
*
|
|
218
|
+
* Measured 2026-09-23 (mars): with only the per-focus hold, the verification
|
|
219
|
+
* loop and the routing decider kept spawning `claude --print` one-shots every
|
|
220
|
+
* tick for ten hours (each exited 1, each consumed as a result), and a second
|
|
221
|
+
* focus's team was spawned and torn down four times in one minute. Every
|
|
222
|
+
* spawner -- team or one-shot -- reads this window; the one-shot wrapper
|
|
223
|
+
* (spawn/one-shot-model.ts) also writes it.
|
|
224
|
+
*
|
|
225
|
+
* A reset in the future opens the window until then, and the LATER of two open
|
|
226
|
+
* resets binds (a five_hour rejection arriving inside a seven_day window does
|
|
227
|
+
* not shorten it: both limits apply). A reset already in the past closes the
|
|
228
|
+
* window (capacity returned). In-memory only: a restart re-learns it from the
|
|
229
|
+
* provider on the first attempt.
|
|
230
|
+
*/
|
|
231
|
+
let providerRateLimitResetAtMs = null;
|
|
232
|
+
/**
|
|
233
|
+
* Record a provider rate-limit signal. Returns true when the window is now open
|
|
234
|
+
* (the reset is in the future), false when the signal closed it.
|
|
235
|
+
*/
|
|
236
|
+
export function recordProviderRateLimit(resetAtMs, nowMs = Date.now()) {
|
|
237
|
+
if (!Number.isFinite(resetAtMs) || resetAtMs <= nowMs) {
|
|
238
|
+
if (providerRateLimitResetAtMs !== null) {
|
|
239
|
+
log.info('Provider rate limit: window closed (reset instant has passed); spawns resume');
|
|
240
|
+
}
|
|
241
|
+
providerRateLimitResetAtMs = null;
|
|
242
|
+
return false;
|
|
243
|
+
}
|
|
244
|
+
const next = Math.max(providerRateLimitResetAtMs ?? 0, resetAtMs);
|
|
245
|
+
if (providerRateLimitResetAtMs !== next) {
|
|
246
|
+
log.warn(`Provider rate limit: holding EVERY spawn (teams and one-shots) until ` +
|
|
247
|
+
`${new Date(next).toISOString()} -- account-wide window`);
|
|
248
|
+
}
|
|
249
|
+
providerRateLimitResetAtMs = next;
|
|
250
|
+
return true;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* The instant the provider-wide window closes, or null when no window is open.
|
|
254
|
+
* A window whose reset has passed reads as closed and is dropped.
|
|
255
|
+
*/
|
|
256
|
+
export function providerRateLimitHoldUntilMs(nowMs = Date.now()) {
|
|
257
|
+
if (providerRateLimitResetAtMs === null)
|
|
258
|
+
return null;
|
|
259
|
+
if (providerRateLimitResetAtMs <= nowMs) {
|
|
260
|
+
providerRateLimitResetAtMs = null;
|
|
261
|
+
return null;
|
|
262
|
+
}
|
|
263
|
+
return providerRateLimitResetAtMs;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Check if a focus is in spawn cooldown. True during the provider-wide
|
|
267
|
+
* rate-limit window whatever the focus's own entry says: a spawn now would be
|
|
268
|
+
* rejected on the same limit, and the teardown it costs is not a team failure.
|
|
269
|
+
*/
|
|
227
270
|
export function isInSpawnCooldown(focusId) {
|
|
228
271
|
cleanupStaleEntries();
|
|
272
|
+
if (providerRateLimitHoldUntilMs() !== null)
|
|
273
|
+
return true;
|
|
229
274
|
const entry = teardownTimestamps.get(focusId);
|
|
230
275
|
if (!entry)
|
|
231
276
|
return false;
|
|
@@ -248,6 +293,8 @@ export function isInSpawnCooldown(focusId) {
|
|
|
248
293
|
export function recordRateLimitCooldown(focusId, resetAtMs) {
|
|
249
294
|
cleanupStaleEntries();
|
|
250
295
|
const now = Date.now();
|
|
296
|
+
// The limit the team hit is the account's, so the window opens for everyone.
|
|
297
|
+
recordProviderRateLimit(resetAtMs, now);
|
|
251
298
|
const existing = teardownTimestamps.get(focusId);
|
|
252
299
|
if (existing) {
|
|
253
300
|
existing.rateLimitResetAtMs = resetAtMs;
|
|
@@ -367,5 +414,6 @@ export async function clearSpawnCooldownDurably(focusId) {
|
|
|
367
414
|
export function __resetSpawnCooldownForTests() {
|
|
368
415
|
teardownTimestamps.clear();
|
|
369
416
|
writeChains.clear();
|
|
417
|
+
providerRateLimitResetAtMs = null;
|
|
370
418
|
}
|
|
371
419
|
//# sourceMappingURL=spawn-cooldown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-cooldown.js","sourceRoot":"","sources":["../../src/spawn/spawn-cooldown.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,
|
|
1
|
+
{"version":3,"file":"spawn-cooldown.js","sourceRoot":"","sources":["../../src/spawn/spawn-cooldown.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-inspection-runner.d.ts","sourceRoot":"","sources":["../../src/verify/ai-inspection-runner.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"ai-inspection-runner.d.ts","sourceRoot":"","sources":["../../src/verify/ai-inspection-runner.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAIrE,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,GAAG,cAAc,CAAC;AAErE,MAAM,MAAM,iBAAiB,GACzB,kBAAkB,GAClB,UAAU,GACV,aAAa,GACb,kBAAkB,GAClB,gBAAgB,CAAC;AAErB,MAAM,WAAW,gBAAgB;IAC/B,yEAAyE;IACzE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,KAAK,YAAY,CAAC;IACzE,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,UAAU,SAAS;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAgED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAsDxE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAY1F;AAyBD;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,kBAAkB,EAC1B,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAkF3B"}
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
*/
|
|
27
27
|
import { spawn } from 'node:child_process';
|
|
28
28
|
import { trackChildProcess } from '../spawn/worker-registry.js';
|
|
29
|
+
import { providerRateLimitHoldUntilMs } from '../spawn/spawn-cooldown.js';
|
|
29
30
|
const DEFAULT_TIMEOUT_MS = 5 * 60 * 1000;
|
|
30
31
|
const SYSTEM_PROMPT_TEMPLATE = `You are a code-state verification agent for the Telora differential focus spec.
|
|
31
32
|
|
|
@@ -164,6 +165,28 @@ export function buildClaudeArgs(inputs, systemPrompt) {
|
|
|
164
165
|
}
|
|
165
166
|
return args;
|
|
166
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* The inconclusive result for an inspection that must not spawn at all, or null
|
|
170
|
+
* when it may: no worktree to inspect, or the provider-wide rate-limit window
|
|
171
|
+
* (spawn/spawn-cooldown.ts) is open -- an inspection started then is rejected on
|
|
172
|
+
* the same limit, and its exit 1 was re-spawned every verify tick for the whole
|
|
173
|
+
* window. Inconclusive is already the runner's no-verdict outcome, so the engine
|
|
174
|
+
* records pending and retries once the window has passed.
|
|
175
|
+
*/
|
|
176
|
+
function inspectionNotSpawned(inputs) {
|
|
177
|
+
if (!inputs.worktreePath) {
|
|
178
|
+
return { verdict: 'inconclusive', rationale: 'ai_inspection skipped: no worktree path resolved for delivery', driftObservations: [] };
|
|
179
|
+
}
|
|
180
|
+
const holdUntil = providerRateLimitHoldUntilMs();
|
|
181
|
+
if (holdUntil !== null) {
|
|
182
|
+
return {
|
|
183
|
+
verdict: 'inconclusive',
|
|
184
|
+
rationale: `ai_inspection not spawned: provider rate limit holds every spawn until ${new Date(holdUntil).toISOString()}`,
|
|
185
|
+
driftObservations: [],
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
return null;
|
|
189
|
+
}
|
|
167
190
|
/**
|
|
168
191
|
* Spawn the claude CLI runner and return the parsed verdict.
|
|
169
192
|
*
|
|
@@ -175,13 +198,9 @@ export async function runAiInspection(inputs, opts = {}) {
|
|
|
175
198
|
const claudeBin = opts.claudeBin ?? 'claude';
|
|
176
199
|
const timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
177
200
|
const spawnFn = opts.spawnFn ?? ((cmd, args, sopts) => spawn(cmd, args, sopts));
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
rationale: 'ai_inspection skipped: no worktree path resolved for delivery',
|
|
182
|
-
driftObservations: [],
|
|
183
|
-
};
|
|
184
|
-
}
|
|
201
|
+
const skipped = inspectionNotSpawned(inputs);
|
|
202
|
+
if (skipped)
|
|
203
|
+
return skipped;
|
|
185
204
|
const systemPrompt = buildSystemPrompt(inputs);
|
|
186
205
|
const userMessage = buildUserMessage(inputs);
|
|
187
206
|
const args = buildClaudeArgs(inputs, systemPrompt);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-inspection-runner.js","sourceRoot":"","sources":["../../src/verify/ai-inspection-runner.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,qEAAqE;AACrE,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"ai-inspection-runner.js","sourceRoot":"","sources":["../../src/verify/ai-inspection-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
*
|
|
20
20
|
* @module de-restatement
|
|
21
21
|
*/
|
|
22
|
-
import {
|
|
22
|
+
import type { ChildProcess } from 'node:child_process';
|
|
23
23
|
export interface RestatementInputs {
|
|
24
24
|
/** The undesirable-effect statement to restate positively. */
|
|
25
25
|
udeStatement: string;
|
|
@@ -32,6 +32,8 @@ interface SpawnOpts {
|
|
|
32
32
|
stdio: ['pipe', 'pipe', 'pipe'];
|
|
33
33
|
}
|
|
34
34
|
export interface RestatementOptions {
|
|
35
|
+
/** Names the caller in logs and the failure message (default: 'de-restatement'). */
|
|
36
|
+
label?: string;
|
|
35
37
|
/** Path to the `claude` CLI binary (default: 'claude'). */
|
|
36
38
|
claudeBin?: string;
|
|
37
39
|
/** Timeout in ms; defaults to 2 minutes. */
|
|
@@ -68,7 +70,12 @@ export declare function buildRestatementUserMessage(inputs: RestatementInputs):
|
|
|
68
70
|
* authored => needs one.
|
|
69
71
|
*/
|
|
70
72
|
export declare function needsRestatement(currentText: string | null | undefined, originalUdeText?: string | null): boolean;
|
|
71
|
-
/**
|
|
73
|
+
/**
|
|
74
|
+
* Default model invocation: the shared one-shot wrapper (spawn/one-shot-model.ts),
|
|
75
|
+
* returning the answer text. Rejects with ModelUnavailable -- a typed
|
|
76
|
+
* non-judgment -- when the model could not be reached; a caller that must not
|
|
77
|
+
* record that as a verdict reads `isModelUnavailable(err)`.
|
|
78
|
+
*/
|
|
72
79
|
export declare function invokeClaudeCli(systemPrompt: string, userMessage: string, opts: RestatementOptions): Promise<string>;
|
|
73
80
|
/**
|
|
74
81
|
* Author the positive desired-effect restatement for a UDE.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"de-restatement.d.ts","sourceRoot":"","sources":["../../src/verify/de-restatement.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"de-restatement.d.ts","sourceRoot":"","sources":["../../src/verify/de-restatement.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,MAAM,WAAW,iBAAiB;IAChC,8DAA8D;IAC9D,YAAY,EAAE,MAAM,CAAC;IACrB,qFAAqF;IACrF,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,SAAS;IACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,KAAK,YAAY,CAAC;IACzE;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9E;AAED,eAAO,MAAM,yBAAyB,4vBAMsE,CAAC;AAE7G;;;;GAIG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAErD;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAoB7E;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACtC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC9B,OAAO,CAIT;AAcD;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,iBAAiB,EACzB,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAUjB"}
|
|
@@ -1,30 +1,7 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
2
|
// Pinned by: packages/daemon/src/verify/de-restatement.test.ts
|
|
3
3
|
// PINNED-BY-END
|
|
4
|
-
|
|
5
|
-
* Desired-effect restatement helper.
|
|
6
|
-
*
|
|
7
|
-
* Turns a UDE (plus its resolving injection(s)) into one concise,
|
|
8
|
-
* injection-conditioned positive desired-effect sentence. Reuses the same
|
|
9
|
-
* model-invocation pattern as `ai-inspection-runner.ts` -- spawning the
|
|
10
|
-
* `claude` CLI in print mode -- so there is NO new client or secret wiring.
|
|
11
|
-
*
|
|
12
|
-
* Two prompt modes:
|
|
13
|
-
* - injection-conditioned (injectionStatements present): the desired effect
|
|
14
|
-
* is the positive state the UDE BECOMES given those injections; it carries
|
|
15
|
-
* the resolution, it is NOT a naive antonym.
|
|
16
|
-
* - observation-conditioned (no injections): a positive restatement grounded
|
|
17
|
-
* in the evidence/observation of the UDE.
|
|
18
|
-
*
|
|
19
|
-
* Idempotency: callers use `needsRestatement()` to skip nodes that already
|
|
20
|
-
* carry a positive statement (an FRT overlay that is non-null, or a base
|
|
21
|
-
* statement that no longer equals the pre-flip UDE text).
|
|
22
|
-
*
|
|
23
|
-
* @module de-restatement
|
|
24
|
-
*/
|
|
25
|
-
import { spawn } from 'node:child_process';
|
|
26
|
-
import { trackChildProcess } from '../spawn/worker-registry.js';
|
|
27
|
-
const DEFAULT_TIMEOUT_MS = 2 * 60 * 1000;
|
|
4
|
+
import { invokeOneShotModel } from '../spawn/one-shot-model.js';
|
|
28
5
|
export const RESTATEMENT_SYSTEM_PROMPT = `You restate an undesirable effect (UDE) from a Goldratt reality tree as the single positive desired effect it becomes once resolved.
|
|
29
6
|
|
|
30
7
|
Rules:
|
|
@@ -88,59 +65,20 @@ function normalizeSentence(raw) {
|
|
|
88
65
|
s = s.replace(/^["'`]+/, '').replace(/["'`]+$/, '').trim();
|
|
89
66
|
return s;
|
|
90
67
|
}
|
|
91
|
-
/**
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
'
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
let child;
|
|
104
|
-
try {
|
|
105
|
-
child = spawnFn(claudeBin, args, { stdio: ['pipe', 'pipe', 'pipe'] });
|
|
106
|
-
}
|
|
107
|
-
catch (err) {
|
|
108
|
-
reject(new Error(`de-restatement spawn failed: ${err.message}`));
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
// Register so a graceful stop reaps this one-shot if it is still running.
|
|
112
|
-
trackChildProcess(child, 'de-restatement');
|
|
113
|
-
let stdout = '';
|
|
114
|
-
let stderr = '';
|
|
115
|
-
child.stdout?.on('data', (chunk) => { stdout += chunk.toString('utf8'); });
|
|
116
|
-
child.stderr?.on('data', (chunk) => { stderr += chunk.toString('utf8'); });
|
|
117
|
-
const timer = setTimeout(() => {
|
|
118
|
-
try {
|
|
119
|
-
child.kill('SIGKILL');
|
|
120
|
-
}
|
|
121
|
-
catch { /* ignore */ }
|
|
122
|
-
}, timeoutMs);
|
|
123
|
-
child.on('error', (err) => {
|
|
124
|
-
clearTimeout(timer);
|
|
125
|
-
reject(new Error(`de-restatement spawn error: ${err.message}`));
|
|
126
|
-
});
|
|
127
|
-
child.on('close', (code) => {
|
|
128
|
-
clearTimeout(timer);
|
|
129
|
-
if (code !== 0) {
|
|
130
|
-
reject(new Error(`de-restatement exited ${code}: ${stderr.slice(-2000)}`));
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
resolve(stdout);
|
|
134
|
-
});
|
|
135
|
-
try {
|
|
136
|
-
child.stdin?.write(userMessage);
|
|
137
|
-
child.stdin?.end();
|
|
138
|
-
}
|
|
139
|
-
catch (err) {
|
|
140
|
-
clearTimeout(timer);
|
|
141
|
-
reject(new Error(`de-restatement stdin write failed: ${err.message}`));
|
|
142
|
-
}
|
|
68
|
+
/**
|
|
69
|
+
* Default model invocation: the shared one-shot wrapper (spawn/one-shot-model.ts),
|
|
70
|
+
* returning the answer text. Rejects with ModelUnavailable -- a typed
|
|
71
|
+
* non-judgment -- when the model could not be reached; a caller that must not
|
|
72
|
+
* record that as a verdict reads `isModelUnavailable(err)`.
|
|
73
|
+
*/
|
|
74
|
+
export async function invokeClaudeCli(systemPrompt, userMessage, opts) {
|
|
75
|
+
const result = await invokeOneShotModel(systemPrompt, userMessage, {
|
|
76
|
+
label: opts.label ?? 'de-restatement',
|
|
77
|
+
...(opts.claudeBin !== undefined ? { claudeBin: opts.claudeBin } : {}),
|
|
78
|
+
...(opts.timeoutMs !== undefined ? { timeoutMs: opts.timeoutMs } : {}),
|
|
79
|
+
...(opts.spawnFn !== undefined ? { spawnFn: opts.spawnFn } : {}),
|
|
143
80
|
});
|
|
81
|
+
return result.text;
|
|
144
82
|
}
|
|
145
83
|
/**
|
|
146
84
|
* Author the positive desired-effect restatement for a UDE.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"de-restatement.js","sourceRoot":"","sources":["../../src/verify/de-restatement.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,+DAA+D;AAC/D,gBAAgB;
|
|
1
|
+
{"version":3,"file":"de-restatement.js","sourceRoot":"","sources":["../../src/verify/de-restatement.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,12 +22,15 @@ export interface DefaultOnResultFacts {
|
|
|
22
22
|
timedOut?: boolean;
|
|
23
23
|
verifiedSha?: string;
|
|
24
24
|
checkoutUnavailable?: boolean;
|
|
25
|
+
/** The reconciliation could not run (model unavailable): no verdict exists to guard. */
|
|
26
|
+
modelUnavailable?: boolean;
|
|
25
27
|
}
|
|
26
28
|
/**
|
|
27
29
|
* Dispatch-result bookkeeping for a default-on run:
|
|
28
30
|
* - no checkout could be made, or the verdict was discarded because dependencies
|
|
29
|
-
* moved mid-run
|
|
30
|
-
* guard); any recorded pass or
|
|
31
|
+
* moved mid-run, or the reconciliation's model could not be reached -> un-mark,
|
|
32
|
+
* so the next tick retries (no verdict exists to guard); any recorded pass or
|
|
33
|
+
* failure stands;
|
|
31
34
|
* - the run judged a known commit -> keep it on the run mark, so a later focus
|
|
32
35
|
* HEAD that differs re-arms the delivery;
|
|
33
36
|
* - the gate command FAILED at a known sha (non-zero exit, not a timeout, final
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-on-guards.d.ts","sourceRoot":"","sources":["../../src/verify/default-on-guards.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"default-on-guards.d.ts","sourceRoot":"","sources":["../../src/verify/default-on-guards.ts"],"names":[],"mappings":"AAwKA,8EAA8E;AAC9E,wBAAgB,6BAA6B,IAAI,IAAI,CAKpD;AAED,0GAA0G;AAC1G,wBAAgB,2BAA2B,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAEhF;AAED,sHAAsH;AACtH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAEzD;AAED,4CAA4C;AAC5C,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAEnE;AAED,gHAAgH;AAChH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAE3D;AAED,4EAA4E;AAC5E,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,wFAAwF;IACxF,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAc1F;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAYzD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,OAAO,CAoBzH;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,OAAO,CAY3F;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAOpF"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// Pinned by: packages/daemon/src/verify/commit-verdict-pull.test.ts,
|
|
3
3
|
// packages/daemon/src/verify/credit-rearm.test.ts, packages/daemon/src/verify/shortfall-rulings.test.ts,
|
|
4
4
|
// packages/daemon/src/verify/verification-default-on.test.ts,
|
|
5
|
+
// packages/daemon/src/verify/verification-model-unavailable-hold.test.ts,
|
|
5
6
|
// packages/daemon/src/verify/verification-run-config-source.test.ts,
|
|
6
7
|
// packages/daemon/src/verify/verify-unprovisioned-worktree.test.ts,
|
|
7
8
|
// packages/daemon/src/worktree/worktree-package-provisioning.test.ts
|
|
@@ -191,8 +192,9 @@ export function forgetRecordedPass(deliveryId) {
|
|
|
191
192
|
/**
|
|
192
193
|
* Dispatch-result bookkeeping for a default-on run:
|
|
193
194
|
* - no checkout could be made, or the verdict was discarded because dependencies
|
|
194
|
-
* moved mid-run
|
|
195
|
-
* guard); any recorded pass or
|
|
195
|
+
* moved mid-run, or the reconciliation's model could not be reached -> un-mark,
|
|
196
|
+
* so the next tick retries (no verdict exists to guard); any recorded pass or
|
|
197
|
+
* failure stands;
|
|
196
198
|
* - the run judged a known commit -> keep it on the run mark, so a later focus
|
|
197
199
|
* HEAD that differs re-arms the delivery;
|
|
198
200
|
* - the gate command FAILED at a known sha (non-zero exit, not a timeout, final
|
|
@@ -202,7 +204,7 @@ export function forgetRecordedPass(deliveryId) {
|
|
|
202
204
|
* the pass so that commit is not re-verified either.
|
|
203
205
|
*/
|
|
204
206
|
export function noteDefaultOnResult(deliveryId, result) {
|
|
205
|
-
if (result.checkoutUnavailable) {
|
|
207
|
+
if (result.checkoutUnavailable || result.modelUnavailable) {
|
|
206
208
|
defaultOnRan.delete(deliveryId);
|
|
207
209
|
return;
|
|
208
210
|
}
|