@@ -15,6 +15,7 @@ import { getAdsEnabled } from './commands/ads'
1515import { routeUserPrompt , addBashMessageToHistory } from './commands/router'
1616import { AdBanner } from './components/ad-banner'
1717import { ChatInputBar } from './components/chat-input-bar'
18+ import { BottomStatusLine } from './components/bottom-status-line'
1819import { areCreditsRestored } from './components/out-of-credits-banner'
1920import { LoadPreviousButton } from './components/load-previous-button'
2021import { MessageWithAgents } from './components/message-with-agents'
@@ -26,6 +27,7 @@ import { useAgentValidation } from './hooks/use-agent-validation'
2627import { useAskUserBridge } from './hooks/use-ask-user-bridge'
2728import { authQueryKeys } from './hooks/use-auth-query'
2829import { useChatInput } from './hooks/use-chat-input'
30+ import { useClaudeQuotaQuery } from './hooks/use-claude-quota-query'
2931import {
3032 useChatKeyboard ,
3133 type ChatKeyboardHandlers ,
@@ -73,6 +75,7 @@ import {
7375 getStatusIndicatorState ,
7476 type AuthStatus ,
7577} from './utils/status-indicator-state'
78+ import { getClaudeOAuthStatus } from './utils/claude-oauth'
7679import { createPasteHandler } from './utils/strings'
7780import { computeInputLayoutMetrics } from './utils/text-layout'
7881import { createMarkdownPalette } from './utils/theme-system'
@@ -1360,6 +1363,15 @@ export const Chat = ({
13601363 isAskUserActive : askUserState !== null ,
13611364 } )
13621365 const hasStatusIndicatorContent = statusIndicatorState . kind !== 'idle'
1366+
1367+ const isClaudeOAuthActive = getClaudeOAuthStatus ( ) . connected
1368+
1369+ // Fetch Claude quota when OAuth is active
1370+ const { data : claudeQuota } = useClaudeQuotaQuery ( {
1371+ enabled : isClaudeOAuthActive ,
1372+ refetchInterval : 60 * 1000 , // Refetch every 60 seconds
1373+ } )
1374+
13631375 const inputBoxTitle = useMemo ( ( ) => {
13641376 const segments : string [ ] = [ ]
13651377
@@ -1380,6 +1392,9 @@ export const Chat = ({
13801392 ! feedbackMode &&
13811393 ( hasStatusIndicatorContent || shouldShowQueuePreview || ! isAtBottom )
13821394
1395+ // Determine if Claude is actively streaming/waiting
1396+ const isClaudeActive = isStreaming || isWaitingForResponse
1397+
13831398 // Track mouse movement for ad activity (throttled)
13841399 const lastMouseActivityRef = useRef < number > ( 0 )
13851400 const handleMouseActivity = useCallback ( ( ) => {
@@ -1541,6 +1556,12 @@ export const Chat = ({
15411556 cwd : getProjectRoot ( ) ?? process . cwd ( ) ,
15421557 } ) }
15431558 />
1559+
1560+ < BottomStatusLine
1561+ isClaudeConnected = { isClaudeOAuthActive }
1562+ isClaudeActive = { isClaudeActive }
1563+ claudeQuota = { claudeQuota }
1564+ />
15441565 </ box >
15451566 </ box >
15461567 )
0 commit comments