@@ -12,6 +12,7 @@ import {
1212 TriangleAlertIcon ,
1313} from "lucide-react" ;
1414import { ProjectFavicon } from "./ProjectFavicon" ;
15+ import { ClaudeAI , OpenAI } from "./Icons" ;
1516import { autoAnimate } from "@formkit/auto-animate" ;
1617import React , { useCallback , useEffect , memo , useMemo , useRef , useState } from "react" ;
1718import { useShallow } from "zustand/react/shallow" ;
@@ -233,24 +234,56 @@ interface PrStatusIndicator {
233234
234235type ThreadPr = GitStatusResult [ "pr" ] ;
235236
237+ function providerStatusIconClassName ( provider : ThreadStatusPill [ "workingProvider" ] ) : string {
238+ if ( provider === "claudeAgent" ) {
239+ return "text-[#d97757]" ;
240+ }
241+
242+ if ( provider === "codex" ) {
243+ return "text-foreground" ;
244+ }
245+
246+ return "" ;
247+ }
248+
236249function ThreadStatusLabel ( {
237250 status,
238251 compact = false ,
239252} : {
240253 status : ThreadStatusPill ;
241254 compact ?: boolean ;
242255} ) {
256+ const isCodex = status . workingProvider === "codex" ;
257+ const statusIcon =
258+ status . workingProvider === "claudeAgent" ? (
259+ < ClaudeAI
260+ className = { `size-3 ${ providerStatusIconClassName ( status . workingProvider ) } ${
261+ status . pulse ? "animate-pulse" : ""
262+ } `}
263+ />
264+ ) : isCodex ? (
265+ < OpenAI
266+ className = { `size-3 ${ providerStatusIconClassName ( status . workingProvider ) } ${
267+ status . pulse ? "animate-pulse" : ""
268+ } `}
269+ />
270+ ) : null ;
271+
243272 if ( compact ) {
244273 return (
245274 < span
246275 title = { status . label }
247276 className = { `inline-flex size-3.5 shrink-0 items-center justify-center ${ status . colorClass } ` }
248277 >
249- < span
250- className = { `size-[9px] rounded-full ${ status . dotClass } ${
251- status . pulse ? "animate-pulse" : ""
252- } `}
253- />
278+ { statusIcon ? (
279+ statusIcon
280+ ) : (
281+ < span
282+ className = { `size-[9px] rounded-full ${ status . dotClass } ${
283+ status . pulse ? "animate-pulse" : ""
284+ } `}
285+ />
286+ ) }
254287 < span className = "sr-only" > { status . label } </ span >
255288 </ span >
256289 ) ;
@@ -261,11 +294,15 @@ function ThreadStatusLabel({
261294 title = { status . label }
262295 className = { `inline-flex items-center gap-1 text-[10px] ${ status . colorClass } ` }
263296 >
264- < span
265- className = { `h-1.5 w-1.5 rounded-full ${ status . dotClass } ${
266- status . pulse ? "animate-pulse" : ""
267- } `}
268- />
297+ { statusIcon ? (
298+ statusIcon
299+ ) : (
300+ < span
301+ className = { `h-1.5 w-1.5 rounded-full ${ status . dotClass } ${
302+ status . pulse ? "animate-pulse" : ""
303+ } `}
304+ />
305+ ) }
269306 < span className = "hidden md:inline" > { status . label } </ span >
270307 </ span >
271308 ) ;
0 commit comments