borgmcp 4.2.2 → 4.2.3
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/codex-app-wake.d.ts +30 -0
- package/dist/codex-app-wake.d.ts.map +1 -1
- package/dist/codex-app-wake.js +137 -7
- package/dist/codex-app-wake.js.map +1 -1
- package/dist/stream-status.d.ts.map +1 -1
- package/dist/stream-status.js +11 -0
- package/dist/stream-status.js.map +1 -1
- package/dist/wake-path-health.d.ts +3 -1
- package/dist/wake-path-health.d.ts.map +1 -1
- package/dist/wake-path-health.js +9 -2
- package/dist/wake-path-health.js.map +1 -1
- package/package.json +1 -1
- package/src/codex-app-wake.ts +178 -7
- package/src/stream-status.ts +14 -0
- package/src/wake-path-health.ts +17 -2
package/dist/codex-app-wake.d.ts
CHANGED
|
@@ -34,6 +34,36 @@ export declare function probeCodexBridgeArmed(active: {
|
|
|
34
34
|
}): Promise<boolean | null>;
|
|
35
35
|
/** gh#857 WI-2: last successful wake delivery time (for the heartbeat gate). */
|
|
36
36
|
export declare function getLastDeliveredAt(): number | null;
|
|
37
|
+
type CodexInjectionResult = 'delivered' | 'deferred' | 'failed';
|
|
38
|
+
export interface CodexDeliveryState {
|
|
39
|
+
/** Opaque thread id of the last-resolved wake target (never a socket path). */
|
|
40
|
+
lastTargetThreadId: string | null;
|
|
41
|
+
/** HISTORICAL last attempt time (reporting only; not a health input). */
|
|
42
|
+
lastInjectionAt: number | null;
|
|
43
|
+
/** HISTORICAL last attempt result (reporting only; not a health input). */
|
|
44
|
+
lastInjectionResult: CodexInjectionResult | null;
|
|
45
|
+
/** Secret-free error code/class of the last failed injection; never contents. */
|
|
46
|
+
lastInjectionFailureCode: string | null;
|
|
47
|
+
/** LIVE: entries currently deferred/retrying (not yet confirmed delivered). */
|
|
48
|
+
deferredEntryCount: number;
|
|
49
|
+
/** LIVE: a coalesced retry-drain loop is currently retrying deferred/missed wakes. */
|
|
50
|
+
retryDrainActive: boolean;
|
|
51
|
+
/** LIVE: an undelivered directed wake not tracked by the retry-drain queue. */
|
|
52
|
+
deliveryDeferred: boolean;
|
|
53
|
+
lastDeliveredAt: number | null;
|
|
54
|
+
}
|
|
55
|
+
/** Snapshot of the Codex wake-path delivery state for the health/status surface. */
|
|
56
|
+
export declare function getCodexDeliveryState(): CodexDeliveryState;
|
|
57
|
+
/**
|
|
58
|
+
* client#89: pure wake-path health for Codex, folding the LIVE delivery state
|
|
59
|
+
* into the raw "bridge armed" probe. A wake still pending redelivery — a live
|
|
60
|
+
* retry-drain, a non-empty deferred queue, or an undelivered heartbeat pending
|
|
61
|
+
* — is NOT a confirmed-healthy path (returns null = degraded). A positively-
|
|
62
|
+
* dead bridge dominates (false). Historical last-attempt results are NOT used
|
|
63
|
+
* here: they do not self-clear when work is drained by another path, so keying
|
|
64
|
+
* health off them would leave a recovered seat permanently degraded.
|
|
65
|
+
*/
|
|
66
|
+
export declare function codexWakePathHealthy(armed: boolean | null, state: CodexDeliveryState): boolean | null;
|
|
37
67
|
export interface CodexWakeDeps {
|
|
38
68
|
getActiveCube?: typeof getActiveCube;
|
|
39
69
|
getCodexWakeTarget?: typeof getCodexWakeTarget;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-app-wake.d.ts","sourceRoot":"","sources":["../src/codex-app-wake.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAqB5D,eAAO,MAAM,iBAAiB,iWACK,CAAC;AAEpC,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE/D;AAQD,eAAO,MAAM,oBAAoB,QAEyC,CAAC;AAE3E,wBAAgB,wBAAwB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAEtF;AAED,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,eAAe,CAK5F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC3C,IAAI,GAAE;IACJ,kBAAkB,CAAC,EAAE,OAAO,kBAAkB,CAAC;IAC/C,WAAW,CAAC,EAAE,OAAO,uBAAuB,CAAC;CACzC,GACL,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAWzB;AA0BD,gFAAgF;AAChF,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAElD;
|
|
1
|
+
{"version":3,"file":"codex-app-wake.d.ts","sourceRoot":"","sources":["../src/codex-app-wake.ts"],"names":[],"mappings":"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"}
|
package/dist/codex-app-wake.js
CHANGED
|
@@ -76,8 +76,78 @@ let lastDeliveredAt = null;
|
|
|
76
76
|
export function getLastDeliveredAt() {
|
|
77
77
|
return lastDeliveredAt;
|
|
78
78
|
}
|
|
79
|
+
// HISTORICAL reporting — the last injection attempt/result/failure. These are
|
|
80
|
+
// surfaced on the status surface for diagnosis; they are NOT used to decide
|
|
81
|
+
// health, because a historical result does not self-clear when work is drained
|
|
82
|
+
// by another path (manual read, server read-cursor recovery). Health keys off
|
|
83
|
+
// the LIVE signals below.
|
|
84
|
+
let lastInjectionAt = null;
|
|
85
|
+
let lastInjectionResult = null;
|
|
86
|
+
let lastInjectionFailureCode = null;
|
|
87
|
+
let lastTargetThreadId = null;
|
|
88
|
+
// client#89: a LIVE marker for undelivered directed wakes NOT tracked by the
|
|
89
|
+
// retry-drain queue (retryDrainActive / deferredEntryCount cover that queue and
|
|
90
|
+
// self-clear on prune/deliver). SET at every injection exit where an
|
|
91
|
+
// authoritatively-pending wake could not be delivered and is not queued: the
|
|
92
|
+
// heartbeat mid-turn skip / no-target return / transient failure, the per-entry
|
|
93
|
+
// no-target return for a still-pending scoped entry, and the retry-drain age-out
|
|
94
|
+
// hand-off. CLEARED when any delivery lands (markDelivered) and when the
|
|
95
|
+
// heartbeat authoritatively finds no pending work. It is a LIVE signal, not a
|
|
96
|
+
// historical result, so a seat that recovers by any path returns to healthy.
|
|
97
|
+
let deliveryDeferred = false;
|
|
98
|
+
/** Snapshot of the Codex wake-path delivery state for the health/status surface. */
|
|
99
|
+
export function getCodexDeliveryState() {
|
|
100
|
+
return {
|
|
101
|
+
lastTargetThreadId,
|
|
102
|
+
lastInjectionAt,
|
|
103
|
+
lastInjectionResult,
|
|
104
|
+
lastInjectionFailureCode,
|
|
105
|
+
deferredEntryCount: retryDrainSourceEntryIds.size + (retryDrainHasUnscopedWork ? 1 : 0),
|
|
106
|
+
retryDrainActive: retryDrainInFlight,
|
|
107
|
+
deliveryDeferred,
|
|
108
|
+
lastDeliveredAt,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
/** Reduce a caught error to a secret-free code/class — never its message. */
|
|
112
|
+
function injectionFailureCode(err) {
|
|
113
|
+
const code = err?.code;
|
|
114
|
+
if (typeof code === 'string' && code.length > 0)
|
|
115
|
+
return code;
|
|
116
|
+
if (err instanceof Error && err.name)
|
|
117
|
+
return err.name;
|
|
118
|
+
return 'unknown';
|
|
119
|
+
}
|
|
120
|
+
function recordInjectionResult(result, now, failureCode) {
|
|
121
|
+
lastInjectionAt = now();
|
|
122
|
+
lastInjectionResult = result;
|
|
123
|
+
lastInjectionFailureCode = result === 'failed' ? (failureCode ?? 'unknown') : null;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* client#89: pure wake-path health for Codex, folding the LIVE delivery state
|
|
127
|
+
* into the raw "bridge armed" probe. A wake still pending redelivery — a live
|
|
128
|
+
* retry-drain, a non-empty deferred queue, or an undelivered heartbeat pending
|
|
129
|
+
* — is NOT a confirmed-healthy path (returns null = degraded). A positively-
|
|
130
|
+
* dead bridge dominates (false). Historical last-attempt results are NOT used
|
|
131
|
+
* here: they do not self-clear when work is drained by another path, so keying
|
|
132
|
+
* health off them would leave a recovered seat permanently degraded.
|
|
133
|
+
*/
|
|
134
|
+
export function codexWakePathHealthy(armed, state) {
|
|
135
|
+
if (armed === false)
|
|
136
|
+
return false; // positively-dead bridge
|
|
137
|
+
if (armed === null)
|
|
138
|
+
return null; // could not probe → indeterminate
|
|
139
|
+
// Bridge armed. Degraded while any LIVE signal shows an unconfirmed delivery.
|
|
140
|
+
if (state.retryDrainActive ||
|
|
141
|
+
state.deferredEntryCount > 0 ||
|
|
142
|
+
state.deliveryDeferred) {
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
79
147
|
function markDelivered(deps) {
|
|
80
148
|
lastDeliveredAt = (deps.now ?? Date.now)();
|
|
149
|
+
// client#89: any confirmed delivery clears the live heartbeat-pending marker.
|
|
150
|
+
deliveryDeferred = false;
|
|
81
151
|
}
|
|
82
152
|
// gh#857 WI-2: a single-in-flight guard for the heartbeat tick (mirrors
|
|
83
153
|
// wakeInFlight + retryDrainInFlight). Without it, a tick that stalls in IO past
|
|
@@ -214,9 +284,19 @@ async function wakeCodexTargeted(reason, deliveryIdentity, sourceEntryId, deps)
|
|
|
214
284
|
// gh#855: resolve FRESH (live env socket + re-resolved thread), falling back
|
|
215
285
|
// to the launch-recorded file only when the env socket is absent.
|
|
216
286
|
const resolved = await resolveFreshCodexWakeTarget(active, deps);
|
|
217
|
-
if (!resolved)
|
|
287
|
+
if (!resolved) {
|
|
288
|
+
// client#89: a scoped entry passed the pending check above but no target
|
|
289
|
+
// resolves — undeliverable, and this path does NOT schedule a retry-drain
|
|
290
|
+
// (the design leaves it to the next wake / the heartbeat backstop). Mark
|
|
291
|
+
// the deferral live so health reads degraded rather than armed. An
|
|
292
|
+
// unscoped wake carries no authoritative pending signal, so it does not
|
|
293
|
+
// set the marker. Retry behavior is unchanged.
|
|
294
|
+
if (sourceEntryId)
|
|
295
|
+
deliveryDeferred = true;
|
|
218
296
|
return;
|
|
297
|
+
}
|
|
219
298
|
const { socketPath, threadId } = resolved;
|
|
299
|
+
lastTargetThreadId = threadId; // client#89: record the selected target
|
|
220
300
|
const wakeKey = `${threadId}\0${deliveryIdentity ?? reason}`;
|
|
221
301
|
if (deliveredWakeKeys.has(wakeKey))
|
|
222
302
|
return; // dedup before opening the wake socket
|
|
@@ -229,6 +309,7 @@ async function wakeCodexTargeted(reason, deliveryIdentity, sourceEntryId, deps)
|
|
|
229
309
|
// now. Schedule the retry-drain (coalesced, retried-until-delivered) so
|
|
230
310
|
// the burst's entries are drained once the thread goes idle; codex has no
|
|
231
311
|
// on-disk tail fallback like Claude's borg-inbox-monitor.
|
|
312
|
+
recordInjectionResult('deferred', deps.now ?? Date.now); // client#89
|
|
232
313
|
scheduleRetryDrain(deps, sourceEntryId);
|
|
233
314
|
return;
|
|
234
315
|
}
|
|
@@ -236,17 +317,19 @@ async function wakeCodexTargeted(reason, deliveryIdentity, sourceEntryId, deps)
|
|
|
236
317
|
return;
|
|
237
318
|
await client.startTurn(threadId, reason);
|
|
238
319
|
rememberDeliveredWake(wakeKey);
|
|
320
|
+
recordInjectionResult('delivered', deps.now ?? Date.now); // client#89
|
|
239
321
|
markDelivered(deps);
|
|
240
322
|
}
|
|
241
323
|
finally {
|
|
242
324
|
client.close();
|
|
243
325
|
}
|
|
244
326
|
}
|
|
245
|
-
catch {
|
|
327
|
+
catch (err) {
|
|
246
328
|
// gh#857: a transient connect/read/startTurn failure must NOT be silently
|
|
247
329
|
// swallowed (the old best-effort drop let a single blip lose an entry).
|
|
248
330
|
// Schedule the retry-drain so the wake is retried-until-delivered; the SSE
|
|
249
331
|
// stream is never broken (this is fire-and-forget).
|
|
332
|
+
recordInjectionResult('failed', deps.now ?? Date.now, injectionFailureCode(err)); // client#89
|
|
250
333
|
scheduleRetryDrain(deps, sourceEntryId);
|
|
251
334
|
}
|
|
252
335
|
finally {
|
|
@@ -314,11 +397,13 @@ async function runRetryDrainLoop(deps) {
|
|
|
314
397
|
if (!resolved)
|
|
315
398
|
continue; // thread not loaded yet → retry (age-capped)
|
|
316
399
|
const { socketPath, threadId } = resolved;
|
|
400
|
+
lastTargetThreadId = threadId; // client#89: record the selected target
|
|
317
401
|
const client = makeCodexClient(socketPath, deps);
|
|
318
402
|
await client.connect();
|
|
319
403
|
try {
|
|
320
404
|
const thread = await client.readThread(threadId);
|
|
321
405
|
if (thread?.status?.type === 'active') {
|
|
406
|
+
recordInjectionResult('deferred', now); // client#89
|
|
322
407
|
continue; // re-defer: still mid-turn (backoff before next poll)
|
|
323
408
|
}
|
|
324
409
|
for (const entryId of retryDrainSourceEntryIds) {
|
|
@@ -330,6 +415,7 @@ async function runRetryDrainLoop(deps) {
|
|
|
330
415
|
await client.startTurn(threadId, CODEX_CATCHUP_PROMPT);
|
|
331
416
|
retryDrainSourceEntryIds.clear();
|
|
332
417
|
retryDrainHasUnscopedWork = false;
|
|
418
|
+
recordInjectionResult('delivered', now); // client#89
|
|
333
419
|
markDelivered(deps);
|
|
334
420
|
return; // drain delivered → server read-cursor drains all unread → done
|
|
335
421
|
}
|
|
@@ -337,15 +423,26 @@ async function runRetryDrainLoop(deps) {
|
|
|
337
423
|
client.close();
|
|
338
424
|
}
|
|
339
425
|
}
|
|
340
|
-
catch {
|
|
426
|
+
catch (err) {
|
|
341
427
|
// transient socket/read error must not abort the loop — keep retrying with
|
|
342
428
|
// backoff until reachable+idle or the age cap; never throws into SSE.
|
|
429
|
+
recordInjectionResult('failed', now, injectionFailureCode(err)); // client#89
|
|
343
430
|
}
|
|
344
431
|
finally {
|
|
345
432
|
releaseInjectLock();
|
|
346
433
|
}
|
|
347
434
|
}
|
|
348
435
|
// aged out: the gh#857 WI-2 periodic heartbeat is the ultimate backstop.
|
|
436
|
+
// client#89: if obligations remain unfinished (the thread stayed mid-turn
|
|
437
|
+
// through the age cap), the loop is gone but the entries are still pending.
|
|
438
|
+
// Hand off to the live marker and clear the retry-drain set, so health stays
|
|
439
|
+
// degraded (not stuck via a stale deferredEntryCount after the loop exits)
|
|
440
|
+
// and clears when a delivery lands or the unread authoritatively empties.
|
|
441
|
+
if (retryDrainSourceEntryIds.size > 0 || retryDrainHasUnscopedWork) {
|
|
442
|
+
retryDrainSourceEntryIds.clear();
|
|
443
|
+
retryDrainHasUnscopedWork = false;
|
|
444
|
+
deliveryDeferred = true;
|
|
445
|
+
}
|
|
349
446
|
}
|
|
350
447
|
/**
|
|
351
448
|
* gh#857 WI-2: codex /loop-equivalent heartbeat cadence. Codex retains this
|
|
@@ -389,19 +486,41 @@ export async function fireCodexHeartbeatTick(deps = {}, cadenceMs = CODEX_HEARTB
|
|
|
389
486
|
// authoritative unread state without advancing its cursor; only then touch
|
|
390
487
|
// the app-server socket or resolve a thread.
|
|
391
488
|
const hasPendingWork = deps.hasPendingWork ?? hasPendingWakeActivity;
|
|
392
|
-
if (!(await hasPendingWork(active)))
|
|
489
|
+
if (!(await hasPendingWork(active))) {
|
|
490
|
+
// client#89: authoritative unread is empty → no undelivered wake remains.
|
|
491
|
+
// Clear the live heartbeat-pending marker so a seat that recovered by any
|
|
492
|
+
// path (manual read, server read-cursor drain) returns to healthy.
|
|
493
|
+
deliveryDeferred = false;
|
|
393
494
|
return;
|
|
495
|
+
}
|
|
394
496
|
const resolved = await resolveFreshCodexWakeTarget(active, deps);
|
|
395
|
-
if (!resolved)
|
|
497
|
+
if (!resolved) {
|
|
498
|
+
// client#89: authoritative pending work exists but no fresh target/thread
|
|
499
|
+
// resolves — the wake is UNDELIVERABLE this tick. The persisted-target
|
|
500
|
+
// probe can still read armed, so mark the deferral live (health degraded)
|
|
501
|
+
// until a target resolves and delivers, or the unread authoritatively
|
|
502
|
+
// clears. Cadence/retry behavior is unchanged (the next tick still tries).
|
|
503
|
+
deliveryDeferred = true;
|
|
396
504
|
return; // thread not loaded yet → next tick retries
|
|
505
|
+
}
|
|
506
|
+
lastTargetThreadId = resolved.threadId; // client#89: record the selected target
|
|
397
507
|
const client = makeCodexClient(resolved.socketPath, deps);
|
|
398
508
|
await client.connect();
|
|
399
509
|
try {
|
|
400
510
|
const thread = await client.readThread(resolved.threadId);
|
|
401
|
-
if (thread?.status?.type === 'active')
|
|
511
|
+
if (thread?.status?.type === 'active') {
|
|
512
|
+
// client#89: we passed hasPendingWork above, so a mid-turn thread here
|
|
513
|
+
// means a directed entry is deferred. Mark it LIVE-pending (the heartbeat
|
|
514
|
+
// does not queue into the retry-drain) so the health surface reads
|
|
515
|
+
// degraded until a delivery lands or the unread authoritatively clears.
|
|
516
|
+
// Skip semantics are unchanged — the next tick still retries.
|
|
517
|
+
recordInjectionResult('deferred', deps.now ?? Date.now);
|
|
518
|
+
deliveryDeferred = true;
|
|
402
519
|
return; // mid-turn → skip; next tick retries
|
|
520
|
+
}
|
|
403
521
|
await client.startTurn(resolved.threadId, CODEX_CATCHUP_PROMPT);
|
|
404
|
-
// markDelivered
|
|
522
|
+
// markDelivered clears the live heartbeat-pending marker.
|
|
523
|
+
recordInjectionResult('delivered', deps.now ?? Date.now); // client#89
|
|
405
524
|
markDelivered(deps);
|
|
406
525
|
}
|
|
407
526
|
finally {
|
|
@@ -413,6 +532,11 @@ export async function fireCodexHeartbeatTick(deps = {}, cadenceMs = CODEX_HEARTB
|
|
|
413
532
|
// path is gone; signal teardown so the timer stops ticking against a dead
|
|
414
533
|
// socket (re-armed when an active cube returns). Other (transient) errors are
|
|
415
534
|
// best-effort skips — never break the SSE stream; next tick retries.
|
|
535
|
+
// client#89: we passed hasPendingWork, so a failure here leaves pending work
|
|
536
|
+
// undelivered → mark it live-pending (a dead bridge is separately false via
|
|
537
|
+
// the armed probe). Clears on the next authoritative-empty tick or delivery.
|
|
538
|
+
recordInjectionResult('failed', deps.now ?? Date.now, injectionFailureCode(err)); // client#89
|
|
539
|
+
deliveryDeferred = true;
|
|
416
540
|
if (isAppServerDeadError(err))
|
|
417
541
|
deps.onAppServerSocketDead?.();
|
|
418
542
|
}
|
|
@@ -456,6 +580,12 @@ export function resetCodexWakeForTests() {
|
|
|
456
580
|
lastDeliveredAt = null;
|
|
457
581
|
heartbeatInFlight = false;
|
|
458
582
|
injectInFlight = false;
|
|
583
|
+
// client#89 delivery-state observability
|
|
584
|
+
lastInjectionAt = null;
|
|
585
|
+
lastInjectionResult = null;
|
|
586
|
+
lastInjectionFailureCode = null;
|
|
587
|
+
lastTargetThreadId = null;
|
|
588
|
+
deliveryDeferred = false;
|
|
459
589
|
}
|
|
460
590
|
function rememberDeliveredWake(key) {
|
|
461
591
|
if (deliveredWakeKeys.has(key))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-app-wake.js","sourceRoot":"","sources":["../src/codex-app-wake.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codex-app-wake.js","sourceRoot":"","sources":["../src/codex-app-wake.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-status.d.ts","sourceRoot":"","sources":["../src/stream-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAOpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAC/B,OAAO,GAAG,IAAI,CA8BhB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAc7F;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,gFAAgF;IAChF,mBAAmB,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,kFAAkF;IAClF,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B;;;;OAIG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,oDAAoD;IACpD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,kDAAkD;IAClD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,kEAAkE;IAClE,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"stream-status.d.ts","sourceRoot":"","sources":["../src/stream-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAOpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAC/B,OAAO,GAAG,IAAI,CA8BhB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAc7F;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,gFAAgF;IAChF,mBAAmB,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,kFAAkF;IAClF,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B;;;;OAIG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,oDAAoD;IACpD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,kDAAkD;IAClD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,kEAAkE;IAClE,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAoM/D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,YAAY,EAC1B,mBAAmB,EAAE,OAAO,GAAG,IAAI,GAClC,OAAO,CAET;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B,GAAG,MAAM,CAsCT"}
|
package/dist/stream-status.js
CHANGED
|
@@ -219,6 +219,17 @@ export function renderStreamStatus(inputs) {
|
|
|
219
219
|
lines.push(`- **OpenCode failed**: ${delivery.failed}`);
|
|
220
220
|
lines.push('- **OpenCode delivery-state meaning**: delivered-unconfirmed counts entries that may have been submitted but are not visible in session history; failed counts entries that could not be submitted or were rejected, until the durable source entry is observed consumed.');
|
|
221
221
|
}
|
|
222
|
+
// client#89: Codex remote-control delivery state — distinct from SSE health.
|
|
223
|
+
// Surfaces the selected target, last bounded injection attempt/result,
|
|
224
|
+
// deferred-queue state, and last failure (a secret-free code/class only).
|
|
225
|
+
if (wakePath.agentKind === 'codex' && wakePath.codex) {
|
|
226
|
+
const d = wakePath.codex;
|
|
227
|
+
lines.push(`- **Codex wake target thread**: ${d.lastTargetThreadId ?? '_(none resolved yet)_'}`);
|
|
228
|
+
lines.push(`- **Codex last injection**: ${d.lastInjectionResult ?? '_(none yet)_'}${d.lastInjectionAt ? ` at ${new Date(d.lastInjectionAt).toISOString()}` : ''}`);
|
|
229
|
+
lines.push(`- **Codex deferred/retrying entries**: ${d.deferredEntryCount}${d.retryDrainActive ? ' (retry-drain active)' : ''}${d.deliveryDeferred ? ' — undelivered wake pending' : ''}`);
|
|
230
|
+
lines.push(`- **Codex last failure code**: ${d.lastInjectionFailureCode ?? '_(none)_'}`);
|
|
231
|
+
lines.push('- **Codex delivery-state meaning**: a deferred or retrying wake means a directed entry has not yet been confirmed delivered to the model — the wake path reads degraded (not healthy) until the wake is delivered or the unread log is drained, even though the app-server bridge is armed.');
|
|
232
|
+
}
|
|
222
233
|
// Runtime-specific wake-path warning. The wire-down case takes
|
|
223
234
|
// precedence above; an indeterminate signal remains honest and silent.
|
|
224
235
|
if (status.connected && wakePathHealthy === false) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-status.js","sourceRoot":"","sources":["../src/stream-status.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stream-status.js","sourceRoot":"","sources":["../src/stream-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,wBAAwB,CACtC,SAAwB,EACxB,gBAAgC;IAEhC,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,IAAI,CAAC;QACH,6DAA6D;QAC7D,+DAA+D;QAC/D,kEAAkE;QAClE,gEAAgE;QAChE,oEAAoE;QACpE,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;YAChD,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAC3B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,yEAAyE;YACzE,yEAAyE;YACzE,0EAA0E;YAC1E,wEAAwE;YACxE,uEAAuE;YACvE,0EAA0E;YAC1E,qEAAqE;YACrE,mDAAmD;YACnD,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACnC,kEAAkE;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,gBAAgC;IAClF,MAAM,KAAK,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC9D,IAAI,gBAAgB;QAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC;IACpE,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YACvC,YAAY,GAAG,IAAI,CAAC;YACpB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,IAAI,kBAAkB;gBAAE,OAAO,KAAK,CAAC;QAC/D,CAAC;QAAC,MAAM,CAAC;YACP,kEAAkE;QACpE,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAwBD;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAoB;IACrD,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAChG,MAAM,CAAC;IACT,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI;QAClC,SAAS,EAAE,QAAiB;QAC5B,OAAO,EAAE,mBAAmB;QAC5B,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC;IAEzC,MAAM,YAAY,GAChB,MAAM,CAAC,iBAAiB,KAAK,CAAC;QAC9B,MAAM,CAAC,kBAAkB,KAAK,IAAI;QAClC,CAAC,MAAM,CAAC,SAAS,CAAC;IACpB,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,KAAK,KAAK,wBAAwB,CAAC;IAC1E,MAAM,sBAAsB,GAAG,MAAM,CAAC,SAAS,EAAE,KAAK,KAAK,yBAAyB,CAAC;IACrF,MAAM,qBAAqB,GAAG,MAAM,CAAC,SAAS,EAAE,KAAK,KAAK,cAAc,CAAC;IAEzE,4DAA4D;IAC5D,gDAAgD;IAChD,IAAI,OAAe,CAAC;IACpB,IAAI,sBAAsB,EAAE,CAAC;QAC3B,OAAO,GAAG,wDAAwD,CAAC;IACrE,CAAC;SAAM,IAAI,YAAY,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,MAAM,CAAC,SAAU,CAAC;QAChC,OAAO,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ;YAC1C,CAAC,CAAC,qBAAqB,KAAK,CAAC,UAAU,SAAS,KAAK,CAAC,QAAQ,OAAO;YACrE,CAAC,CAAC,+CAA+C,CAAC;IACtD,CAAC;SAAM,IAAI,YAAY,EAAE,CAAC;QACxB,OAAO,GAAG,yBAAyB,CAAC;IACtC,CAAC;SAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC7B,OAAO,GAAG,4CAA4C,MAAM,CAAC,iBAAiB,MAAM,CAAC;IACvF,CAAC;SAAM,IAAI,eAAe,KAAK,KAAK,EAAE,CAAC;QACrC,OAAO,GAAG,QAAQ,CAAC,SAAS,KAAK,UAAU;YACzC,CAAC,CAAC,oDAAoD;YACtD,CAAC,CAAC,QAAQ,CAAC,SAAS,KAAK,OAAO;gBAC9B,CAAC,CAAC,qDAAqD;gBACvD,CAAC,CAAC,6DAA6D,CAAC;IACtE,CAAC;SAAM,IAAI,MAAM,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;QAC9C,gEAAgE;QAChE,oEAAoE;QACpE,4DAA4D;QAC5D,gDAAgD;QAChD,OAAO,GAAG,qDAAqD,CAAC;IAClE,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,oCAAoC,QAAQ,CACpD,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CACpC,KAAK,CAAC;IACT,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,sBAAsB,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IACtE,CAAC;SAAM,IAAI,qBAAqB,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IACzE,CAAC;SAAM,IAAI,YAAY,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IACvE,CAAC;SAAM,IAAI,YAAY,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,mEAAmE;IACnE,mEAAmE;IACnE,sEAAsE;IACtE,qEAAqE;IACrE,KAAK,CAAC,IAAI,CACR,6BACE,MAAM,CAAC,kBAAkB;QACvB,CAAC,CAAC,GAAG,MAAM,CAAC,kBAAkB,KAAK,QAAQ,CACvC,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CACpC,GAAG;QACN,CAAC,CAAC,cACN,EAAE,CACH,CAAC;IACF,KAAK,CAAC,IAAI,CACR,4BACE,MAAM,CAAC,eAAe;QACpB,CAAC,CAAC,GAAG,MAAM,CAAC,eAAe,KAAK,QAAQ,CACpC,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CACjC,GAAG;QACN,CAAC,CAAC,UACN,EAAE,CACH,CAAC;IACF,KAAK,CAAC,IAAI,CACR,6BACE,MAAM,CAAC,kBAAkB;QACvB,CAAC,CAAC,GAAG,MAAM,CAAC,kBAAkB,KAAK,QAAQ,CACvC,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CACpC,GAAG;QACN,CAAC,CAAC,UACN,EAAE,CACH,CAAC;IACF,KAAK,CAAC,IAAI,CACR,kCAAkC,MAAM,CAAC,oBAAoB,IAAI,UAAU,EAAE,CAC9E,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,6BAA6B,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACpE,KAAK,CAAC,IAAI,CAAC,4BAA4B,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACrE,KAAK,CAAC,IAAI,CAAC,2BAA2B,MAAM,CAAC,SAAS,EAAE,KAAK,IAAI,aAAa,EAAE,CAAC,CAAC;IAClF,IAAI,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,8BAA8B,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,MAAM,CAAC,SAAU,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,uBAAuB,KAAK,CAAC,UAAU,IAAI,aAAa,EAAE,CAAC,CAAC;QACvE,KAAK,CAAC,IAAI,CAAC,gCAAgC,KAAK,CAAC,QAAQ,IAAI,aAAa,EAAE,CAAC,CAAC;QAC9E,KAAK,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,GAAG,IAAI,aAAa,EAAE,CAAC,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,GAAG,IAAI,aAAa,EAAE,CAAC,CAAC;QACpE,KAAK,CAAC,IAAI,CACR,qCACE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;YAC7D,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG;YACnD,CAAC,CAAC,aACN,EAAE,CACH,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,uMAAuM,CAAC,CAAC;IACtN,CAAC;IAED,IAAI,QAAQ,CAAC,SAAS,KAAK,UAAU,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,sCAAsC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;QAChF,KAAK,CAAC,IAAI,CAAC,0BAA0B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACxD,KAAK,CAAC,IAAI,CACR,yCAAyC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAC7E,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,2BAA2B,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC,0BAA0B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACxD,KAAK,CAAC,IAAI,CACR,2QAA2Q,CAC5Q,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,uEAAuE;IACvE,0EAA0E;IAC1E,IAAI,QAAQ,CAAC,SAAS,KAAK,OAAO,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACrD,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,kBAAkB,IAAI,uBAAuB,EAAE,CAAC,CAAC;QACjG,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,mBAAmB,IAAI,cAAc,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnK,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,kBAAkB,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3L,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,wBAAwB,IAAI,UAAU,EAAE,CAAC,CAAC;QACzF,KAAK,CAAC,IAAI,CACR,6RAA6R,CAC9R,CAAC;IACJ,CAAC;IAED,+DAA+D;IAC/D,uEAAuE;IACvE,IAAI,MAAM,CAAC,SAAS,IAAI,eAAe,KAAK,KAAK,EAAE,CAAC;QAClD,IAAI,QAAQ,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CACR,wEAAwE,CACzE,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YACpD,KAAK,CAAC,IAAI,CACR,yOAAyO,CAC1O,CAAC;YACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,QAAQ,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CACR,8DAA8D,CAC/D,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YACpD,KAAK,CAAC,IAAI,CACR,yKAAyK,CAC1K,CAAC;YACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,CAAC,IAAI,CACR,iEAAiE,CAClE,CAAC;QACF,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YACjD,KAAK,CAAC,IAAI,CACR,4MAA4M,CAC7M,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CACR,wBAAwB,cAAc,CAAC,SAAS,EAAE,gBAAgB,CAAC,4DAA4D,UAAU,YAAY,QAAQ,IAAI,CAClK,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,yBAAyB,CACvC,YAA0B,EAC1B,mBAAmC;IAEnC,OAAO,YAAY,CAAC,SAAS,IAAI,mBAAmB,KAAK,KAAK,CAAC;AACjE,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAMpC;IACC,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAC/E,IAAI,QAAQ,EAAE,SAAS,KAAK,UAAU,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;QACnD,OAAO;YACL,sCAAsC;YACtC,EAAE;YACF,wBACE,QAAQ;gBACN,CAAC,CAAC,GAAG,QAAQ,CAAC,uBAAuB,CAAC,8BAA8B,QAAQ,CAAC,MAAM,iBAAiB;gBACpG,CAAC,CAAC,6BACN,qGAAqG;YACrG,EAAE;YACF,KAAK;YACL,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,EAAE,SAAS,KAAK,OAAO,EAAE,CAAC;QACpC,OAAO;YACL,kCAAkC;YAClC,EAAE;YACF,+JAA+J;YAC/J,EAAE;YACF,KAAK;YACL,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACtD,OAAO;QACL,yCAAyC;QACzC,EAAE;QACF,wPAAwP;QACxP,EAAE;QACF,wBAAwB,cAAc,CAAC,SAAS,EAAE,gBAAgB,CAAC,4DAA4D,UAAU,YAAY,QAAQ,IAAI;QACjK,EAAE;QACF,KAAK;QACL,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,SAAiB,EAAE,gBAAgC;IACzE,OAAO,gBAAgB;QACrB,CAAC,CAAC,mCAAmC,WAAW,CAAC,gBAAgB,CAAC,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE;QAC9F,CAAC,CAAC,sBAAsB,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;AACrD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { probeCodexBridgeArmed } from './codex-app-wake.js';
|
|
1
|
+
import { probeCodexBridgeArmed, getCodexDeliveryState, type CodexDeliveryState } from './codex-app-wake.js';
|
|
2
2
|
import { checkInboxMonitorHealthy } from './stream-status.js';
|
|
3
3
|
import { getOpenCodeConnectionState, type OpenCodeConnectionState } from './opencode-drone.js';
|
|
4
4
|
import type { AgentKind } from './agent-runtime.js';
|
|
@@ -6,6 +6,7 @@ export interface WakePathSnapshot {
|
|
|
6
6
|
agentKind: AgentKind;
|
|
7
7
|
healthy: boolean | null;
|
|
8
8
|
openCode: OpenCodeConnectionState | null;
|
|
9
|
+
codex?: CodexDeliveryState | null;
|
|
9
10
|
}
|
|
10
11
|
interface InspectWakePathInputs {
|
|
11
12
|
agentKind: AgentKind;
|
|
@@ -19,6 +20,7 @@ interface InspectWakePathInputs {
|
|
|
19
20
|
interface InspectWakePathDeps {
|
|
20
21
|
checkClaudeMonitor?: typeof checkInboxMonitorHealthy;
|
|
21
22
|
probeCodex?: typeof probeCodexBridgeArmed;
|
|
23
|
+
getCodexDelivery?: typeof getCodexDeliveryState;
|
|
22
24
|
getOpenCodeState?: typeof getOpenCodeConnectionState;
|
|
23
25
|
}
|
|
24
26
|
export declare function openCodeWakePathHealthy(state: OpenCodeConnectionState): boolean | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wake-path-health.d.ts","sourceRoot":"","sources":["../src/wake-path-health.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"wake-path-health.d.ts","sourceRoot":"","sources":["../src/wake-path-health.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EAErB,KAAK,kBAAkB,EACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACL,0BAA0B,EAC1B,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAEzC,KAAK,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACnC;AAED,UAAU,qBAAqB;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACnD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,UAAU,mBAAmB;IAC3B,kBAAkB,CAAC,EAAE,OAAO,wBAAwB,CAAC;IACrD,UAAU,CAAC,EAAE,OAAO,qBAAqB,CAAC;IAC1C,gBAAgB,CAAC,EAAE,OAAO,qBAAqB,CAAC;IAChD,gBAAgB,CAAC,EAAE,OAAO,0BAA0B,CAAC;CACtD;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,uBAAuB,GAC7B,OAAO,GAAG,IAAI,CAgBhB;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,qBAAqB,EAC7B,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,gBAAgB,CAAC,CAyC3B"}
|
package/dist/wake-path-health.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { probeCodexBridgeArmed } from './codex-app-wake.js';
|
|
1
|
+
import { probeCodexBridgeArmed, getCodexDeliveryState, codexWakePathHealthy, } from './codex-app-wake.js';
|
|
2
2
|
import { checkInboxMonitorHealthy } from './stream-status.js';
|
|
3
3
|
import { getOpenCodeConnectionState, } from './opencode-drone.js';
|
|
4
4
|
export function openCodeWakePathHealthy(state) {
|
|
@@ -33,11 +33,18 @@ export async function inspectWakePath(inputs, deps = {}) {
|
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
if (inputs.agentKind === 'codex') {
|
|
36
|
+
// client#89: fold the delivery state into health so a deferred, retrying,
|
|
37
|
+
// or failed injection surfaces as degraded — never as armed/healthy — even
|
|
38
|
+
// while the app-server socket is alive. SSE health is not the discriminator.
|
|
36
39
|
const probe = deps.probeCodex ?? probeCodexBridgeArmed;
|
|
40
|
+
const getDelivery = deps.getCodexDelivery ?? getCodexDeliveryState;
|
|
41
|
+
const armed = await probe(inputs.active);
|
|
42
|
+
const codex = getDelivery();
|
|
37
43
|
return {
|
|
38
44
|
agentKind: inputs.agentKind,
|
|
39
|
-
healthy:
|
|
45
|
+
healthy: codexWakePathHealthy(armed, codex),
|
|
40
46
|
openCode: null,
|
|
47
|
+
codex,
|
|
41
48
|
};
|
|
42
49
|
}
|
|
43
50
|
const getState = deps.getOpenCodeState ?? getOpenCodeConnectionState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wake-path-health.js","sourceRoot":"","sources":["../src/wake-path-health.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"wake-path-health.js","sourceRoot":"","sources":["../src/wake-path-health.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,GAErB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACL,0BAA0B,GAE3B,MAAM,qBAAqB,CAAC;AAyB7B,MAAM,UAAU,uBAAuB,CACrC,KAA8B;IAE9B,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IACnC,IACE,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;QAC/B,KAAK,CAAC,cAAc,CAAC,uBAAuB,CAAC,GAAG,CAAC,EACjD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IACE,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;QAC/B,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,EAChC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAA6B,EAC7B,OAA4B,EAAE;IAE9B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO;YACL,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,IAAI,wBAAwB,CAAC;QAClE,OAAO;YACL,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC;YACzD,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;QACjC,0EAA0E;QAC1E,2EAA2E;QAC3E,6EAA6E;QAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,qBAAqB,CAAC;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,IAAI,qBAAqB,CAAC;QACnE,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;QAC5B,OAAO;YACL,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC;YAC3C,QAAQ,EAAE,IAAI;YACd,KAAK;SACN,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,IAAI,0BAA0B,CAAC;IACrE,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAC;IAC5B,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE,uBAAuB,CAAC,QAAQ,CAAC;QAC1C,QAAQ;KACT,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
package/src/codex-app-wake.ts
CHANGED
|
@@ -123,8 +123,116 @@ export function getLastDeliveredAt(): number | null {
|
|
|
123
123
|
return lastDeliveredAt;
|
|
124
124
|
}
|
|
125
125
|
|
|
126
|
+
// client#89: delivery-state observability. The Codex wake-path health surface
|
|
127
|
+
// must distinguish "bridge armed" from "delivery healthy" — a wake deferred
|
|
128
|
+
// (mid-turn) or failed and being retried is NOT a healthy wake path, even
|
|
129
|
+
// though the app-server socket is alive. These module-scoped fields track the
|
|
130
|
+
// last injection attempt/result and the last failure (a secret-free error
|
|
131
|
+
// code/class only — never message contents); the deferred-queue state is read
|
|
132
|
+
// live from the existing retry-drain fields. Same process as the health probe
|
|
133
|
+
// (the wake path and stream-status run in the same MCP-client child), so the
|
|
134
|
+
// snapshot is directly visible. NONE of this changes the wake mechanism.
|
|
135
|
+
type CodexInjectionResult = 'delivered' | 'deferred' | 'failed';
|
|
136
|
+
// HISTORICAL reporting — the last injection attempt/result/failure. These are
|
|
137
|
+
// surfaced on the status surface for diagnosis; they are NOT used to decide
|
|
138
|
+
// health, because a historical result does not self-clear when work is drained
|
|
139
|
+
// by another path (manual read, server read-cursor recovery). Health keys off
|
|
140
|
+
// the LIVE signals below.
|
|
141
|
+
let lastInjectionAt: number | null = null;
|
|
142
|
+
let lastInjectionResult: CodexInjectionResult | null = null;
|
|
143
|
+
let lastInjectionFailureCode: string | null = null;
|
|
144
|
+
let lastTargetThreadId: string | null = null;
|
|
145
|
+
// client#89: a LIVE marker for undelivered directed wakes NOT tracked by the
|
|
146
|
+
// retry-drain queue (retryDrainActive / deferredEntryCount cover that queue and
|
|
147
|
+
// self-clear on prune/deliver). SET at every injection exit where an
|
|
148
|
+
// authoritatively-pending wake could not be delivered and is not queued: the
|
|
149
|
+
// heartbeat mid-turn skip / no-target return / transient failure, the per-entry
|
|
150
|
+
// no-target return for a still-pending scoped entry, and the retry-drain age-out
|
|
151
|
+
// hand-off. CLEARED when any delivery lands (markDelivered) and when the
|
|
152
|
+
// heartbeat authoritatively finds no pending work. It is a LIVE signal, not a
|
|
153
|
+
// historical result, so a seat that recovers by any path returns to healthy.
|
|
154
|
+
let deliveryDeferred = false;
|
|
155
|
+
|
|
156
|
+
export interface CodexDeliveryState {
|
|
157
|
+
/** Opaque thread id of the last-resolved wake target (never a socket path). */
|
|
158
|
+
lastTargetThreadId: string | null;
|
|
159
|
+
/** HISTORICAL last attempt time (reporting only; not a health input). */
|
|
160
|
+
lastInjectionAt: number | null;
|
|
161
|
+
/** HISTORICAL last attempt result (reporting only; not a health input). */
|
|
162
|
+
lastInjectionResult: CodexInjectionResult | null;
|
|
163
|
+
/** Secret-free error code/class of the last failed injection; never contents. */
|
|
164
|
+
lastInjectionFailureCode: string | null;
|
|
165
|
+
/** LIVE: entries currently deferred/retrying (not yet confirmed delivered). */
|
|
166
|
+
deferredEntryCount: number;
|
|
167
|
+
/** LIVE: a coalesced retry-drain loop is currently retrying deferred/missed wakes. */
|
|
168
|
+
retryDrainActive: boolean;
|
|
169
|
+
/** LIVE: an undelivered directed wake not tracked by the retry-drain queue. */
|
|
170
|
+
deliveryDeferred: boolean;
|
|
171
|
+
lastDeliveredAt: number | null;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/** Snapshot of the Codex wake-path delivery state for the health/status surface. */
|
|
175
|
+
export function getCodexDeliveryState(): CodexDeliveryState {
|
|
176
|
+
return {
|
|
177
|
+
lastTargetThreadId,
|
|
178
|
+
lastInjectionAt,
|
|
179
|
+
lastInjectionResult,
|
|
180
|
+
lastInjectionFailureCode,
|
|
181
|
+
deferredEntryCount: retryDrainSourceEntryIds.size + (retryDrainHasUnscopedWork ? 1 : 0),
|
|
182
|
+
retryDrainActive: retryDrainInFlight,
|
|
183
|
+
deliveryDeferred,
|
|
184
|
+
lastDeliveredAt,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/** Reduce a caught error to a secret-free code/class — never its message. */
|
|
189
|
+
function injectionFailureCode(err: unknown): string {
|
|
190
|
+
const code = (err as { code?: unknown } | null)?.code;
|
|
191
|
+
if (typeof code === 'string' && code.length > 0) return code;
|
|
192
|
+
if (err instanceof Error && err.name) return err.name;
|
|
193
|
+
return 'unknown';
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
function recordInjectionResult(
|
|
197
|
+
result: CodexInjectionResult,
|
|
198
|
+
now: () => number,
|
|
199
|
+
failureCode?: string,
|
|
200
|
+
): void {
|
|
201
|
+
lastInjectionAt = now();
|
|
202
|
+
lastInjectionResult = result;
|
|
203
|
+
lastInjectionFailureCode = result === 'failed' ? (failureCode ?? 'unknown') : null;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* client#89: pure wake-path health for Codex, folding the LIVE delivery state
|
|
208
|
+
* into the raw "bridge armed" probe. A wake still pending redelivery — a live
|
|
209
|
+
* retry-drain, a non-empty deferred queue, or an undelivered heartbeat pending
|
|
210
|
+
* — is NOT a confirmed-healthy path (returns null = degraded). A positively-
|
|
211
|
+
* dead bridge dominates (false). Historical last-attempt results are NOT used
|
|
212
|
+
* here: they do not self-clear when work is drained by another path, so keying
|
|
213
|
+
* health off them would leave a recovered seat permanently degraded.
|
|
214
|
+
*/
|
|
215
|
+
export function codexWakePathHealthy(
|
|
216
|
+
armed: boolean | null,
|
|
217
|
+
state: CodexDeliveryState,
|
|
218
|
+
): boolean | null {
|
|
219
|
+
if (armed === false) return false; // positively-dead bridge
|
|
220
|
+
if (armed === null) return null; // could not probe → indeterminate
|
|
221
|
+
// Bridge armed. Degraded while any LIVE signal shows an unconfirmed delivery.
|
|
222
|
+
if (
|
|
223
|
+
state.retryDrainActive ||
|
|
224
|
+
state.deferredEntryCount > 0 ||
|
|
225
|
+
state.deliveryDeferred
|
|
226
|
+
) {
|
|
227
|
+
return null;
|
|
228
|
+
}
|
|
229
|
+
return true;
|
|
230
|
+
}
|
|
231
|
+
|
|
126
232
|
function markDelivered(deps: CodexWakeDeps): void {
|
|
127
233
|
lastDeliveredAt = (deps.now ?? Date.now)();
|
|
234
|
+
// client#89: any confirmed delivery clears the live heartbeat-pending marker.
|
|
235
|
+
deliveryDeferred = false;
|
|
128
236
|
}
|
|
129
237
|
|
|
130
238
|
// gh#857 WI-2: a single-in-flight guard for the heartbeat tick (mirrors
|
|
@@ -327,8 +435,18 @@ async function wakeCodexTargeted(
|
|
|
327
435
|
// gh#855: resolve FRESH (live env socket + re-resolved thread), falling back
|
|
328
436
|
// to the launch-recorded file only when the env socket is absent.
|
|
329
437
|
const resolved = await resolveFreshCodexWakeTarget(active, deps);
|
|
330
|
-
if (!resolved)
|
|
438
|
+
if (!resolved) {
|
|
439
|
+
// client#89: a scoped entry passed the pending check above but no target
|
|
440
|
+
// resolves — undeliverable, and this path does NOT schedule a retry-drain
|
|
441
|
+
// (the design leaves it to the next wake / the heartbeat backstop). Mark
|
|
442
|
+
// the deferral live so health reads degraded rather than armed. An
|
|
443
|
+
// unscoped wake carries no authoritative pending signal, so it does not
|
|
444
|
+
// set the marker. Retry behavior is unchanged.
|
|
445
|
+
if (sourceEntryId) deliveryDeferred = true;
|
|
446
|
+
return;
|
|
447
|
+
}
|
|
331
448
|
const { socketPath, threadId } = resolved;
|
|
449
|
+
lastTargetThreadId = threadId; // client#89: record the selected target
|
|
332
450
|
const wakeKey = `${threadId}\0${deliveryIdentity ?? reason}`;
|
|
333
451
|
if (deliveredWakeKeys.has(wakeKey)) return; // dedup before opening the wake socket
|
|
334
452
|
const client = makeCodexClient(socketPath, deps);
|
|
@@ -340,21 +458,24 @@ async function wakeCodexTargeted(
|
|
|
340
458
|
// now. Schedule the retry-drain (coalesced, retried-until-delivered) so
|
|
341
459
|
// the burst's entries are drained once the thread goes idle; codex has no
|
|
342
460
|
// on-disk tail fallback like Claude's borg-inbox-monitor.
|
|
461
|
+
recordInjectionResult('deferred', deps.now ?? Date.now); // client#89
|
|
343
462
|
scheduleRetryDrain(deps, sourceEntryId);
|
|
344
463
|
return;
|
|
345
464
|
}
|
|
346
465
|
if (sourceEntryId && !(await pendingEntry(active, sourceEntryId))) return;
|
|
347
466
|
await client.startTurn(threadId, reason);
|
|
348
467
|
rememberDeliveredWake(wakeKey);
|
|
468
|
+
recordInjectionResult('delivered', deps.now ?? Date.now); // client#89
|
|
349
469
|
markDelivered(deps);
|
|
350
470
|
} finally {
|
|
351
471
|
client.close();
|
|
352
472
|
}
|
|
353
|
-
} catch {
|
|
473
|
+
} catch (err) {
|
|
354
474
|
// gh#857: a transient connect/read/startTurn failure must NOT be silently
|
|
355
475
|
// swallowed (the old best-effort drop let a single blip lose an entry).
|
|
356
476
|
// Schedule the retry-drain so the wake is retried-until-delivered; the SSE
|
|
357
477
|
// stream is never broken (this is fire-and-forget).
|
|
478
|
+
recordInjectionResult('failed', deps.now ?? Date.now, injectionFailureCode(err)); // client#89
|
|
358
479
|
scheduleRetryDrain(deps, sourceEntryId);
|
|
359
480
|
} finally {
|
|
360
481
|
releaseInjectLock();
|
|
@@ -414,11 +535,13 @@ async function runRetryDrainLoop(deps: CodexWakeDeps): Promise<void> {
|
|
|
414
535
|
const resolved = await resolveFreshCodexWakeTarget(active, deps);
|
|
415
536
|
if (!resolved) continue; // thread not loaded yet → retry (age-capped)
|
|
416
537
|
const { socketPath, threadId } = resolved;
|
|
538
|
+
lastTargetThreadId = threadId; // client#89: record the selected target
|
|
417
539
|
const client = makeCodexClient(socketPath, deps);
|
|
418
540
|
await client.connect();
|
|
419
541
|
try {
|
|
420
542
|
const thread = await client.readThread(threadId);
|
|
421
543
|
if (thread?.status?.type === 'active') {
|
|
544
|
+
recordInjectionResult('deferred', now); // client#89
|
|
422
545
|
continue; // re-defer: still mid-turn (backoff before next poll)
|
|
423
546
|
}
|
|
424
547
|
for (const entryId of retryDrainSourceEntryIds) {
|
|
@@ -428,19 +551,31 @@ async function runRetryDrainLoop(deps: CodexWakeDeps): Promise<void> {
|
|
|
428
551
|
await client.startTurn(threadId, CODEX_CATCHUP_PROMPT);
|
|
429
552
|
retryDrainSourceEntryIds.clear();
|
|
430
553
|
retryDrainHasUnscopedWork = false;
|
|
554
|
+
recordInjectionResult('delivered', now); // client#89
|
|
431
555
|
markDelivered(deps);
|
|
432
556
|
return; // drain delivered → server read-cursor drains all unread → done
|
|
433
557
|
} finally {
|
|
434
558
|
client.close();
|
|
435
559
|
}
|
|
436
|
-
} catch {
|
|
560
|
+
} catch (err) {
|
|
437
561
|
// transient socket/read error must not abort the loop — keep retrying with
|
|
438
562
|
// backoff until reachable+idle or the age cap; never throws into SSE.
|
|
563
|
+
recordInjectionResult('failed', now, injectionFailureCode(err)); // client#89
|
|
439
564
|
} finally {
|
|
440
565
|
releaseInjectLock();
|
|
441
566
|
}
|
|
442
567
|
}
|
|
443
568
|
// aged out: the gh#857 WI-2 periodic heartbeat is the ultimate backstop.
|
|
569
|
+
// client#89: if obligations remain unfinished (the thread stayed mid-turn
|
|
570
|
+
// through the age cap), the loop is gone but the entries are still pending.
|
|
571
|
+
// Hand off to the live marker and clear the retry-drain set, so health stays
|
|
572
|
+
// degraded (not stuck via a stale deferredEntryCount after the loop exits)
|
|
573
|
+
// and clears when a delivery lands or the unread authoritatively empties.
|
|
574
|
+
if (retryDrainSourceEntryIds.size > 0 || retryDrainHasUnscopedWork) {
|
|
575
|
+
retryDrainSourceEntryIds.clear();
|
|
576
|
+
retryDrainHasUnscopedWork = false;
|
|
577
|
+
deliveryDeferred = true;
|
|
578
|
+
}
|
|
444
579
|
}
|
|
445
580
|
|
|
446
581
|
/**
|
|
@@ -484,16 +619,41 @@ export async function fireCodexHeartbeatTick(
|
|
|
484
619
|
// authoritative unread state without advancing its cursor; only then touch
|
|
485
620
|
// the app-server socket or resolve a thread.
|
|
486
621
|
const hasPendingWork = deps.hasPendingWork ?? hasPendingWakeActivity;
|
|
487
|
-
if (!(await hasPendingWork(active)))
|
|
622
|
+
if (!(await hasPendingWork(active))) {
|
|
623
|
+
// client#89: authoritative unread is empty → no undelivered wake remains.
|
|
624
|
+
// Clear the live heartbeat-pending marker so a seat that recovered by any
|
|
625
|
+
// path (manual read, server read-cursor drain) returns to healthy.
|
|
626
|
+
deliveryDeferred = false;
|
|
627
|
+
return;
|
|
628
|
+
}
|
|
488
629
|
const resolved = await resolveFreshCodexWakeTarget(active, deps);
|
|
489
|
-
if (!resolved)
|
|
630
|
+
if (!resolved) {
|
|
631
|
+
// client#89: authoritative pending work exists but no fresh target/thread
|
|
632
|
+
// resolves — the wake is UNDELIVERABLE this tick. The persisted-target
|
|
633
|
+
// probe can still read armed, so mark the deferral live (health degraded)
|
|
634
|
+
// until a target resolves and delivers, or the unread authoritatively
|
|
635
|
+
// clears. Cadence/retry behavior is unchanged (the next tick still tries).
|
|
636
|
+
deliveryDeferred = true;
|
|
637
|
+
return; // thread not loaded yet → next tick retries
|
|
638
|
+
}
|
|
639
|
+
lastTargetThreadId = resolved.threadId; // client#89: record the selected target
|
|
490
640
|
const client = makeCodexClient(resolved.socketPath, deps);
|
|
491
641
|
await client.connect();
|
|
492
642
|
try {
|
|
493
643
|
const thread = await client.readThread(resolved.threadId);
|
|
494
|
-
if (thread?.status?.type === 'active')
|
|
644
|
+
if (thread?.status?.type === 'active') {
|
|
645
|
+
// client#89: we passed hasPendingWork above, so a mid-turn thread here
|
|
646
|
+
// means a directed entry is deferred. Mark it LIVE-pending (the heartbeat
|
|
647
|
+
// does not queue into the retry-drain) so the health surface reads
|
|
648
|
+
// degraded until a delivery lands or the unread authoritatively clears.
|
|
649
|
+
// Skip semantics are unchanged — the next tick still retries.
|
|
650
|
+
recordInjectionResult('deferred', deps.now ?? Date.now);
|
|
651
|
+
deliveryDeferred = true;
|
|
652
|
+
return; // mid-turn → skip; next tick retries
|
|
653
|
+
}
|
|
495
654
|
await client.startTurn(resolved.threadId, CODEX_CATCHUP_PROMPT);
|
|
496
|
-
// markDelivered
|
|
655
|
+
// markDelivered clears the live heartbeat-pending marker.
|
|
656
|
+
recordInjectionResult('delivered', deps.now ?? Date.now); // client#89
|
|
497
657
|
markDelivered(deps);
|
|
498
658
|
} finally {
|
|
499
659
|
client.close();
|
|
@@ -503,6 +663,11 @@ export async function fireCodexHeartbeatTick(
|
|
|
503
663
|
// path is gone; signal teardown so the timer stops ticking against a dead
|
|
504
664
|
// socket (re-armed when an active cube returns). Other (transient) errors are
|
|
505
665
|
// best-effort skips — never break the SSE stream; next tick retries.
|
|
666
|
+
// client#89: we passed hasPendingWork, so a failure here leaves pending work
|
|
667
|
+
// undelivered → mark it live-pending (a dead bridge is separately false via
|
|
668
|
+
// the armed probe). Clears on the next authoritative-empty tick or delivery.
|
|
669
|
+
recordInjectionResult('failed', deps.now ?? Date.now, injectionFailureCode(err)); // client#89
|
|
670
|
+
deliveryDeferred = true;
|
|
506
671
|
if (isAppServerDeadError(err)) deps.onAppServerSocketDead?.();
|
|
507
672
|
} finally {
|
|
508
673
|
heartbeatInFlight = false;
|
|
@@ -552,6 +717,12 @@ export function resetCodexWakeForTests(): void {
|
|
|
552
717
|
lastDeliveredAt = null;
|
|
553
718
|
heartbeatInFlight = false;
|
|
554
719
|
injectInFlight = false;
|
|
720
|
+
// client#89 delivery-state observability
|
|
721
|
+
lastInjectionAt = null;
|
|
722
|
+
lastInjectionResult = null;
|
|
723
|
+
lastInjectionFailureCode = null;
|
|
724
|
+
lastTargetThreadId = null;
|
|
725
|
+
deliveryDeferred = false;
|
|
555
726
|
}
|
|
556
727
|
|
|
557
728
|
function rememberDeliveredWake(key: string): void {
|
package/src/stream-status.ts
CHANGED
|
@@ -277,6 +277,20 @@ export function renderStreamStatus(inputs: RenderInputs): string {
|
|
|
277
277
|
);
|
|
278
278
|
}
|
|
279
279
|
|
|
280
|
+
// client#89: Codex remote-control delivery state — distinct from SSE health.
|
|
281
|
+
// Surfaces the selected target, last bounded injection attempt/result,
|
|
282
|
+
// deferred-queue state, and last failure (a secret-free code/class only).
|
|
283
|
+
if (wakePath.agentKind === 'codex' && wakePath.codex) {
|
|
284
|
+
const d = wakePath.codex;
|
|
285
|
+
lines.push(`- **Codex wake target thread**: ${d.lastTargetThreadId ?? '_(none resolved yet)_'}`);
|
|
286
|
+
lines.push(`- **Codex last injection**: ${d.lastInjectionResult ?? '_(none yet)_'}${d.lastInjectionAt ? ` at ${new Date(d.lastInjectionAt).toISOString()}` : ''}`);
|
|
287
|
+
lines.push(`- **Codex deferred/retrying entries**: ${d.deferredEntryCount}${d.retryDrainActive ? ' (retry-drain active)' : ''}${d.deliveryDeferred ? ' — undelivered wake pending' : ''}`);
|
|
288
|
+
lines.push(`- **Codex last failure code**: ${d.lastInjectionFailureCode ?? '_(none)_'}`);
|
|
289
|
+
lines.push(
|
|
290
|
+
'- **Codex delivery-state meaning**: a deferred or retrying wake means a directed entry has not yet been confirmed delivered to the model — the wake path reads degraded (not healthy) until the wake is delivered or the unread log is drained, even though the app-server bridge is armed.'
|
|
291
|
+
);
|
|
292
|
+
}
|
|
293
|
+
|
|
280
294
|
// Runtime-specific wake-path warning. The wire-down case takes
|
|
281
295
|
// precedence above; an indeterminate signal remains honest and silent.
|
|
282
296
|
if (status.connected && wakePathHealthy === false) {
|
package/src/wake-path-health.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
probeCodexBridgeArmed,
|
|
3
|
+
getCodexDeliveryState,
|
|
4
|
+
codexWakePathHealthy,
|
|
5
|
+
type CodexDeliveryState,
|
|
6
|
+
} from './codex-app-wake.js';
|
|
2
7
|
import { checkInboxMonitorHealthy } from './stream-status.js';
|
|
3
8
|
import {
|
|
4
9
|
getOpenCodeConnectionState,
|
|
@@ -10,6 +15,8 @@ export interface WakePathSnapshot {
|
|
|
10
15
|
agentKind: AgentKind;
|
|
11
16
|
healthy: boolean | null;
|
|
12
17
|
openCode: OpenCodeConnectionState | null;
|
|
18
|
+
// client#89: Codex remote-control delivery state, distinct from SSE health.
|
|
19
|
+
codex?: CodexDeliveryState | null;
|
|
13
20
|
}
|
|
14
21
|
|
|
15
22
|
interface InspectWakePathInputs {
|
|
@@ -22,6 +29,7 @@ interface InspectWakePathInputs {
|
|
|
22
29
|
interface InspectWakePathDeps {
|
|
23
30
|
checkClaudeMonitor?: typeof checkInboxMonitorHealthy;
|
|
24
31
|
probeCodex?: typeof probeCodexBridgeArmed;
|
|
32
|
+
getCodexDelivery?: typeof getCodexDeliveryState;
|
|
25
33
|
getOpenCodeState?: typeof getOpenCodeConnectionState;
|
|
26
34
|
}
|
|
27
35
|
|
|
@@ -67,11 +75,18 @@ export async function inspectWakePath(
|
|
|
67
75
|
}
|
|
68
76
|
|
|
69
77
|
if (inputs.agentKind === 'codex') {
|
|
78
|
+
// client#89: fold the delivery state into health so a deferred, retrying,
|
|
79
|
+
// or failed injection surfaces as degraded — never as armed/healthy — even
|
|
80
|
+
// while the app-server socket is alive. SSE health is not the discriminator.
|
|
70
81
|
const probe = deps.probeCodex ?? probeCodexBridgeArmed;
|
|
82
|
+
const getDelivery = deps.getCodexDelivery ?? getCodexDeliveryState;
|
|
83
|
+
const armed = await probe(inputs.active);
|
|
84
|
+
const codex = getDelivery();
|
|
71
85
|
return {
|
|
72
86
|
agentKind: inputs.agentKind,
|
|
73
|
-
healthy:
|
|
87
|
+
healthy: codexWakePathHealthy(armed, codex),
|
|
74
88
|
openCode: null,
|
|
89
|
+
codex,
|
|
75
90
|
};
|
|
76
91
|
}
|
|
77
92
|
|