mirror of
https://github.com/QwenLM/qwen-code.git
synced 2026-04-28 11:41:04 +00:00
- Refactor retry utility to support GLM rate limit errors (code 1302) and TPM throttling - Add getRateLimitRetryInfo() for unified rate-limit error detection - Add exponential backoff for non-TPM rate limit errors - Extend StreamEventType.RETRY with RetryInfo payload for UI feedback - Add RetryCountdownMessage component for visual retry countdown - Update useGeminiStream hook to handle retry events with countdown timer - Add i18n support for rate limit messages (en/zh)
41 lines
889 B
TypeScript
41 lines
889 B
TypeScript
/**
|
|
* @license
|
|
* Copyright 2025 Qwen
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
import type React from 'react';
|
|
import { Text, Box } from 'ink';
|
|
import { theme } from '../../semantic-colors.js';
|
|
|
|
interface RetryCountdownMessageProps {
|
|
text: string;
|
|
}
|
|
|
|
/**
|
|
* Displays a retry countdown message in a dimmed/secondary style
|
|
* to visually distinguish it from error messages.
|
|
*/
|
|
export const RetryCountdownMessage: React.FC<RetryCountdownMessageProps> = ({
|
|
text,
|
|
}) => {
|
|
if (!text || text.trim() === '') {
|
|
return null;
|
|
}
|
|
|
|
const prefix = '↻ ';
|
|
const prefixWidth = prefix.length;
|
|
|
|
return (
|
|
<Box flexDirection="row">
|
|
<Box width={prefixWidth}>
|
|
<Text color={theme.text.secondary}>{prefix}</Text>
|
|
</Box>
|
|
<Box flexGrow={1}>
|
|
<Text wrap="wrap" color={theme.text.secondary}>
|
|
{text}
|
|
</Text>
|
|
</Box>
|
|
</Box>
|
|
);
|
|
};
|