wicked-crew 0.7.13 → 0.7.14
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/dist/api/delivery-cache.d.ts +135 -0
- package/dist/api/delivery-cache.d.ts.map +1 -0
- package/dist/api/delivery-cache.js +245 -0
- package/dist/api/delivery-cache.js.map +1 -0
- package/dist/api/delivery-index.d.ts +42 -11
- package/dist/api/delivery-index.d.ts.map +1 -1
- package/dist/api/delivery-index.js +104 -52
- package/dist/api/delivery-index.js.map +1 -1
- package/dist/api/endpoint-manifest-live.d.ts.map +1 -1
- package/dist/api/endpoint-manifest-live.js +0 -1
- package/dist/api/endpoint-manifest-live.js.map +1 -1
- package/dist/api/gate-cache.d.ts +24 -0
- package/dist/api/gate-cache.d.ts.map +1 -1
- package/dist/api/gate-cache.js +35 -0
- package/dist/api/gate-cache.js.map +1 -1
- package/dist/api/routes.d.ts +14 -7
- package/dist/api/routes.d.ts.map +1 -1
- package/dist/api/routes.js +60 -13
- package/dist/api/routes.js.map +1 -1
- package/dist/api/seat-health.d.ts +0 -25
- package/dist/api/seat-health.d.ts.map +1 -1
- package/dist/api/seat-health.js +6 -81
- package/dist/api/seat-health.js.map +1 -1
- package/dist/api/server.d.ts +18 -15
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +87 -36
- package/dist/api/server.js.map +1 -1
- package/dist/api/stall-watchdog.d.ts +40 -3
- package/dist/api/stall-watchdog.d.ts.map +1 -1
- package/dist/api/stall-watchdog.js +94 -15
- package/dist/api/stall-watchdog.js.map +1 -1
- package/dist/campaigns/rollup.d.ts +3 -0
- package/dist/campaigns/rollup.d.ts.map +1 -1
- package/dist/campaigns/rollup.js +17 -2
- package/dist/campaigns/rollup.js.map +1 -1
- package/dist/campaigns/routes.d.ts +4 -4
- package/dist/core/types.d.ts +20 -4
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +20 -1
- package/dist/core/types.js.map +1 -1
- package/endpoint-manifest.json +3 -2
- package/package.json +2 -2
|
@@ -7,8 +7,12 @@ export interface ExecutingRun {
|
|
|
7
7
|
id: string;
|
|
8
8
|
/** The run's CURSOR unit ord when the caller knows it — what `reassignUnit` must name. */
|
|
9
9
|
ord?: number;
|
|
10
|
-
/** The cursor unit's assigned seat
|
|
10
|
+
/** The cursor unit's assigned seat — the seat a reassign moves AWAY from. Absent = unknown
|
|
11
|
+
* (a reassign then lets the engine's council pick). */
|
|
11
12
|
cli?: string;
|
|
13
|
+
/** The run's own seat pool (`session.clis`), in roster order — the failover candidates a
|
|
14
|
+
* reassign may route to (perf#4). Absent/empty = no pool known: reassign in place. */
|
|
15
|
+
seats?: string[];
|
|
12
16
|
}
|
|
13
17
|
/**
|
|
14
18
|
* The escalation stage's per-sweep configuration (crew#341), resolved live so a PUT /settings
|
|
@@ -37,13 +41,29 @@ export interface StallWatchdogDeps {
|
|
|
37
41
|
/** Resolved per sweep; `minutes` absent/0/invalid keeps escalation OFF. */
|
|
38
42
|
config: () => StallEscalationConfig | undefined | Promise<StallEscalationConfig | undefined>;
|
|
39
43
|
/**
|
|
40
|
-
* Recycle the wedged cursor unit
|
|
41
|
-
*
|
|
44
|
+
* Recycle the wedged cursor unit (the daemon wires `adapter.reassignUnit`). `cli` names
|
|
45
|
+
* the seat to re-dispatch to — the watchdog passes its failover TARGET (a different seat
|
|
46
|
+
* from the run's pool when one exists, else the current seat recycled in place); absent =
|
|
47
|
+
* the engine re-runs the council.
|
|
42
48
|
*/
|
|
43
49
|
reassign: (runId: string, ord: number, cli?: string) => Promise<void>;
|
|
44
50
|
/** Audit sink — the server appends `run.stall.escalated` to the crew audit trail. */
|
|
45
51
|
audit?: (frame: WorkerStallEscalatedFrame) => void;
|
|
46
52
|
};
|
|
53
|
+
/**
|
|
54
|
+
* Called when a relayed `unitOutputCaptured` carries `stepStatus: "timed_out"` — the ENGINE's
|
|
55
|
+
* own turn ceiling fired (the run is terminating; the last-resort backstop the silence ladder
|
|
56
|
+
* exists to preempt). The server wires an audit entry + warn log so the timeout is
|
|
57
|
+
* operator-visible as WHAT IT IS rather than as an anonymous cancel. Versioned safely: an
|
|
58
|
+
* older engine never sends the value, so this never fires — and `"cancelled"` (ambiguous on
|
|
59
|
+
* old engines: operator OR timeout) deliberately triggers NOTHING, because acting on an
|
|
60
|
+
* operator's cancel is the failure mode this whole seam exists to prevent.
|
|
61
|
+
*/
|
|
62
|
+
onTurnTimeout?: (info: {
|
|
63
|
+
session: string;
|
|
64
|
+
ord?: number;
|
|
65
|
+
attempt?: number;
|
|
66
|
+
}) => void;
|
|
47
67
|
/** Clock (tests stub it). */
|
|
48
68
|
now?: () => number;
|
|
49
69
|
/** Wired to the daemon's warn logger — a stall is an operator-attention signal. */
|
|
@@ -61,6 +81,14 @@ export declare class WorkerStallWatchdog {
|
|
|
61
81
|
private readonly escalated;
|
|
62
82
|
/** run id → automatic reassigns consumed (the crew#341 budget). Pruned with the run. */
|
|
63
83
|
private readonly escalationCount;
|
|
84
|
+
/**
|
|
85
|
+
* run id → seats already stall-reassigned AWAY from on this run, so consecutive escalations
|
|
86
|
+
* rotate through the pool instead of bouncing back to a seat that already wedged (perf#4).
|
|
87
|
+
* WATCHDOG-LOCAL BY DESIGN: a stalled seat is not an errored seat — this memory must never
|
|
88
|
+
* reach the engine's `worker_failed_clis` (resume-path exclusion) or the SeatHealthTracker.
|
|
89
|
+
* Pruned with the run, like the budget.
|
|
90
|
+
*/
|
|
91
|
+
private readonly stalledSeats;
|
|
64
92
|
private readonly now;
|
|
65
93
|
private readonly log;
|
|
66
94
|
private handle;
|
|
@@ -83,5 +111,14 @@ export declare class WorkerStallWatchdog {
|
|
|
83
111
|
private escalationArmed;
|
|
84
112
|
/** Perform one escalation for `run`, emit its `workerStallEscalated` frame, audit, log. */
|
|
85
113
|
private escalate;
|
|
114
|
+
/**
|
|
115
|
+
* The failover TARGET for a stall reassign (perf#4): the first seat of the run's own pool
|
|
116
|
+
* that is neither the currently-stalled seat nor one this run already stall-reassigned away
|
|
117
|
+
* from. `undefined` = no distinct candidate (no pool known, a single-seat pool, or every
|
|
118
|
+
* other seat already stalled here) — the caller then recycles in place, which is today's
|
|
119
|
+
* (still safe) behaviour. Pool order is `session.clis` order: deterministic, no health
|
|
120
|
+
* heuristics — the per-run budget bounds how far the rotation can walk.
|
|
121
|
+
*/
|
|
122
|
+
private pickFailoverSeat;
|
|
86
123
|
}
|
|
87
124
|
//# sourceMappingURL=stall-watchdog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stall-watchdog.d.ts","sourceRoot":"","sources":["../../src/api/stall-watchdog.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stall-watchdog.d.ts","sourceRoot":"","sources":["../../src/api/stall-watchdog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Worker stall watchdog (crew#287 detection + crew#341 escalation): platform-native liveness
|
|
2
|
-
// for executing runs, and —
|
|
2
|
+
// for executing runs, and — armed by default since perf#4 — recovery when liveness is gone.
|
|
3
3
|
//
|
|
4
4
|
// A wedged worker emits nothing — no unitOutputDelta, no gate frames — and its run sits in
|
|
5
5
|
// `executing` until an operator notices by absence (run 8aa1cd42: a design unit burned 3+ hours
|
|
@@ -15,20 +15,31 @@
|
|
|
15
15
|
// - once per quiet period: after the frame fires, the run stays alerted until a NEW event for
|
|
16
16
|
// it arrives; a second quiet period then emits a second frame.
|
|
17
17
|
//
|
|
18
|
-
// THE ESCALATION LADDER (crew#341) — detection
|
|
18
|
+
// THE ESCALATION LADDER (crew#341, armed by default since perf#4) — detection drives action:
|
|
19
19
|
//
|
|
20
|
-
// notify (always) → act (
|
|
20
|
+
// notify (always) → act (default-ON, `workerStallEscalateMinutes`, 0 disarms) → fail loud
|
|
21
21
|
//
|
|
22
|
-
// -
|
|
23
|
-
//
|
|
24
|
-
//
|
|
22
|
+
// - ON BY DEFAULT (perf#4). crew#341 shipped the ladder OFF, and run 616c8661 then burned the
|
|
23
|
+
// full 2h turn ceiling (106 min of output silence) while the watchdog fired once and watched.
|
|
24
|
+
// `reassignUnit` is safe on a merely-slow run — the superseded turn is not folded as a
|
|
25
|
+
// failure, its late output drops on the attempt guard, queued injects survive — so acting at
|
|
26
|
+
// `DEFAULT_WORKER_STALL_ESCALATE_MINUTES` (30 — ~55% headroom over the recon's slowest
|
|
27
|
+
// legitimate first output of ~19.4 min, still ~4x faster than the 2h ceiling) of TOTAL
|
|
28
|
+
// silence is strictly better than watching. An explicit `workerStallEscalateMinutes: 0`
|
|
29
|
+
// restores detection-only.
|
|
25
30
|
// - When armed, a run still silent past the escalation threshold (never before the detection
|
|
26
31
|
// threshold — the ladder notifies before it acts) gets ONE escalation per quiet period:
|
|
27
|
-
// - action `reassign` (default): recycle the wedged cursor unit
|
|
32
|
+
// - action `reassign` (default): recycle the wedged cursor unit via the engine's
|
|
28
33
|
// `reassignUnit` — the stale turn is superseded (not folded as a failure), the worker
|
|
29
|
-
// session closed, the attempt bumped, the unit re-dispatched
|
|
30
|
-
//
|
|
31
|
-
//
|
|
34
|
+
// session closed, the attempt bumped, the unit re-dispatched; queued operator injects
|
|
35
|
+
// survive into the fresh turn. The re-dispatch is routed to a DIFFERENT seat from the
|
|
36
|
+
// run's own pool when one is available (perf#4): a seat that just sat silent past the
|
|
37
|
+
// escalation threshold is the last seat to hand the retry to. Seats already stall-reassigned away from
|
|
38
|
+
// on this run are skipped too; a single-seat pool falls back to the in-place recycle.
|
|
39
|
+
// NOTE the seat memory is WATCHDOG-LOCAL and per-run: a stalled seat is NOT an errored
|
|
40
|
+
// seat. It is never written to the engine's `worker_failed_clis` (which the resume path
|
|
41
|
+
// reads to permanently exclude seats) and never folded into the SeatHealthTracker — a
|
|
42
|
+
// seat that stalled once under load stays fully eligible for other runs and for resume.
|
|
32
43
|
// - action `notify`: the fail-loud rung — surface a `needsYou` frame + an audit entry and
|
|
33
44
|
// leave the run alone.
|
|
34
45
|
// - A per-run budget (`workerStallMaxEscalations`, default 2) caps AUTOMATIC reassigns: a
|
|
@@ -62,6 +73,14 @@ export class WorkerStallWatchdog {
|
|
|
62
73
|
escalated = new Set();
|
|
63
74
|
/** run id → automatic reassigns consumed (the crew#341 budget). Pruned with the run. */
|
|
64
75
|
escalationCount = new Map();
|
|
76
|
+
/**
|
|
77
|
+
* run id → seats already stall-reassigned AWAY from on this run, so consecutive escalations
|
|
78
|
+
* rotate through the pool instead of bouncing back to a seat that already wedged (perf#4).
|
|
79
|
+
* WATCHDOG-LOCAL BY DESIGN: a stalled seat is not an errored seat — this memory must never
|
|
80
|
+
* reach the engine's `worker_failed_clis` (resume-path exclusion) or the SeatHealthTracker.
|
|
81
|
+
* Pruned with the run, like the budget.
|
|
82
|
+
*/
|
|
83
|
+
stalledSeats = new Map();
|
|
65
84
|
now;
|
|
66
85
|
log;
|
|
67
86
|
handle = null;
|
|
@@ -81,6 +100,28 @@ export class WorkerStallWatchdog {
|
|
|
81
100
|
this.lastOrd.set(session, event.ord);
|
|
82
101
|
this.alerted.delete(session);
|
|
83
102
|
this.escalated.delete(session);
|
|
103
|
+
// The engine's own turn ceiling fired (perf#4: `stepStatus: "timed_out"` — a NEW value; the
|
|
104
|
+
// old shared "cancelled" spelling deliberately triggers nothing, because on an old engine it
|
|
105
|
+
// is indistinguishable from an operator's Ctrl-C). Surface it as what it is: the last-resort
|
|
106
|
+
// backstop this ladder exists to preempt.
|
|
107
|
+
if (event.type === 'unitOutputCaptured' &&
|
|
108
|
+
event.stepStatus === 'timed_out') {
|
|
109
|
+
const ord = typeof event.ord === 'number' ? event.ord : undefined;
|
|
110
|
+
const attempt = typeof event.attempt === 'number' ? event.attempt : undefined;
|
|
111
|
+
this.log(`[stall-watchdog] run ${session}${ord !== undefined ? ` (unit ${ord})` : ''} hit the ` +
|
|
112
|
+
`engine's turn ceiling (stepStatus timed_out) — this was the platform's own timeout, ` +
|
|
113
|
+
`NOT an operator cancel; the run is terminating`);
|
|
114
|
+
try {
|
|
115
|
+
this.deps.onTurnTimeout?.({
|
|
116
|
+
session,
|
|
117
|
+
...(ord !== undefined ? { ord } : {}),
|
|
118
|
+
...(attempt !== undefined ? { attempt } : {}),
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
this.log(`[stall-watchdog] turn-timeout sink failed: ${String(err)}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
84
125
|
}
|
|
85
126
|
/** One detection pass. Public so tests drive it directly; the armed interval calls it too. */
|
|
86
127
|
async sweep() {
|
|
@@ -107,6 +148,7 @@ export class WorkerStallWatchdog {
|
|
|
107
148
|
this.alerted.delete(key);
|
|
108
149
|
this.escalated.delete(key);
|
|
109
150
|
this.escalationCount.delete(key);
|
|
151
|
+
this.stalledSeats.delete(key);
|
|
110
152
|
}
|
|
111
153
|
}
|
|
112
154
|
const thresholdMs = await this.thresholdMs();
|
|
@@ -139,7 +181,7 @@ export class WorkerStallWatchdog {
|
|
|
139
181
|
? ` (detection only: the run was NOT touched; the operator decides)`
|
|
140
182
|
: ` (escalation armed at ${(escalation.thresholdMs / 60_000).toFixed(1)} min)`));
|
|
141
183
|
}
|
|
142
|
-
// ── stage 2: act (crew#341,
|
|
184
|
+
// ── stage 2: act (crew#341, default-ON since perf#4) — never before stage 1 ─────
|
|
143
185
|
if (escalation !== undefined &&
|
|
144
186
|
quietForMs >= escalation.thresholdMs &&
|
|
145
187
|
!this.escalated.has(run.id)) {
|
|
@@ -257,15 +299,34 @@ export class WorkerStallWatchdog {
|
|
|
257
299
|
// Budget is consumed by the ATTEMPT, success or not — a rejecting engine call must not
|
|
258
300
|
// be retried indefinitely on the platform's own initiative.
|
|
259
301
|
this.escalationCount.set(run.id, used + 1);
|
|
302
|
+
// Route the re-dispatch to a DIFFERENT seat when the run's pool offers one (perf#4):
|
|
303
|
+
// the current seat just sat silent past the escalation threshold, and seats this run
|
|
304
|
+
// already stall-reassigned away from are skipped too. No distinct candidate (single-seat
|
|
305
|
+
// pool, or the pool is exhausted) falls back to the in-place recycle — still safe, the
|
|
306
|
+
// engine supersedes the stale turn either way. `run.cli` unknown keeps today's shape:
|
|
307
|
+
// pass nothing and let the engine's council pick.
|
|
308
|
+
const target = this.pickFailoverSeat(run);
|
|
309
|
+
if (run.cli !== undefined) {
|
|
310
|
+
// Remember the stalled seat — watchdog-local, per-run; NEVER an error record (a
|
|
311
|
+
// stalled seat must not be conflated with an errored one for resume exclusion).
|
|
312
|
+
let stalled = this.stalledSeats.get(run.id);
|
|
313
|
+
if (stalled === undefined) {
|
|
314
|
+
stalled = new Set();
|
|
315
|
+
this.stalledSeats.set(run.id, stalled);
|
|
316
|
+
}
|
|
317
|
+
stalled.add(run.cli);
|
|
318
|
+
}
|
|
319
|
+
const seat = target ?? run.cli;
|
|
260
320
|
try {
|
|
261
|
-
await this.deps.escalation?.reassign(run.id, ord,
|
|
321
|
+
await this.deps.escalation?.reassign(run.id, ord, seat);
|
|
262
322
|
frame = {
|
|
263
323
|
...base,
|
|
264
324
|
action: 'reassign',
|
|
265
325
|
outcome: 'ok',
|
|
266
326
|
needsYou: false,
|
|
267
327
|
escalations: used + 1,
|
|
268
|
-
...(
|
|
328
|
+
...(seat !== undefined ? { cli: seat } : {}),
|
|
329
|
+
...(run.cli !== undefined ? { previousCli: run.cli } : {}),
|
|
269
330
|
};
|
|
270
331
|
}
|
|
271
332
|
catch (err) {
|
|
@@ -294,8 +355,12 @@ export class WorkerStallWatchdog {
|
|
|
294
355
|
`needs-you frame broadcast, the run was NOT touched`);
|
|
295
356
|
}
|
|
296
357
|
else if (frame.outcome === 'ok') {
|
|
297
|
-
|
|
298
|
-
|
|
358
|
+
const routing = frame.cli !== undefined && frame.previousCli !== undefined && frame.cli !== frame.previousCli
|
|
359
|
+
? `failed over ${frame.previousCli} → ${frame.cli}`
|
|
360
|
+
: frame.cli !== undefined
|
|
361
|
+
? `reassigned in place (seat ${frame.cli})`
|
|
362
|
+
: `reassigned (council re-picks the seat)`;
|
|
363
|
+
this.log(`[stall-watchdog] ESCALATED ${where}: ${quiet} — ${routing} ` +
|
|
299
364
|
`(automatic recovery ${frame.escalations}/${escalation.maxPerRun}; the stale turn is ` +
|
|
300
365
|
`superseded and the unit re-dispatched)`);
|
|
301
366
|
}
|
|
@@ -308,5 +373,19 @@ export class WorkerStallWatchdog {
|
|
|
308
373
|
`happen (${frame.error ?? 'unknown error'}); needs-you frame broadcast`);
|
|
309
374
|
}
|
|
310
375
|
}
|
|
376
|
+
/**
|
|
377
|
+
* The failover TARGET for a stall reassign (perf#4): the first seat of the run's own pool
|
|
378
|
+
* that is neither the currently-stalled seat nor one this run already stall-reassigned away
|
|
379
|
+
* from. `undefined` = no distinct candidate (no pool known, a single-seat pool, or every
|
|
380
|
+
* other seat already stalled here) — the caller then recycles in place, which is today's
|
|
381
|
+
* (still safe) behaviour. Pool order is `session.clis` order: deterministic, no health
|
|
382
|
+
* heuristics — the per-run budget bounds how far the rotation can walk.
|
|
383
|
+
*/
|
|
384
|
+
pickFailoverSeat(run) {
|
|
385
|
+
if (run.cli === undefined)
|
|
386
|
+
return undefined; // unknown current seat → council re-pick
|
|
387
|
+
const stalled = this.stalledSeats.get(run.id);
|
|
388
|
+
return (run.seats ?? []).find((s) => s !== run.cli && !(stalled?.has(s) ?? false));
|
|
389
|
+
}
|
|
311
390
|
}
|
|
312
391
|
//# sourceMappingURL=stall-watchdog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stall-watchdog.js","sourceRoot":"","sources":["../../src/api/stall-watchdog.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stall-watchdog.js","sourceRoot":"","sources":["../../src/api/stall-watchdog.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,9 @@ export interface RollupDeps {
|
|
|
24
24
|
deliveryUrlFor: (runId: string) => string | undefined;
|
|
25
25
|
/** The shared TTL-memoized probes behind `'stranded'`/`'vacuous'`. */
|
|
26
26
|
vacuity: VacuityProbes;
|
|
27
|
+
/** ERROR-level channel — only a NON-probe derivation throw (a defect) is reported here; the
|
|
28
|
+
* expected probe-unavailable degrade stays quiet (the probe layer already said it). */
|
|
29
|
+
logDefect?: (msg: string) => void;
|
|
27
30
|
}
|
|
28
31
|
/** Index a session list by run id — built once per request from ONE `sessionsDetail()` read. */
|
|
29
32
|
export declare function sessionsById(views: SessionView[]): Map<string, SessionView>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/campaigns/rollup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAEV,QAAQ,EAER,QAAQ,EACR,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/campaigns/rollup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAEV,QAAQ,EAER,QAAQ,EACR,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,sFAAsF;AACtF,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,qEAAqE;IACrE,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACtD,sEAAsE;IACtE,OAAO,EAAE,aAAa,CAAC;IACvB;4FACwF;IACxF,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,gGAAgG;AAChG,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAE3E;AA+CD;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAC9B,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,QAAQ,CAAC,CAwBnB;AAED,6FAA6F;AAC7F,wBAAsB,WAAW,CAC/B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAC9B,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,QAAQ,EAAE,CAAC,CAarB"}
|
package/dist/campaigns/rollup.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* list would silently lose archived siblings. This join reads the full session set, so an
|
|
15
15
|
* archived node still reports its delivery honestly.
|
|
16
16
|
*/
|
|
17
|
-
import { deliveryStateWithVacuity, isDeliverConflictStranded, } from '../api/delivery-index.js';
|
|
17
|
+
import { VacuityProbeUnavailable, deliveryStateOf, deliveryStateWithVacuity, isDeliverConflictStranded, } from '../api/delivery-index.js';
|
|
18
18
|
/** Index a session list by run id — built once per request from ONE `sessionsDetail()` read. */
|
|
19
19
|
export function sessionsById(views) {
|
|
20
20
|
return new Map(views.map((v) => [v.session.id, v]));
|
|
@@ -31,7 +31,22 @@ async function deliveryOf(view, deps) {
|
|
|
31
31
|
return { delivery: 'delivered', deliverUrl: url };
|
|
32
32
|
if (isDeliverConflictStranded(view))
|
|
33
33
|
return { delivery: 'stranded' };
|
|
34
|
-
|
|
34
|
+
let state;
|
|
35
|
+
try {
|
|
36
|
+
state = await deliveryStateWithVacuity(view.session, undefined, deps.vacuity);
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
// The production probes throw `VacuityProbeUnavailable` when git could not answer — the
|
|
40
|
+
// absence of an answer, not a verdict (PR #435 review). Serve THIS request the stat-only
|
|
41
|
+
// tri-state — the same degrade the run DTOs' cache miss answers — rather than 500 a whole
|
|
42
|
+
// campaign scoreboard over one raced worktree; the next request re-probes past the short
|
|
43
|
+
// failure memo. Any OTHER throw is a DEFECT (a bug, not weather): still degrade — a read
|
|
44
|
+
// endpoint should answer — but say so loudly and distinguishably, never swallow it.
|
|
45
|
+
if (!(err instanceof VacuityProbeUnavailable)) {
|
|
46
|
+
deps.logDefect?.(`[campaigns] DEFECT: delivery derivation for ${view.session.id} threw a non-probe error (served the stat-only label): ${err instanceof Error ? (err.stack ?? err.message) : String(err)}`);
|
|
47
|
+
}
|
|
48
|
+
state = deliveryStateOf(view.session, undefined, deps.vacuity.worktreeExists);
|
|
49
|
+
}
|
|
35
50
|
return {
|
|
36
51
|
delivery: state.delivery,
|
|
37
52
|
...(state.deliverUrl !== undefined ? { deliverUrl: state.deliverUrl } : {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollup.js","sourceRoot":"","sources":["../../src/campaigns/rollup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AASH,OAAO,EACL,wBAAwB,EACxB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"rollup.js","sourceRoot":"","sources":["../../src/campaigns/rollup.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,10 +59,10 @@ export declare const LaunchCampaignSchema: z.ZodObject<{
|
|
|
59
59
|
tool?: {
|
|
60
60
|
cmd: string[];
|
|
61
61
|
} | undefined;
|
|
62
|
+
repoRef?: string | undefined;
|
|
62
63
|
deps?: string[] | undefined;
|
|
63
64
|
title?: string | undefined;
|
|
64
65
|
depsCondition?: "on_success" | "on_terminal" | undefined;
|
|
65
|
-
repoRef?: string | undefined;
|
|
66
66
|
}, {
|
|
67
67
|
id: string;
|
|
68
68
|
agent?: {
|
|
@@ -72,10 +72,10 @@ export declare const LaunchCampaignSchema: z.ZodObject<{
|
|
|
72
72
|
tool?: {
|
|
73
73
|
cmd: string[];
|
|
74
74
|
} | undefined;
|
|
75
|
+
repoRef?: string | undefined;
|
|
75
76
|
deps?: string[] | undefined;
|
|
76
77
|
title?: string | undefined;
|
|
77
78
|
depsCondition?: "on_success" | "on_terminal" | undefined;
|
|
78
|
-
repoRef?: string | undefined;
|
|
79
79
|
}>, "many">;
|
|
80
80
|
policy: z.ZodOptional<z.ZodEnum<["fail_fast", "continue_independent", "human_gate_on_failure"]>>;
|
|
81
81
|
maxConcurrency: z.ZodOptional<z.ZodNumber>;
|
|
@@ -92,10 +92,10 @@ export declare const LaunchCampaignSchema: z.ZodObject<{
|
|
|
92
92
|
tool?: {
|
|
93
93
|
cmd: string[];
|
|
94
94
|
} | undefined;
|
|
95
|
+
repoRef?: string | undefined;
|
|
95
96
|
deps?: string[] | undefined;
|
|
96
97
|
title?: string | undefined;
|
|
97
98
|
depsCondition?: "on_success" | "on_terminal" | undefined;
|
|
98
|
-
repoRef?: string | undefined;
|
|
99
99
|
}[];
|
|
100
100
|
id?: string | undefined;
|
|
101
101
|
name?: string | undefined;
|
|
@@ -114,10 +114,10 @@ export declare const LaunchCampaignSchema: z.ZodObject<{
|
|
|
114
114
|
tool?: {
|
|
115
115
|
cmd: string[];
|
|
116
116
|
} | undefined;
|
|
117
|
+
repoRef?: string | undefined;
|
|
117
118
|
deps?: string[] | undefined;
|
|
118
119
|
title?: string | undefined;
|
|
119
120
|
depsCondition?: "on_success" | "on_terminal" | undefined;
|
|
120
|
-
repoRef?: string | undefined;
|
|
121
121
|
}[];
|
|
122
122
|
id?: string | undefined;
|
|
123
123
|
name?: string | undefined;
|
package/dist/core/types.d.ts
CHANGED
|
@@ -115,9 +115,25 @@ export interface LaunchRunInput {
|
|
|
115
115
|
}
|
|
116
116
|
/** Default `workerStallMinutes` (crew#287): silent minutes before the stall watchdog fires. */
|
|
117
117
|
export declare const DEFAULT_WORKER_STALL_MINUTES = 15;
|
|
118
|
+
/**
|
|
119
|
+
* Default `workerStallEscalateMinutes` (perf#4): silent minutes before the watchdog ACTS.
|
|
120
|
+
* The escalation ladder is ON BY DEFAULT as of perf#4 — run 616c8661 sat wedged for a full 2h
|
|
121
|
+
* turn ceiling (106 min of output silence) while the detection-only watchdog fired once and
|
|
122
|
+
* watched; the engine's `reassignUnit` supersedes the wedged turn safely (attempt bump + epoch
|
|
123
|
+
* cancel: the stale turn's late output drops, no double-charge), so acting is strictly better
|
|
124
|
+
* than watching. An explicit `workerStallEscalateMinutes: 0` disarms it (the crew#341 opt-out).
|
|
125
|
+
*
|
|
126
|
+
* WHY 30: the trigger clock (silence since the last CoreEvent) is exactly the clock a slow but
|
|
127
|
+
* legitimate first turn rides — the recon's max legitimate time-to-first-output across 68 units
|
|
128
|
+
* was 1,161s ≈ 19.35 min, which leaves only a 3–6% margin at a 20-minute threshold. 30 minutes
|
|
129
|
+
* gives ~55% headroom over that observed worst case while still recovering ~4x faster than the
|
|
130
|
+
* 2h ceiling. The 15-minute detection (notify) rung is unchanged.
|
|
131
|
+
*/
|
|
132
|
+
export declare const DEFAULT_WORKER_STALL_ESCALATE_MINUTES = 30;
|
|
118
133
|
/**
|
|
119
134
|
* Default `workerStallEscalateAction` (crew#341) when escalation is armed: recycle the wedged
|
|
120
|
-
* cursor unit
|
|
135
|
+
* cursor unit via the engine's `reassignUnit` — routed to a DIFFERENT seat from the run's pool
|
|
136
|
+
* when one is available (perf#4), in place otherwise.
|
|
121
137
|
*/
|
|
122
138
|
export declare const DEFAULT_WORKER_STALL_ESCALATE_ACTION: "reassign";
|
|
123
139
|
/**
|
|
@@ -130,9 +146,9 @@ export declare const DEFAULT_WORKER_STALL_MAX_ESCALATIONS = 2;
|
|
|
130
146
|
* (`workerStallMinutes`, crew#287; `workerStallEscalateMinutes` /
|
|
131
147
|
* `workerStallEscalateAction` / `workerStallMaxEscalations`, crew#341) live in the published
|
|
132
148
|
* contract as of api-types 0.18.0 and are INHERITED here — what remains local is the
|
|
133
|
-
* `studio.*` restatement below. Note the escalation
|
|
134
|
-
* (`workerStallEscalateMinutes`
|
|
135
|
-
*
|
|
149
|
+
* `studio.*` restatement below. Note the escalation ladder is ON BY DEFAULT as of perf#4
|
|
150
|
+
* (`workerStallEscalateMinutes` defaults to [`DEFAULT_WORKER_STALL_ESCALATE_MINUTES`]); an
|
|
151
|
+
* explicit `0` disarms it.
|
|
136
152
|
*/
|
|
137
153
|
export interface CrewSystemSettings extends SystemSettings {
|
|
138
154
|
/**
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mBAAmB,uBAAuB,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,8FAA8F;AAC9F,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,YAAY,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC;IACf;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,+FAA+F;AAC/F,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mBAAmB,uBAAuB,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,8FAA8F;AAC9F,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,YAAY,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC;IACf;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,+FAA+F;AAC/F,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qCAAqC,KAAK,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,EAAG,UAAmB,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,oCAAoC,IAAI,CAAC;AAEtD;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD;;;;;;;;;OASG;IACH,CAAC,GAAG,EAAE,UAAU,MAAM,EAAE,GAAG,OAAO,CAAC;CACpC;AAED,eAAO,MAAM,gBAAgB,EAAE,kBAU9B,CAAC"}
|
package/dist/core/types.js
CHANGED
|
@@ -20,9 +20,25 @@
|
|
|
20
20
|
*/
|
|
21
21
|
/** Default `workerStallMinutes` (crew#287): silent minutes before the stall watchdog fires. */
|
|
22
22
|
export const DEFAULT_WORKER_STALL_MINUTES = 15;
|
|
23
|
+
/**
|
|
24
|
+
* Default `workerStallEscalateMinutes` (perf#4): silent minutes before the watchdog ACTS.
|
|
25
|
+
* The escalation ladder is ON BY DEFAULT as of perf#4 — run 616c8661 sat wedged for a full 2h
|
|
26
|
+
* turn ceiling (106 min of output silence) while the detection-only watchdog fired once and
|
|
27
|
+
* watched; the engine's `reassignUnit` supersedes the wedged turn safely (attempt bump + epoch
|
|
28
|
+
* cancel: the stale turn's late output drops, no double-charge), so acting is strictly better
|
|
29
|
+
* than watching. An explicit `workerStallEscalateMinutes: 0` disarms it (the crew#341 opt-out).
|
|
30
|
+
*
|
|
31
|
+
* WHY 30: the trigger clock (silence since the last CoreEvent) is exactly the clock a slow but
|
|
32
|
+
* legitimate first turn rides — the recon's max legitimate time-to-first-output across 68 units
|
|
33
|
+
* was 1,161s ≈ 19.35 min, which leaves only a 3–6% margin at a 20-minute threshold. 30 minutes
|
|
34
|
+
* gives ~55% headroom over that observed worst case while still recovering ~4x faster than the
|
|
35
|
+
* 2h ceiling. The 15-minute detection (notify) rung is unchanged.
|
|
36
|
+
*/
|
|
37
|
+
export const DEFAULT_WORKER_STALL_ESCALATE_MINUTES = 30;
|
|
23
38
|
/**
|
|
24
39
|
* Default `workerStallEscalateAction` (crew#341) when escalation is armed: recycle the wedged
|
|
25
|
-
* cursor unit
|
|
40
|
+
* cursor unit via the engine's `reassignUnit` — routed to a DIFFERENT seat from the run's pool
|
|
41
|
+
* when one is available (perf#4), in place otherwise.
|
|
26
42
|
*/
|
|
27
43
|
export const DEFAULT_WORKER_STALL_ESCALATE_ACTION = 'reassign';
|
|
28
44
|
/**
|
|
@@ -33,6 +49,9 @@ export const DEFAULT_WORKER_STALL_MAX_ESCALATIONS = 2;
|
|
|
33
49
|
export const DEFAULT_SETTINGS = {
|
|
34
50
|
graphNodeLimit: 150,
|
|
35
51
|
workerStallMinutes: DEFAULT_WORKER_STALL_MINUTES,
|
|
52
|
+
// perf#4 — the escalation ladder is armed by default: 30 silent minutes → reassign the wedged
|
|
53
|
+
// cursor unit to a different seat. An explicit 0 (via PUT /settings or settings.json) disarms.
|
|
54
|
+
workerStallEscalateMinutes: DEFAULT_WORKER_STALL_ESCALATE_MINUTES,
|
|
36
55
|
// crew#393 — repo-scoped CODE-WORK launches (a def with an `executes_code` phase) DELIVER by
|
|
37
56
|
// default: a completed code run ends with a PR, or with the operator's explicit
|
|
38
57
|
// `deliver: 'none'` (or this setting flipped) saying why not.
|
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAkGH,+FAA+F;AAC/F,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAE/C
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAkGH,+FAA+F;AAC/F,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAE/C;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAG,EAAE,CAAC;AAExD;;;;GAIG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,UAAmB,CAAC;AAExE;;;GAGG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,CAAC;AAyBtD,MAAM,CAAC,MAAM,gBAAgB,GAAuB;IAClD,cAAc,EAAE,GAAG;IACnB,kBAAkB,EAAE,4BAA4B;IAChD,8FAA8F;IAC9F,+FAA+F;IAC/F,0BAA0B,EAAE,qCAAqC;IACjE,6FAA6F;IAC7F,gFAAgF;IAChF,8DAA8D;IAC9D,cAAc,EAAE,IAAI;CACrB,CAAC"}
|
package/endpoint-manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
|
-
"apiTypesVersion": "0.
|
|
3
|
+
"apiTypesVersion": "0.20.0",
|
|
4
4
|
"endpoints": [
|
|
5
5
|
{
|
|
6
6
|
"method": "GET",
|
|
@@ -533,7 +533,8 @@
|
|
|
533
533
|
"requestType": null,
|
|
534
534
|
"responseType": "{ runs: SessionView[] }",
|
|
535
535
|
"statusCodes": [
|
|
536
|
-
200
|
|
536
|
+
200,
|
|
537
|
+
400
|
|
537
538
|
]
|
|
538
539
|
},
|
|
539
540
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wicked-crew",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.14",
|
|
4
4
|
"description": "wicked-crew daemon — thin REST+WS bridge to the wicked-core engine via wicked-core-ts",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"fastify": "^5.0.0",
|
|
38
38
|
"pi-acp": "^0.0.32",
|
|
39
39
|
"wicked-bus": "^2.3.1",
|
|
40
|
-
"wicked-core-ts": "^0.7.
|
|
40
|
+
"wicked-core-ts": "^0.7.11",
|
|
41
41
|
"wicked-ledger": "^0.4.0",
|
|
42
42
|
"zod": "^3.23.0"
|
|
43
43
|
},
|