diff --git a/scripts/src/hwlab-node-web-observe-runner-source.ts b/scripts/src/hwlab-node-web-observe-runner-source.ts index 598714a4..f349acfb 100644 --- a/scripts/src/hwlab-node-web-observe-runner-source.ts +++ b/scripts/src/hwlab-node-web-observe-runner-source.ts @@ -4491,7 +4491,8 @@ function detectTurnTimingNonMonotonic(columns, rows) { const sampleDeltaSeconds = elapsedSecondsBetween(previous.ts, row.ts); const delta = current - previous.value; const allowedIncreaseSeconds = sampleDeltaSeconds + alertThresholds.turnTimingSampleSlackSeconds; - if (delta > allowedIncreaseSeconds) { + const terminalTransition = !isTerminalTurnStatus(previous.status) && isTerminalTurnStatus(cell.status); + if (delta > allowedIncreaseSeconds && !terminalTransition) { totalElapsedForwardJumps.push({ columnId: column.id, columnLabel: column.label, @@ -4501,9 +4502,11 @@ function detectTurnTimingNonMonotonic(columns, rows) { fromSeq: previous.seq, fromTs: previous.ts, fromValue: previous.value, + fromStatus: previous.status ?? null, toSeq: row.seq ?? null, toTs: row.ts ?? null, toValue: current, + toStatus: cell.status ?? null, delta, sampleDeltaSeconds, allowedIncreaseSeconds, @@ -4628,7 +4631,7 @@ function detectTurnTimingNonMonotonic(columns, rows) { }); } } - previousByMetric.set(metric, { value: current, seq: row.seq ?? null, ts: row.ts ?? null }); + previousByMetric.set(metric, { value: current, seq: row.seq ?? null, ts: row.ts ?? null, status: cell.status ?? null }); } } }