Skip to content

Commit b62d64b

Browse files
committed
fix(diagnostic): narrow hasActiveModelCall to snapshot field only
Remove hasActiveModelCall from classifySessionAttention and isStalledModelCallRecoveryEligible gates. Both gates already require activeWorkKind === 'model_call' (derived from activeModelCalls) and hasActiveEmbeddedRun, making the extra check redundant. hasActiveModelCall stays in the snapshot type and population as a pure diagnostic field for downstream consumers. 🦞 diamond lobster: narrow scope — invariant cleanup, no behavior change Ref. #94890
1 parent 2176bf5 commit b62d64b

4 files changed

Lines changed: 5 additions & 11 deletions

File tree

src/logging/diagnostic-session-attention.test.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ describe("classifySessionAttention", () => {
7878
activity: {
7979
activeWorkKind: "model_call" as const,
8080
hasActiveEmbeddedRun: true,
81-
hasActiveModelCall: true,
8281
lastProgressAgeMs: 31_000,
8382
},
8483
expected: {
@@ -95,7 +94,6 @@ describe("classifySessionAttention", () => {
9594
activity: {
9695
activeWorkKind: "model_call" as const,
9796
hasActiveEmbeddedRun: true,
98-
hasActiveModelCall: true,
9997
lastProgressAgeMs: 60_000,
10098
},
10199
expected: {
@@ -129,7 +127,6 @@ describe("classifySessionAttention", () => {
129127
activity: {
130128
activeWorkKind: "model_call" as const,
131129
hasActiveEmbeddedRun: false,
132-
hasActiveModelCall: true,
133130
lastProgressAgeMs: 31_000,
134131
lastProgressReason: "model_call:started",
135132
},
@@ -165,7 +162,6 @@ describe("classifySessionAttention", () => {
165162
activity: {
166163
activeWorkKind: "model_call" as const,
167164
hasActiveEmbeddedRun: false,
168-
hasActiveModelCall: true,
169165
lastProgressAgeMs: 31_000,
170166
},
171167
expected: {

src/logging/diagnostic-session-attention.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ export function classifySessionAttention(params: {
8181
if (
8282
params.activity.activeWorkKind === "model_call" &&
8383
params.activity.hasActiveEmbeddedRun === true &&
84-
params.activity.hasActiveModelCall === true &&
8584
lastProgressAgeMs > params.staleMs
8685
) {
8786
if (

src/logging/diagnostic.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1023,8 +1023,8 @@ describe("stuck session diagnostics threshold", () => {
10231023
unsubscribe();
10241024
}
10251025

1026-
// hasActiveModelCall surfaces the model call for classification, so the
1027-
// session is visible to diagnostics. Active-abort recovery still requires
1026+
// activeWorkKind === "model_call" (derived from activeModelCalls) makes the
1027+
// session visible to diagnostics. Active-abort recovery still requires
10281028
// hasActiveEmbeddedRun (live-owner signal) — CLI sessions are classified
10291029
// but not force-recovered until #90750 cleanup lands.
10301030
expectRecordFields(

src/logging/diagnostic.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -541,15 +541,14 @@ function isStalledModelCallRecoveryEligible(params: {
541541
// chunks refresh run activity while emitted progress events are throttled, so
542542
// active streams stay fresh and silent/non-streaming calls can be recovered.
543543
//
544-
// hasActiveModelCall gates on the activity snapshot; hasActiveEmbeddedRun
545-
// ensures a live embedded-run owner exists. CLI-harness sessions are NOT
546-
// eligible until #90750 provides ownerless-marker cleanup.
544+
// hasActiveEmbeddedRun ensures a live embedded-run owner exists.
545+
// CLI-harness sessions are NOT eligible until #90750 provides
546+
// ownerless-marker cleanup.
547547
return (
548548
params.classification?.eventType === "session.stalled" &&
549549
params.classification.classification === "stalled_agent_run" &&
550550
params.classification.activeWorkKind === "model_call" &&
551551
params.activity?.hasActiveEmbeddedRun === true &&
552-
params.activity?.hasActiveModelCall === true &&
553552
typeof lastProgressAgeMs === "number" &&
554553
lastProgressAgeMs >= params.stuckSessionAbortMs
555554
);

0 commit comments

Comments
 (0)