fix(usage): 修复含失败信号的 pending 请求被误判为活跃的问题

- pending/streaming 状态含 status_code >= 400 或 error_message 时视为 failed
- 候选状态派生改为 failed 优先于 stale pending/streaming
- 活跃请求轮询时保留失败信号字段的更新
- 图片流支持 partial_image 事件转发及从 response.completed 读取最终图片
This commit is contained in:
fawney19
2026-04-24 03:07:11 +08:00
parent 581bc03d4e
commit 5148370253
16 changed files with 394 additions and 40 deletions
@@ -411,6 +411,7 @@
ref="timelineRef"
:request-id="detail.request_id || detail.id"
:override-status-code="detail.status_code"
:request-status="detail.status"
:request-api-format="detail.api_format || null"
:request-metadata="traceRequestMetadata"
/>
@@ -711,6 +712,7 @@ import { getEffectiveInputTokens } from '../token-normalization'
import {
formatUsageStreamLabel,
isUsageUpstreamStream,
resolveDisplayRequestStatus,
resolveUsageStreamLabelSegments,
} from '../utils/status'
@@ -1766,7 +1768,8 @@ function handleClose() {
function isRequestCompleted(): boolean {
if (!detail.value?.status) return true
return !['pending', 'streaming'].includes(detail.value.status)
const displayStatus = resolveDisplayRequestStatus(detail.value)
return displayStatus !== 'pending' && displayStatus !== 'streaming'
}
function stopAutoRefresh() {