mirror of
https://github.com/fawney19/Aether.git
synced 2026-10-07 18:07:47 +08:00
fix(usage): prevent detail view from overriding active request status
- Keep pending/streaming lifecycle status authoritative for active requests - Prevent detail status code or trace state from misclassifying in-flight requests as stream/failed - Add regression coverage for status resolution and timeline state emission
This commit is contained in:
@@ -141,6 +141,25 @@ describe('usage status helpers', () => {
|
||||
})).toBe('failed')
|
||||
})
|
||||
|
||||
it('keeps active request lifecycle status authoritative over detail status code inference', () => {
|
||||
expect(resolveTimelineFinalStatus({
|
||||
requestStatus: 'streaming',
|
||||
statusCode: 200,
|
||||
})).toBe('streaming')
|
||||
|
||||
expect(resolveTimelineFinalStatus({
|
||||
requestStatus: 'streaming',
|
||||
statusCode: 503,
|
||||
traceFinalStatus: 'failed',
|
||||
})).toBe('streaming')
|
||||
|
||||
expect(resolveTimelineFinalStatus({
|
||||
requestStatus: 'pending',
|
||||
statusCode: 200,
|
||||
traceFinalStatus: 'success',
|
||||
})).toBe('pending')
|
||||
})
|
||||
|
||||
it('uses explicit has_fallback flag for transfer filtering', () => {
|
||||
expect(hasUsageFallback(buildUsageRecord({ has_fallback: true }))).toBe(true)
|
||||
expect(hasUsageFallback(buildUsageRecord({ has_fallback: false }))).toBe(false)
|
||||
|
||||
@@ -295,6 +295,9 @@ export function resolveTimelineFinalStatus(params: {
|
||||
}
|
||||
return requestStatus
|
||||
}
|
||||
if (requestStatus === 'pending' || requestStatus === 'streaming') {
|
||||
return requestStatus
|
||||
}
|
||||
|
||||
const traceStatus = normalizeTimelineFinalStatus(params.traceFinalStatus)
|
||||
if (traceStatus === 'success' || traceStatus === 'failed' || traceStatus === 'cancelled') {
|
||||
@@ -304,14 +307,14 @@ export function resolveTimelineFinalStatus(params: {
|
||||
return traceStatus
|
||||
}
|
||||
|
||||
if (hasTerminalSuccessStatusCode !== undefined) {
|
||||
return hasTerminalSuccessStatusCode ? 'success' : 'failed'
|
||||
}
|
||||
|
||||
if (params.hasPendingCandidates) {
|
||||
return 'pending'
|
||||
}
|
||||
|
||||
if (hasTerminalSuccessStatusCode !== undefined) {
|
||||
return hasTerminalSuccessStatusCode ? 'success' : 'failed'
|
||||
}
|
||||
|
||||
if (traceStatus) {
|
||||
return traceStatus
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user