claude-code - 💡(How to fix) Fix [BUG] Claude Code Resume Not Working [2 comments, 2 participants]
ON THIS PAGE
Recommended Tools
×6Utilities matched from this issue’s tags and category — try them while you read without losing context.
GitHub issue graph ai analysis
Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.
The report is written in English Markdown for sharing and archival.
Helpful · Quick feedback
Error Message
ERROR F1H is not a function. (In 'F1H(q)', 'F1H' is undefined)
/$bunfs/root/src/entrypoints/cli.js:9251:5663
9248: ${q.join( 9249: 9250)}}var PZ7,fvq=1000,JZ7=300,XZ7=5000;var UC_=E(()=>{J6();v6();Vp();Ob();Lvq();_6();Hk();PZ7=(ZmH(),S_(EmH))});var Yvq={};j6(Yvq,{useScheduledTasks:()=>GZ7});function : GZ7({isLoading:H,assistantMode:_,setMessages:A}){let q=nz8.useRef(H);q.current=H;let K=UK(),L=B_(),f=WY();nz8.useEffect(()=>{if(!Z0()||R_())return;let M=(D)=>y5({value:WZ7.resolveLoopDefaultFire(D),mode:"prompt",priority:"later",isMeta:!0,workload:hSH}),$=void 0,O=pC_({onFire:M,onFireTask:(D)=>{if(D.agentId){let Y=nr(D.agentId,K.getState().tasks);if(Y&&!HS(Y.status)){KmH(Y.id,D.prompt,f);return}N([ScheduledTasks] teammate ${D.agentId} gone, removing orphaned cron ${D.id}),i6H([D.id]);return}let z=hU9(D.kind==="loop"?Claude resuming /loop wakeup (${zvq(new Date)}):Running scheduled task (${zvq(new
Date)}));A((Y)=>[...Y,z]),M(D.prompt)},isLoading:()=>q.current,assistantMode:_,getJitterConfig:s7H,isKilled:()=>!Z0(),getExtraTasks:Dvq&&$?()=>Dvq.getRoutineCronTasks(TL(),$):void 0});return O.start(),()=>{O.stop()}},[_,A,K.getState,f])}function zvq(H){return H.toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).replace(/,? at |, /," ").replace(/ ([AP]M)/,(_,A)=>A.toLowerCase())}var nz8,WZ7,Dvq=null;var wvq=E(()=>{SS();J6();y_();mE();AS();zb();Rq6();UC_();Ob();_6();d3();z_();ALH();nz8=x(PH(),1),WZ7=(ZmH(),S_(EmH))});var Wvq={};j6(Wvq,{REPL:()=>gC_});function jvq(H){let _=iz8.c(14),{showAllInTranscript:A,virtualScroll:q,searchBadge:K,suppressShowAll:L,status:f}=H,M=L===void 0?!1:L,$=P4("app:toggleTranscript","Global","ctrl+o"),O=P4("transcript:toggleShowAll","Transcript","ctrl+e"),D;if(_[0]===Symbol.for("react.memo_cache_sentinel"))D=xQ9(),_[0]=D;else D=_[0];let z=D,Y=z?open in ${z}:"open in editor",w;if(_[1]===Symbol.for("react.memo_cache_sentinel"))w=L8.createElement(L8.Fragment,null,"Showing detailed transcript"),_[1]=w;else w=_[1];let j;if(_[2]!==$)j=L8.createElement(L8.Fragment,null,$," to toggle"),_[2]=$,_[3]=j;else j=_[3];let P=K?"n/N to navigate":q?${K6.arrowUp}${K6.arrowDown} scroll \xB7 [ to print output
\xB7 v to ${Y}:M?v to ${Y}:${O} to ${A?"collapse":"show all"},J;if(_[4]!==j||_[5]!==P)J=L8.createElement(v,{dimColor:!0},L8.createElement(t6,null,w,j,P)),_[4]=j,_[5]=P,_[6]=J;else J=_[6];let X;if(_[7]===Symbol.for("react.memo_cache_sentinel"))X=L8.createElement(p,{flexGrow:1}),_[7]=X;else X=_[7];let G;if(_[8]!==K||_[9]!==f)G=L8.createElement(SZ7,{status:f,searchBadge:K}),_[8]=K,_[9]=f,_[10]=G;else G=_[10];let W;if(_[11]!==J||_[12]!==G)W=L8.createElement(p,{noSelect:!0,alignItems:"center ",alignSelf:"center",borderTopDimColor:!0,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:"single",marginTop:1,paddingLeft:2,width:"100%"},J,X,G),_[11]=J,_[12]=G,_[13]=W;else W=_[13];return W}function SZ7(H){let _=iz8.c(6),{status:A,searchBadge:q}=H;if(A){let L;if(_[0]!==A)L=L8.createElement(v,null,A," "),_[0]=A,_[1]=L;else L=_[1];return L}if(q){let L;if(_[2]!==q.count||_[3]!==q.current)L=L8.createElement(v,{dimColor:!0},q.current,"/",q.count," "),_[2]=q.count,_[3]=q.current,_[4]=L;else L=_[4];return L}let K;if(_[5]===Symbol.for("react.memo_cache_sentinel"))K=L8.createElement(v,{dimColor:!0},"verbose "),_[5]=K;else K=_[5];return K}function RZ7({jumpRef:H,count:_,current:A,onClose:q,onCancel:K,setHighlight:L,initialQuery:f}){let{query:M,cursorOffset:$,handleKeyDown:O,handlePaste:D}=MT({isActive:!0,initialQuery:f,onExit:()=>q(M) ,onCancel:K}),[z,Y]=s6.useState("building");s6.useEffect(()=>{let J=!0,X=H.current?.warmSearchIndex;if(!X){Y(null);return}return Y("building"),X().then((G)=>{if(!J)return;if(G<20)Y(null);else Y({ms:G}),setTimeout(()=>J&&Y(null),2000)}),()=>{J=!1}},[]);let w=z!=="building";s6.useEffect(()=>{if(!w)return;H.current?.setSearchQuery(M),L(M)},[M,w]);let j=$,P=j<M.length?M[j]:" ";return L8.createElement(p,{borderTopDimColor:!0,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:"single",marginTop:1,paddingLeft:2,tabIndex:0,autoFocus:!0,onKeyDown:O,onPaste:D,width:"100% ",noSelect:!0},L8.createElement(v,null,"/"),L8.createElement(v,null,M.slice(0,j)),L8.createElement(v,{inverse:!0},P),j<M.length&&L8.createElement(v,null,M.slice(j+1)),L8.createElement(p,{fle xGrow:1}),z==="building"?L8.createElement(v,{dimColor:!0},"indexing\u2026 "):z?L8.createElement(v,{dimColor:!0},"indexed in ",z.ms,"ms "):_===0&&M?L8.createElement(v,{color:"error"},"no matches "):_>0?L8.createElement(v,{dimColor:!0},A,"/",_," "):null)}function Jvq(H){let _=iz8.c(6),{isAnimating:A,title:q,disabled:K,noPrefix:L}=H,f=u$(),[M,$]=s6.useState(0),O,D;if(_[0]!==K||_[1]!==A||_[2]!==L||_[3]!==f)O=()=>{if(K||L||!A||!f)return;let Y=setInterval(bZ7,CZ7,$);return()=>clearInterval(Y)},D=[K,L,A,f],_[0]=K,_[1]=A,_[2]=L,_[3]=f,_[4]=O,_[5]=D;else O=_[4],D=_[5];s6.useEffect(O,D);let z=A?Xvq[M]??Pvq:Pvq;return rLH(K?null:L?q:${z} ${q}),null}function bZ7(H){return H(uZ7)}function uZ7(H){return(H+1)%Xvq.length}function gC_({commands:H,debug:_,initialTools:A,initialMessages:q,pendingHookMessages:K,initialFileHistorySnapshots:L,initialContentReplacements:f,initialAgentName:M,initialAgentColor:$,mcpClients:O, dynamicMcpConfig:D,autoConnectIdeFlag:z,strictMcpConfig:Y=!1,systemPrompt:w,appendSystemPrompt:j,onBeforeQuery:P,onTurnComplete:J,disabled:X=!1,mainThreadAgentDefinition:G,disableSlashComman ds:W=!1,remoteSessionConfig:T,directConnectConfig:Z,sshSession:I,thinkingConfig:V}){let y=!!T,R=s6.useMemo(()=>yH(process.env.CLAUDE_CODE_DISABLE_TERMINAL_TITLE),[]),h=s6.useMemo(()=>!1,[]), C=s6.useMemo(()=>yH(process.env.CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL),[]),U=!1;s6.useEffect(()=>{return N([REPL:mount] REPL mounted, disabled=${X}),()=>N("[REPL:unmount] REPL unmounting")},[ X]);let[u,S]=s6.useState(G),B=Y6((w6)=>w6.toolPermissionContext),F=Y6((w6)=>w6.verbose),g=Y6((w6)=>w6.mcp),d=Y6((w6)=>w6.plugins),i=Y6((w6)=>w6.agentDefinitions),n=Y6((w6)=>w6.initialMessage ),o=Ss(),_H=Y6((w6)=>w6.expandedView)==="tasks",r=Y6((w6)=>w6.pendingWorkerRequest),HH=Y6((w6)=>w6.pendingSandboxRequest),t=Y6((w6)=>w6.teamContext),MH=Y6((w6)=>w6.tasks),$H=Y6((w6)=>w6.work erSandboxPermissions),jH=Y6((w6)=>w6.elicitation),s=Y6((w6)=>w6.ultraplanPendingChoice),a=Y6((w6)=>w6.ultraplanLaunchPending),qH=Y6((w6)=>w6.viewingAgentTaskId),e=B_(),fH=qH?MH[qH]:void 0,KH=uj(fH)&&fH.retain&&!fH.diskLoaded;s6.useEffect(()=>{if(!qH||!KH)return;let w6=qH;Z5H(h5(w6)).then((r6)=>{e((K8)=>{let HA=K8.tasks[w6];if(!uj(HA)||HA.diskLoaded||!HA.retain)return K8;let NA=HA.messages??[],O1=new Set(NA.map((l1)=>l1.uuid)),A1=r6?r6.messages.filter((l1)=>!O1.has(l1.uuid)):[];return{...K8,tasks:{...K8.tasks,[w6]:{...HA,messages:[...A1,...NA],diskLoaded:!0}}}})})},[qH,KH,e]);let zH=UK(),OH=s6.useMemo(()=>LN(()=>zH.getState(),e),[zH,e]),JH=s6.useMemo(()=>rTH(()=>zH.getState(),e),[zH,e]),wH=Vi(),TH=TY(),[vH,WH]=s6.useState(H);TGq(y?void 0:TL(),WH);let ZH=Y6((w6)=>w6.isBriefOnly),RH=s6.useMemo(()=>t0(B),[B,ZH]);qj9(),Kj9();let[UH,sH]=s6.useState(D),cH=s6.useCallback((w6)=>{sH(w6)},[sH]),[M6,O6]=s6.useState("prompt"),[EH,CH]=s6.useState(!1) ,[mH,uH]=s6.useState(!1),[aH,rH]=s6.useState(""),nH=s6.useRef(0),QH=s6.useRef(void 0),tH=s6.useRef(!1),{addNotification:Z6,removeNotification:U6}=L9(),H8=kZ7,c6=JGq(O,g.clients),[iH,x6]=s6.useState(void 0),[BH,L6]=s6.useState(null),[IH,oH]=s6.useState(null),[D6,W6]=s6.useS tate(!1),[LH,YH]=s6.useState(()=>{return!1}),xH=Y6((w6)=>w6.showRemoteCallout),[bH,eH]=s6.useState(()=>ETq());LZq(),MZq(),AZq({ideSelection:iH,mcpClients:c6,ideInstallationStatus:IH}),rTq({m cpClients:c6}),aTq(),kEq(),hEq(),G78(),FEq(TH),WZq(),EZq(),cEq(TH),lEq(),eEq(),oEq(),IZ7(),e0q(),DTq(),PTq(),eTq(),YZq();let{recommendation:SH,handleResponse:E6}=wEq(),{recommendation:z6,han dleResponse:Q6}=GEq(),{pending:B6,handleAction:l8,skipForSession:N8}=vZ7(),F_=s6.useMemo(()=>{return[...RH,...A]},[RH,A]);Lz8({enabled:!y}),kGq({enabled:!y});let f_=CO9();s6.useEffect(()=>{if(y)return;uEq(e)},[e,y]),s6.useEffect(()=>{let w6=setTimeout(iZq,500);return()=>clearTimeout(w6)},[]),WTq(y?FC_:c6,B.mode),s6.useEffect(()=>{XN_(B.mode)},[B.mode]),VWq(e,q,{enabled:!y});let DA=n58(F_,g.tools,B),{tools:L1,allowedAgentTypes:F8}=s6.useMemo(()=>{if(!u)return{tools:DA,allowedAgentTypes:void 0};let w6=Ic(u,DA,!1,!0);return{tools:w6.resolvedTools,allowedAgentTypes:w6.allowedAgentTypes}},[u,DA]),j_=s6.useRef(L1);j_.current=L1;let h1=s6.useMemo(()=>{if(!Dj())return L1;let w6=new Set(L1.map((K8)=>K8.name)),r6=nMH().filter((K8)=>!w6.has(K8.name));return r6.length>0?[...L1,...r6]:L1},[L1]),p1=nR_(vH,d.commands),Rq=nR_(p1,g.commands),g_=s6.useMemo(()=>W?[]:Rq,[W,Rq]);VY q(y?FC_:g.clients),RGq(y?FC_:g.clients,x6);let[zK,YK]=s6.useState([]),[U4,lL]=s6.useState(null);s6.useEffect(()=>{if(U4&&!U4.isStreaming&&U4.streamingEndedAt){let r6=30000-(Date.now()-U4.streamingEndedAt);if(r6>0){let K8=setTimeout(lL,r6,null);return()=>clearTimeout(K8)}else lL(null)}},[U4]);let[Mq,mf]=s6.useState(null),B4=s6.useRef(null);B4.current=Mq;let Sz=s6.useRef(null),xY=s6.useRef(()=>{}),KL=s6.useRef(()=>{}),V3=s6.useRef(null),ej=s6.useRef(null),mY=s6.useRef(0),Yf=s6.useRef(new Eh_).current,MM=s6.useSyncExternalStore(Yf.subscribe,Yf.getSnapshot),[L7,hL]=s6.useState(T?.hasInitialPrompt??!1),U9=MM||L7,[wf,A4]=s6.useState(void 0),V7=s6.useRef(0),q4=s6.useRef(!1),jf=s6 .useRef(0),f7=s6.useRef(0),s$=s6.useRef(null),cD=s6.useCallback(()=>{jf.current=Date.now(),f7.current=0,s$.current=null},[]),Uw=s6.useRef(!1);if(MM&&!Uw.current)cD();Uw.current=MM;let QO=s6.useCallback((w6)=>{if(hL(w6),w6)cD()},[cD]),t$=s6.useRef(null),Rz=s6.useRef(void 0),M$=s6.useRef(void 0),HP=1500,[Pf,z5]=s6.useState(!1);s6.useEffect(()=>{if(oA())IO1().then((w6)=>{if( w6)Z6({key:"tmux-mouse-hint",text:w6,priority:"low"})});VO1().then((w6)=>{if(w6)Z6({key:"tmux-focus-hint",text:w6,priority:"low"})})},[]);let[QD,Bw]=s6.useState(!1);s6.useEffect(()=>{},[]);l et[X8,jA]=s6.useState(null),W1=s6.useRef(null),o1=s6.useCallback((w6)=>{if(w6?.isLocalJSXCommand){let{clearLocalJSX:r6,...K8}=w6;W1.current={...K8,isLocalJSXCommand:!0},jA(K8);return}if(W1.c urrent){if(w6?.clearLocalJSX){W1.current=null,jA(null);return}return}if(w6?.clearLocalJSX){jA(null);return}jA(w6)},[]),[a1,LL]=s6.useState(()=>new Map),s4=s6.useCallback((w6)=>{LL((r6)=>f0q( r6,w6))},[]),[kq,dA]=s6.useState([]),G1=s6.useMemo(()=>Qzq(dA),[dA]),[bK,KK]=s6.useState(null),[Q1,pf]=s6.useState([]),[nK,k$]=s6.useState([]),pY=s6.useRef(new Map),Fw=Y6((w6)=>w6.settings.terminalTitleFromRename)!==!1,i7=s6.useSyncExternalStore(PN_,()=>Fw?jz(k6()):void 0);s6.useEffect(()=>{return wN_(()=>{let w6=kQH();if(!w6)return;e((r6)=>{if(r6.standaloneAgentContext?.name===w6)return r6;return{...r6,standaloneAgentContext:{...r6.standaloneAgentContext,name:w6}}})})},[e]);let[M9,gw]=s6.useState(),Cz=s6.useRef((q?.length??0)>0),LW=u?.agentType,K4=i7??LW??M9??"Claude Code",r7=kq.length>0||nK.length>0||r||HH,k7=X8?.isLocalJSXCommand===!0&&X8?.jsx!=null,bz=s6.useMemo(()=>lq8(MH),[MH]),_P=r7||k7?"waiting":U9||bz?"busy":"idle",lO=s6.useMemo(()=>UMq(MH),[MH]) ,AP=_P==="idle"&&lO?"busy":_P,Jf=_P==="busy";s6.useEffect(()=>{if(_P==="busy")return yzq(),()=>hzq()},[_P]);let Y5=_P!=="waiting"?void 0:kq.length>0?approve ${kq[0].tool.name}:r?"worker request":HH?"sandbox request":k7?"dialog open":"input needed";s6.useEffect(()=>{UR6({status:AP,waitingFor:Y5})},[AP,Y5]);let nO=yqq(MH),I1=vQ6();s6.useEffect(()=>{Vh9({tasks:nO.count,queued:I1,kinds:nO.kinds})},[nO.count,I1,nO.kinds.join(",")]);let k3=h6("tengu_terminal_sidebar",!1)&&(y6().showStatusInTerminalTab??!1),Lx=Y6((w6)=>w6.postTurnSummary?.status_detail);Rg6(R||!k3?null:_P,Lx),s6.useEffect(()=>{return zZ1(G1),()=>YZ1()},[G1]);let[SK,sN]=s6.useState(q??[]),M7=s6.useRef(SK),VT=s6.useRef(!1),B9=s6.useCallback((w6)=>{let r6=M7.current,K8=typeof w6==="function"?w6(M7.current):w6;if(M7.current=K8,K8.length<V7.current)V7.current=0,q4.current=!1,A4(void 0);else if(K8.length>r6.length&&q4.current){let HA=K8.length-r6.length;if((r6.length===0||K8[0]===r6[0]?K8.slice(-HA):K8.slice(0,HA)).some($L6))q4.current=!1;else V7.current=K8.length}sN(K8)},[]),B5=s6.useCallback((w6)=>B9((r6)=>_z8(r6,w6)),[B9]);$Tq(s6.useCallback((w6)=>B9((r6)=>[...r6,A8({content:yf8(w6),isMeta:!0})]),[B9]));let NX=s6.useCallback((w6)=>{if(w6!==void 0)V7.current=M7.current.length,q4.current=!0;else q4.current=!1;A4(w6)},[]),{dividerIndex:yX,dividerYRef:fW,onScrollAway:bZ,onRepin:MV,jumpToNew:gs,shif tDivider:lD}=Re9(SK.length);KTq(SK,B9,U9,mY,!y);let[kT,FH]=s6.useState(null),lH=s6.useRef(kT);lH.current=kT;let o6=s6.useRef(null),H6=s6.useMemo(()=>Ce9(SK,yX),[yX,SK.length]),F6=s6.useCallback((w6=!1,r6="?")=>{if(!w6&&!u7("autoScrollEnabled",!0).value)return;let K8=V3.current;if(K8&&!K8.isSticky())N(repinScroll(${r6}, force=${w6}): yanking from scrollTop=${K8.getScrollTop()}
(max=${Math.max(0,K8.getScrollHeight()-K8.getViewportHeight())}));if(K8?.scrollToBottom(),MV(),lH.current!==null)FH(null)},[MV]),y8=SK.at(-1),T8=y8!=null&&$L6(y8);s6.useEffect(()=>{if(T8)F6 (!1,"lastMsgIsHuman")},[T8,y8,F6]);let{maybeLoadOlder:b_}=yZ7,s_=s6.useCallback((w6,r6)=>{if(mY.current=Date.now(),w6)MV();else bZ(r6)},[MV,bZ,b_]),I9=OWq(K,B9),[$7,F4]=s6.useState(null);s6.useState(()=>{return DA8(ir8()),null});let D9=s6.useRef(OA8()),iK=aj9(),n9=s6.useCallback(()=>z5(!1),[]),vK=yi(n9,HP),BM=s6.useRef(null),GL=s6.useCallback((w6)=>{if(H8(D9.current,w6))return;if(D9.current===""&&w6!==""&&Date.now()-mY. current>=hZ7)F6(!1,"typedIntoEmpty");D9.current=w6,DA8(w6),Y_H.recordUserActivity(),vDH(!0);let r6=w6.trim().length>0;if(z5(r6),r6)vK();else vK.cancel()},[z5,F6,H8,vK]),[$M,nD]=s6.useState("prompt"),[qP,tN]=s6.useState(),uz=s6.useCallback((w6)=>{let r6=new Set(w6.slash_commands);WH((K8)=>K8.filter((HA)=>r6.has(HA.name)||ak_.has(HA))),e((K8)=>K8.mainLoopModel===w6.model?K8:{...K8,mainLoopModel:w6.model})},[WH,e]),[NT,$V]=s6.useState(new Set),JR=s6.useCallback((w6)=>{$V((r6)=>{switch(w6.action){case"add":{let K8=new Set(r6);for(let HA of w6.ids)K8.add(HA);return K8}case"remove":{let K8=new Set(r6);for(let HA of w6.ids)K8.delete(HA);return K8.size===r6.size?r6:K8}case"clear":return r6.size>0?new Set:r6}})},[]),hX=s6.useRef(!1),yT=s6.useRef(0),eN=s6.useRef([]),RB=s6.useRef(0),BQ=s6.useCallback((w6)=>{yT.current+=w6;let r6=eN.current;if(w6>0&&r6.length>0){let K8=r6.at(-1);if(K8.output Tokens==null)K8.lastTokenTime=Date.now(),K8.endResponseLength=yT.current}},[]),TZH=s6.useCallback(()=>{yT.current=0},[]),x1H=s6.useCallback((w6)=>{if(w6.type==="start"){let r6=Date.now(),K8=yT.current;eN.current.push({id:w6.id,ttftMs:w6.ttftMs,firstTokenTime:r6,lastTokenTime:r6,responseLengthBaseline:K8,endResponseLength:K8})}else{let r6=w6.id!=null?eN.current.find((K8)=>K8.id===w6.id):eN.current.findLast((K8)=>K8.id==null);if(r6){if(r6.outputTokens=w6.outputTokens,r6.lastTokenTime=Date.now(),w6.id==null)yT.current=Math.m ax(yT.current,r6.responseLengthBaseline+w6.outputTokens*4)}}},[]),CB=h2q({config:T,setMessages:B9,setIsLoading:QO,onInit:uz,setToolUseConfirmQueue:G1,tools:F_,setStreamingToolUses:YK,setStre amMode:JM6,setInProgressToolUseIDs:JR,recordApiMetricsEvent:x1H,permissionMode:B.mode}),ds=b2q({config:Z,setMessages:B9,setIsLoading:QO,setToolUseConfirmQueue:G1,tools:F_,permissionMode:B.mo de}),bB=m2q({session:I,setMessages:B9,setIsLoading:QO,setToolUseConfirmQueue:G1,tools:F_,permissionMode:B.mode}),KP=s6.useMemo(()=>bB.isRemoteMode?OL8("ssh",bB,!1):ds.isRemoteMode?OL8("direc t",ds,!1):CB.isRemoteMode?OL8("ccr",CB,T?.viewerOnly??!1,T?.sessionId):KG_,[bB,ds,CB,T?.viewerOnly,T?.sessionId]);s6.useEffect(()=>{let w6=KP.isRemoteMode?KP:null,r6=KP.isRemoteMode&&KP.kind ==="ccr"?"ccr-api":"local-jsonl",K8=uDH();if(K8.remote!==w6||K8.transcriptSource!==r6)DP8({...K8,remote:w6,transcriptSource:r6})},[KP]);let[Uf,YJ]=s6.useState({}),[XR,m1H]=s6.useState(0),[WR ,uZ]=s6.useState(null),FQ=!(Y6((w6)=>w6.settings.prefersReducedMotion)??!1)&&!Jj1(),GR=s6.useCallback((w6)=>{if(!FQ)return;uZ(w6)},[FQ]),vG=WR&&FQ?WR.substring(0,WR.lastIndexOf(
9251 )+1)||null:null,[xZ,cs]=s6.useState(0),[Qs,fx]=s6.useState(!1),[QOH,ls]=s6.useState(void : 0),[ns,p1H]=s6.useState(!1),[lOH,OV]=s6.useState(xOH.randomUUID()),[uB,IG]=s6.useState(null),gQ=s6.useCallback((w6)=>{let r6=vzq(w6,Tj);if(r6)IG(r6)},[]),U1H=s6.useRef(xZ);U1H.current=xZ;let[is]=s6.useState(()=>({current:Oy1(q,f)})),[xB]=s6.useState(()=>({current:Ic1(q??[])})),[dQ,LP]=s6.useState(y6().hasAcknow ledgedCostThreshold),[cQ,wJ]=s6.useState(!1),[N6,i8]=s6.useState(!1),JA=s6.useRef("INSERT");s6.useEffect(()=>{if(s&&cQ)wJ(!1)},[s,cQ]);let wK=u$(),LK=s6.useRef(wK);LK.current=wK;let[L4]=Y1(),j5=s6.useRef(!1),UY=s6.useCallback(()=>{if(j5.current)return;j5.current=!0;let w6=M7.current.slice(lQ.current);for(let r6 of sL_(w6))d1H.current.add(r6);lQ.current=M7.current.length,ITq({theme:L4,readFileState:mB.current,bashTools:d1H.current}).then(async(r6)=>{if(r6){let K8=await r6.content({theme:L4});e((HA)=>({...HA,spinnerTip:K8})),VTq(r6)}else e((K8)=>{if(K8.spinnerTip===void 0)return K8;return{...K8,spinnerTip:void 0}})})},[e,L4]),Xf=s6.useCallback(()=>{QO(!1),NX(void 0),yT.current=0,eN.current=[],RB.current++,uZ(null),YK([]),l3_(),JM6("responding"),UY(),ar(),so6()},[UY]),jJ=s6.useMemo(()=>G2H(MH).some ((w6)=>w6.status==="running"),[MH]);s6.useEffect(()=>{if(!jJ&&t$.current!==null){let w6=Date.now()-t$.current,r6=Rz.current;t$.current=null,Rz.current=void 0,B9((K8)=>[...K8,gW_(w6,r6,A_(K8,H1H))])}},[jJ,B9]);let MW=s6.useRef(!1);s6.useEffect(()=>{{if(B.mode!=="auto"){MW.current=!1;return}if(MW.current)return;if((y6().autoPermissionsNotificationCount??0)>=3)return;let K8=setTimeout((HA,NA)=>{HA.current=!0,a6((O1)=>{let A1=O1.autoPermissionsNotificationCount??0;if(A1>=3)return O1;return{...O1,autoPermissionsNotificationCount:A1+1}}),NA((O1)=>[...O1,L5(jD8,"warning")])},800,MW,B9);return()=>clearTimeout(K8)}},[B.mode,B9]);let UlH=s6.useRef(!1),nOH=s6.useRef(!1);s6.useEffect(()=>{if(nOH.current)return;let w6=_5();if(!w6?.creationDurationMs||w6.usedSparsePaths)return;if(w6.creationDurationMs<15000)return;nOH.current=!0;let r6=Math.round(w6.creationDurationMs/1000);B9((K8)=>[...K8,L5(Worktree
creation took ${r6}s. For large repos, set `worktree.sparsePaths` in .claude/settings.json to check out only the directories you need \u2014 e.g. `{"worktree": {"sparsePaths": ["src",
"packages/foo"]}}`.,"info")])},[B9]);let{onBeforeQuery:B1H,onTurnComplete:EZH,onSessionRestored:F1H,render:aP6,ownsInput:ZZH}=F2q({enabled:h,setMessages:B9,setInputValue:GL,setToolJSX:o1,r esultDedupState:xB.current}),iOH=(!X8||X8.showSpinner===!0)&&kq.length===0&&nK.length===0&&(U9||wf||jJ||vQ6()>0)&&!r&&(!vG||ZH),rs=kq.length>0||nK.length>0||Q1.length>0||jH.queue.length>0||$ H.queue.length>0;xzq({sandboxHost:Q1[0]?.hostPattern.host,promptTitle:nK[0]?.title,elicitationServer:jH.queue[0]?.serverName,workerSandboxHost:$H.queue[0]?.host});let rOH=V0q({hasActivePrompt:rs,otherSurveyActive:!1}),g1H=y0q(SK,U9,rs,{enabled:!y}),hT=v0q(SK,U9,rs,{enabled:!y,otherSurveyActive:rOH.state!=="closed"||g1H.state!=="closed"}),vZH=J0q(SK,U9,XR, "session",rs,rOH.state!=="closed"||g1H.state!=="closed"||hT.state!=="closed"),mZ=uZq(SK,XR),BlH=s6.useMemo(()=>({...vZH,handleSelect:(w6)=>{if(NZH.current=!1,vZH.handleSelect(w6),w6==="bad"& &VZq("feedback_survey_bad"))c1H("feedback_survey_bad"),NZH.current=!0}}),[vZH]),sP6=ZZ7(SK,U9,rs,rOH.state!=="closed"||BlH.state!=="closed"||g1H.state!=="closed"||hT.state!=="closed");H0q({a utoConnectIdeFlag:z,ideToInstallExtension:BH,setDynamicMcpConfig:sH,setShowIdeOnboarding:W6,setIDEInstallationState:oH}),FTq(L,(w6)=>e((r6)=>({...r6,fileHistory:w6})));let tP6=s6.useCallback(async(w6,r6,K8)=>{let HA=performance.now();try{let NA=SM6(r6.messages),O1=BD6();await KTH("resume",{getAppState:()=>zH.getState(),setAppState:e,signal:AbortSignal.timeout(O1)});let{agentDefinition:A1}=qZH(r6.agentSetting,G,i);S(A1),e((g4)=>({...g4,agent:A1?.agentType}));let l1=await bb("resume",{sessionId:w6,agentType:A1?.agentType,model:TH});if(NA.push(...l1),K8==="fork")IB1(r6,W2(w6));else Dr6(r6,W2(w6));if(r6.fileHistorySnapshots)L_8(r6);if(e((g4)=>({...g4,s tandaloneAgentContext:OP6(r6.agentName,r6.agentColor)})),Gv(r6.agentName),HJ6(NA,r6.projectPath??q_()),K8!=="fork")sOH.current.current=u36(NA,F_);Xf(),mf(null),OV(w6);let _A=wq_(w6);a46(),hvH(),uT(W2(w6),r6.fullPath?rz8.dirname(r6.fullPath):null);let{renameRecordingForSession:$9}=await Promise.resolve().then(() => (MP6(),BGq));if(await $9(),await eU(),$P6(r6,e),UD6(),Ts(r6),Cz.current=!0,gw(void 0),K8!=="fork")gGq(r6.worktreeSession===void 0?r6.projectPath:r6.worktreeSession?.worktreePath),DP6(r6.worktreeSession,r6.projectPath),Gs(),yO_({abortController:new AbortController,taskRegistry:OH}),fl(PV().map((g4)=>g4.id)),tR_(NA);else{let g4=_5();if(g4)dS(g4)}if(_A)dnH(_A);if(is.current&&K8!=="fork")is.current=gl6(NA,r6.contentReplacements??[]);if(B9 (()=>NA),o1(null),GL(""),K8!=="fork")gQ(NA);c("tengu_session_resumed",{entrypoint:K8,success:!0,resume_duration_ms:Math.round(performance.now()-HA)})}catch(NA){throw c("tengu_session_resumed ",{entrypoint:K8,success:!1,failure_reason:"processing_error",error_name:n8(NA).name}),NA}},[Xf,e,OH,gQ]),[QQ]=s6.useState(()=>Pb(hp)),mB=s6.useRef(QQ),d1H=s6.useRef(new Set),lQ=s6.useRef(0),FlH=s6.useRef(new Set),glH=s6.useRef(new Map),IZH=s6.useRef(new Set),oOH=s6.useRef(new Map),VZH=s6.useRef(void 0),aOH=s6.useRef(KfH()),eP6=s6.useRef(w76()),sOH=s6.useRef(tFH()),HJ6=s6.useCallback((w6,r6)=>{let K8=MpH(w6,r6,hp);mB.current=quH(mB.current,K8);for(let HA of sL_(w6))d1H.current.add(HA)},[e]);s6.useEffect(()=>{if(q&&q.length>0)HJ6(q,q_()),yO_({abortController:new AbortController,taskRegistry:OH}),tR_(q),gQ(q),sOH.current.current=u36(q,F_),F1H(q)} ,[]);let{status:_J6,reverify:kZH}=zWq(),[Mx,c1H]=s6.useState(null),NZH=s6.useRef(!1),[dlH,clH]=s6.useState(null),[QlH,llH]=s6.useState(!1),nlH=!U9&&ns;function tOH(){if(QlH||dlH)return;if(Qs)return"message-selector";if(Pf)return;if(Q1[0])return"sandbox-permission";let w6=!X8||X8.shouldContinueAnimation;if(w6&&kq[0])return"tool-permission";if(w6&&nK[0])return"prompt";if(w6&&$H.queue[0])return"worker-sandbox-permission";if(w6&&jH.queue[0])return"elicitation ";if(w6&&nlH)return"cost";if(w6&&uB)return"resume-return";if(w6&&!U9&&s)return"ultraplan-choice";if(w6&&!U9&&a)return"ultraplan-launch";if(Iq()){if(w6&&xH)return"remote-callout";return}if(w6 &&D6)return"ide-onboarding";if(w6&&xH)return"remote-callout";if(w6&&SH)return"lsp-recommendation";if(w6&&z6)return"plugin-hint";if(w6&&bH)return"desktop-upsell";return}let P5=tOH(),AJ6=Pf&&(Q1[0]||kq[0]||nK[0]||$H.queue[0]||jH.queue[0]||nlH);M$.current=P5,s6.useEffect(()=>{if(!U9)return;let w6=P5==="tool-permission",r6=Date.now();if(w6&&s$.current===null)s$.current=r6;else if(!w6&&s$.current!==null)f7.current+=r6-s$.current,s$.current=null},[P5,U9]);let ilH=s6.useRef(P5),Bf=s6.useRef(null);s6.useLayoutEffect(()=>{let w6=ilH.current==="tool-permission",r6=P5==="tool-permission";if(ilH.current=P5,w6===r6)return;let K8=V3.current;if(r6)Bf.current=K8&&!K8.isSticky()?K8.getScrollTop():null,F6(!0,"permissionDialogAppear");else if(Bf.current!==null)K8?.scrollTo(Bf.current),Bf.current=null;else F6(!0,"permissionDialogDismiss")},[P5,F6]);let os=X8?.jsx!=null,qJ6=s6.useRef(os);s6.useLayoutEffect(()=>{if(qJ6.current!==os&&(V3.current?.isSticky()??!0))F6(!1,toolJsxDialog\u2192${os});qJ6.current=os},[os,F6]);function yZH(){if(P5==="elicitation")return;if(N([onCancel] focusedInputDialog=${P5}
streamMode=${Tc.getState().mode}),Yf.forceEnd(),WR?.trim())B9((w6)=>[...w6,XY({content:WR})]);if(Xf(),P5==="tool-permission")kq[0]?.onAbort(),G1([]);else if(P5==="prompt"){for(let w6 of nK)w6.reject(Error("Prompt cancelled by user"));k$([]),Mq?.abort("user-cancel")}else if(KP.isRemoteMode)KP.cancelRequest();else Mq?.abort("user-cancel");mf(null),EZH(M7.current,!0)}let KJ6=s6.useCallback(()=>{let w6=VQ6(D9.current,0);if(!w6)return;if(GL(w6.text),nD("prompt"),w6.images.length>0)YJ((r6)=>{let K8={...r6};for(let HA of w6.images)K8[HA.id]=HA;return K8})},[GL,nD,YJ]),LJ6={setToolUseConfirmQueue:G1,onCancel:yZH,getConnectionSummary:()=>Sz.current?.summary(),onAgentsKilled:()=>B9((w6)=>[...w6,RU9()]),isMessageSelectorVisible:Qs||!!cQ,scre en:M6,abortSignal:Mq?.signal,isExternalLoading:L7,popCommandFromQueue:KJ6,isLocalJSXCommand:X8?.isLocalJSXCommand,isInputOverlayActive:N6,inputMode:$M,isInputEmpty:iK};s6.useEffect(()=>{if(y )return;if(XJ()>=5&&!ns&&!dQ){if(c("tengu_cost_threshold_reached",{}),LP(!0),$S6())p1H(!0)}},[SK,ns,dQ]);let CY8=s6.useCallback(async(w6)=>{let r6=zH.getState(),{mode:K8,isBypassPermissionsModeAvailable:HA}=r6.toolPermissionContext;switch(Gv6(K8,HA)){case"allow":return!0;case"deny":return!1;case"classify":return x_8(w6.host,w6.port,M7.current,j_.current,r6.toolPermissionContext,new AbortController().signal);case"ask":break}if(k1()&&SL6()){let O1=Cd1(),A1=await bd1(w6.host,O1);return new Promise((l1)=>{if(!A1){pf((_A)=>[..._A,{hostPattern:w6,resolvePromise:l1}]);return}pd1({requestId:O1,host:w6.host,resolve:l1}),e((_A)=>({..._A,pendingSandboxRequest:{requestId:O1,host:w6.hos t}}))})}return new Promise((O1)=>{let A1=!1;function l1(_A){if(A1)return;A1=!0,O1(_A)}pf((_A)=>[..._A,{hostPattern:w6,resolvePromise:l1}]);{let _A=zH.getState().replBridgePermissionCallbacks;if(_A){let $9=xOH.randomUUID();_A.sendRequest($9,Sz8,{host:w6.host},xOH.randomUUID(),Allow network connection to ${w6.host}?);let g4=_A.onResponse($9,(J5)=>{g4();let KO=J5.behavior==="allow";pf((BY)=>{return BY.filter((FY)=>FY.hostPattern.host===w6.host).forEach((FY)=>FY.resolvePromise(KO)),BY.filter((FY)=>FY.hostPattern.host!==w6.host)});let kG=pY.current.get(w6.host);if(kG){for(let BY of kG)BY();pY.current.delete(w6.host)}}),iD=()=>{g4(),_A.cancelRequest($9)},RK=pY.current.get(w6.host)??[];RK.push(iD),pY.current.set(w6.host,RK)}}})},[e,zH]);if(s6.useEffect(()=>{let w6=N_.getSandboxUnavailableReason();if(!w6)return;if(N_.isSandboxRequired()){process.stderr.write(
9252: Error: sandbox required but unavailable: ${w6}
9253: + sandbox.failIfUnavailable is set \u2014 refusing to start without a working sandbox.
9254:
- <anonymous> (/$bunfs/root/src/entrypoints/cli.js:9251:5663)
- WR (/$bunfs/root/src/entrypoints/cli.js:492:63749)
- UY (/$bunfs/root/src/entrypoints/cli.js:492:76948)
- j5 (/$bunfs/root/src/entrypoints/cli.js:492:76827)
- UY (/$bunfs/root/src/entrypoints/cli.js:492:76926)
- j5 (/$bunfs/root/src/entrypoints/cli.js:492:76827)
- UY (/$bunfs/root/src/entrypoints/cli.js:492:77745)
- j5 (/$bunfs/root/src/entrypoints/cli.js:492:76827)
- UY (/$bunfs/root/src/entrypoints/cli.js:492:76926)
- j5 (/$bunfs/root/src/entrypoints/cli.js:492:76827)
Code Example
ERROR F1H is not a function. (In 'F1H(q)', 'F1H' is undefined)
/$bunfs/root/src/entrypoints/cli.js:9251:5663
9248: ${q.join(`
9249:
9250 `)}`}var PZ7,fvq=1000,JZ7=300,XZ7=5000;var UC_=E(()=>{J6();v6();Vp();Ob();Lvq();_6();Hk();PZ7=(ZmH(),S_(EmH))});var Yvq={};j6(Yvq,{useScheduledTasks:()=>GZ7});function
: GZ7({isLoading:H,assistantMode:_,setMessages:A}){let q=nz8.useRef(H);q.current=H;let K=UK(),L=B_(),f=WY();nz8.useEffect(()=>{if(!Z0()||R_())return;let
M=(D)=>y5({value:WZ7.resolveLoopDefaultFire(D),mode:"prompt",priority:"later",isMeta:!0,workload:hSH}),$=void 0,O=pC_({onFire:M,onFireTask:(D)=>{if(D.agentId){let
Y=nr(D.agentId,K.getState().tasks);if(Y&&!HS(Y.status)){KmH(Y.id,D.prompt,f);return}N(`[ScheduledTasks] teammate ${D.agentId} gone, removing orphaned cron ${D.id}`),i6H([D.id]);return}let
z=hU9(D.kind==="loop"?`Claude resuming /loop wakeup (${zvq(new Date)})`:`Running scheduled task (${zvq(new
Date)})`);A((Y)=>[...Y,z]),M(D.prompt)},isLoading:()=>q.current,assistantMode:_,getJitterConfig:s7H,isKilled:()=>!Z0(),getExtraTasks:Dvq&&$?()=>Dvq.getRoutineCronTasks(TL(),$):void
0});return O.start(),()=>{O.stop()}},[_,A,K.getState,f])}function zvq(H){return H.toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).replace(/,? at |, /,"
").replace(/ ([AP]M)/,(_,A)=>A.toLowerCase())}var nz8,WZ7,Dvq=null;var wvq=E(()=>{SS();J6();y_();mE();AS();zb();Rq6();UC_();Ob();_6();d3();z_();ALH();nz8=x(PH(),1),WZ7=(ZmH(),S_(EmH))});var
Wvq={};j6(Wvq,{REPL:()=>gC_});function jvq(H){let _=iz8.c(14),{showAllInTranscript:A,virtualScroll:q,searchBadge:K,suppressShowAll:L,status:f}=H,M=L===void
0?!1:L,$=P4("app:toggleTranscript","Global","ctrl+o"),O=P4("transcript:toggleShowAll","Transcript","ctrl+e"),D;if(_[0]===Symbol.for("react.memo_cache_sentinel"))D=xQ9(),_[0]=D;else
D=_[0];let z=D,Y=z?`open in ${z}`:"open in editor",w;if(_[1]===Symbol.for("react.memo_cache_sentinel"))w=L8.createElement(L8.Fragment,null,"Showing detailed transcript"),_[1]=w;else
w=_[1];let j;if(_[2]!==$)j=L8.createElement(L8.Fragment,null,$," to toggle"),_[2]=$,_[3]=j;else j=_[3];let P=K?"n/N to navigate":q?`${K6.arrowUp}${K6.arrowDown} scroll \xB7 [ to print output
\xB7 v to ${Y}`:M?`v to ${Y}`:`${O} to ${A?"collapse":"show all"}`,J;if(_[4]!==j||_[5]!==P)J=L8.createElement(v,{dimColor:!0},L8.createElement(t6,null,w,j,P)),_[4]=j,_[5]=P,_[6]=J;else
J=_[6];let X;if(_[7]===Symbol.for("react.memo_cache_sentinel"))X=L8.createElement(p,{flexGrow:1}),_[7]=X;else X=_[7];let
G;if(_[8]!==K||_[9]!==f)G=L8.createElement(SZ7,{status:f,searchBadge:K}),_[8]=K,_[9]=f,_[10]=G;else G=_[10];let W;if(_[11]!==J||_[12]!==G)W=L8.createElement(p,{noSelect:!0,alignItems:"center
",alignSelf:"center",borderTopDimColor:!0,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:"single",marginTop:1,paddingLeft:2,width:"100%"},J,X,G),_[11]=J,_[12]=G,_[13]=W;else
W=_[13];return W}function SZ7(H){let _=iz8.c(6),{status:A,searchBadge:q}=H;if(A){let L;if(_[0]!==A)L=L8.createElement(v,null,A," "),_[0]=A,_[1]=L;else L=_[1];return L}if(q){let
L;if(_[2]!==q.count||_[3]!==q.current)L=L8.createElement(v,{dimColor:!0},q.current,"/",q.count," "),_[2]=q.count,_[3]=q.current,_[4]=L;else L=_[4];return L}let
K;if(_[5]===Symbol.for("react.memo_cache_sentinel"))K=L8.createElement(v,{dimColor:!0},"verbose "),_[5]=K;else K=_[5];return K}function
RZ7({jumpRef:H,count:_,current:A,onClose:q,onCancel:K,setHighlight:L,initialQuery:f}){let{query:M,cursorOffset:$,handleKeyDown:O,handlePaste:D}=MT({isActive:!0,initialQuery:f,onExit:()=>q(M)
,onCancel:K}),[z,Y]=s6.useState("building");s6.useEffect(()=>{let J=!0,X=H.current?.warmSearchIndex;if(!X){Y(null);return}return
Y("building"),X().then((G)=>{if(!J)return;if(G<20)Y(null);else Y({ms:G}),setTimeout(()=>J&&Y(null),2000)}),()=>{J=!1}},[]);let
w=z!=="building";s6.useEffect(()=>{if(!w)return;H.current?.setSearchQuery(M),L(M)},[M,w]);let j=$,P=j<M.length?M[j]:" ";return
L8.createElement(p,{borderTopDimColor:!0,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:"single",marginTop:1,paddingLeft:2,tabIndex:0,autoFocus:!0,onKeyDown:O,onPaste:D,width:"100%
",noSelect:!0},L8.createElement(v,null,"/"),L8.createElement(v,null,M.slice(0,j)),L8.createElement(v,{inverse:!0},P),j<M.length&&L8.createElement(v,null,M.slice(j+1)),L8.createElement(p,{fle
xGrow:1}),z==="building"?L8.createElement(v,{dimColor:!0},"indexing\u2026 "):z?L8.createElement(v,{dimColor:!0},"indexed in ",z.ms,"ms "):_===0&&M?L8.createElement(v,{color:"error"},"no
matches "):_>0?L8.createElement(v,{dimColor:!0},A,"/",_," "):null)}function Jvq(H){let
_=iz8.c(6),{isAnimating:A,title:q,disabled:K,noPrefix:L}=H,f=u$(),[M,$]=s6.useState(0),O,D;if(_[0]!==K||_[1]!==A||_[2]!==L||_[3]!==f)O=()=>{if(K||L||!A||!f)return;let
Y=setInterval(bZ7,CZ7,$);return()=>clearInterval(Y)},D=[K,L,A,f],_[0]=K,_[1]=A,_[2]=L,_[3]=f,_[4]=O,_[5]=D;else O=_[4],D=_[5];s6.useEffect(O,D);let z=A?Xvq[M]??Pvq:Pvq;return
rLH(K?null:L?q:`${z} ${q}`),null}function bZ7(H){return H(uZ7)}function uZ7(H){return(H+1)%Xvq.length}function
gC_({commands:H,debug:_,initialTools:A,initialMessages:q,pendingHookMessages:K,initialFileHistorySnapshots:L,initialContentReplacements:f,initialAgentName:M,initialAgentColor:$,mcpClients:O,
dynamicMcpConfig:D,autoConnectIdeFlag:z,strictMcpConfig:Y=!1,systemPrompt:w,appendSystemPrompt:j,onBeforeQuery:P,onTurnComplete:J,disabled:X=!1,mainThreadAgentDefinition:G,disableSlashComman
ds:W=!1,remoteSessionConfig:T,directConnectConfig:Z,sshSession:I,thinkingConfig:V}){let y=!!T,R=s6.useMemo(()=>yH(process.env.CLAUDE_CODE_DISABLE_TERMINAL_TITLE),[]),h=s6.useMemo(()=>!1,[]),
C=s6.useMemo(()=>yH(process.env.CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL),[]),U=!1;s6.useEffect(()=>{return N(`[REPL:mount] REPL mounted, disabled=${X}`),()=>N("[REPL:unmount] REPL unmounting")},[
X]);let[u,S]=s6.useState(G),B=Y6((w6)=>w6.toolPermissionContext),F=Y6((w6)=>w6.verbose),g=Y6((w6)=>w6.mcp),d=Y6((w6)=>w6.plugins),i=Y6((w6)=>w6.agentDefinitions),n=Y6((w6)=>w6.initialMessage
),o=Ss(),_H=Y6((w6)=>w6.expandedView)==="tasks",r=Y6((w6)=>w6.pendingWorkerRequest),HH=Y6((w6)=>w6.pendingSandboxRequest),t=Y6((w6)=>w6.teamContext),MH=Y6((w6)=>w6.tasks),$H=Y6((w6)=>w6.work
erSandboxPermissions),jH=Y6((w6)=>w6.elicitation),s=Y6((w6)=>w6.ultraplanPendingChoice),a=Y6((w6)=>w6.ultraplanLaunchPending),qH=Y6((w6)=>w6.viewingAgentTaskId),e=B_(),fH=qH?MH[qH]:void
0,KH=uj(fH)&&fH.retain&&!fH.diskLoaded;s6.useEffect(()=>{if(!qH||!KH)return;let w6=qH;Z5H(h5(w6)).then((r6)=>{e((K8)=>{let HA=K8.tasks[w6];if(!uj(HA)||HA.diskLoaded||!HA.retain)return K8;let
NA=HA.messages??[],O1=new
Set(NA.map((l1)=>l1.uuid)),A1=r6?r6.messages.filter((l1)=>!O1.has(l1.uuid)):[];return{...K8,tasks:{...K8.tasks,[w6]:{...HA,messages:[...A1,...NA],diskLoaded:!0}}}})})},[qH,KH,e]);let
zH=UK(),OH=s6.useMemo(()=>LN(()=>zH.getState(),e),[zH,e]),JH=s6.useMemo(()=>rTH(()=>zH.getState(),e),[zH,e]),wH=Vi(),TH=TY(),[vH,WH]=s6.useState(H);TGq(y?void 0:TL(),WH);let
ZH=Y6((w6)=>w6.isBriefOnly),RH=s6.useMemo(()=>t0(B),[B,ZH]);qj9(),Kj9();let[UH,sH]=s6.useState(D),cH=s6.useCallback((w6)=>{sH(w6)},[sH]),[M6,O6]=s6.useState("prompt"),[EH,CH]=s6.useState(!1)
,[mH,uH]=s6.useState(!1),[aH,rH]=s6.useState(""),nH=s6.useRef(0),QH=s6.useRef(void
0),tH=s6.useRef(!1),{addNotification:Z6,removeNotification:U6}=L9(),H8=kZ7,c6=JGq(O,g.clients),[iH,x6]=s6.useState(void 0),[BH,L6]=s6.useState(null),[IH,oH]=s6.useState(null),[D6,W6]=s6.useS
tate(!1),[LH,YH]=s6.useState(()=>{return!1}),xH=Y6((w6)=>w6.showRemoteCallout),[bH,eH]=s6.useState(()=>ETq());LZq(),MZq(),AZq({ideSelection:iH,mcpClients:c6,ideInstallationStatus:IH}),rTq({m
cpClients:c6}),aTq(),kEq(),hEq(),G78(),FEq(TH),WZq(),EZq(),cEq(TH),lEq(),eEq(),oEq(),IZ7(),e0q(),DTq(),PTq(),eTq(),YZq();let{recommendation:SH,handleResponse:E6}=wEq(),{recommendation:z6,han
dleResponse:Q6}=GEq(),{pending:B6,handleAction:l8,skipForSession:N8}=vZ7(),F_=s6.useMemo(()=>{return[...RH,...A]},[RH,A]);Lz8({enabled:!y}),kGq({enabled:!y});let
f_=CO9();s6.useEffect(()=>{if(y)return;uEq(e)},[e,y]),s6.useEffect(()=>{let
w6=setTimeout(iZq,500);return()=>clearTimeout(w6)},[]),WTq(y?FC_:c6,B.mode),s6.useEffect(()=>{XN_(B.mode)},[B.mode]),VWq(e,q,{enabled:!y});let
DA=n58(F_,g.tools,B),{tools:L1,allowedAgentTypes:F8}=s6.useMemo(()=>{if(!u)return{tools:DA,allowedAgentTypes:void 0};let
w6=Ic(u,DA,!1,!0);return{tools:w6.resolvedTools,allowedAgentTypes:w6.allowedAgentTypes}},[u,DA]),j_=s6.useRef(L1);j_.current=L1;let h1=s6.useMemo(()=>{if(!Dj())return L1;let w6=new
Set(L1.map((K8)=>K8.name)),r6=nMH().filter((K8)=>!w6.has(K8.name));return r6.length>0?[...L1,...r6]:L1},[L1]),p1=nR_(vH,d.commands),Rq=nR_(p1,g.commands),g_=s6.useMemo(()=>W?[]:Rq,[W,Rq]);VY
q(y?FC_:g.clients),RGq(y?FC_:g.clients,x6);let[zK,YK]=s6.useState([]),[U4,lL]=s6.useState(null);s6.useEffect(()=>{if(U4&&!U4.isStreaming&&U4.streamingEndedAt){let
r6=30000-(Date.now()-U4.streamingEndedAt);if(r6>0){let K8=setTimeout(lL,r6,null);return()=>clearTimeout(K8)}else
lL(null)}},[U4]);let[Mq,mf]=s6.useState(null),B4=s6.useRef(null);B4.current=Mq;let
Sz=s6.useRef(null),xY=s6.useRef(()=>{}),KL=s6.useRef(()=>{}),V3=s6.useRef(null),ej=s6.useRef(null),mY=s6.useRef(0),Yf=s6.useRef(new
Eh_).current,MM=s6.useSyncExternalStore(Yf.subscribe,Yf.getSnapshot),[L7,hL]=s6.useState(T?.hasInitialPrompt??!1),U9=MM||L7,[wf,A4]=s6.useState(void 0),V7=s6.useRef(0),q4=s6.useRef(!1),jf=s6
.useRef(0),f7=s6.useRef(0),s$=s6.useRef(null),cD=s6.useCallback(()=>{jf.current=Date.now(),f7.current=0,s$.current=null},[]),Uw=s6.useRef(!1);if(MM&&!Uw.current)cD();Uw.current=MM;let
QO=s6.useCallback((w6)=>{if(hL(w6),w6)cD()},[cD]),t$=s6.useRef(null),Rz=s6.useRef(void 0),M$=s6.useRef(void 0),HP=1500,[Pf,z5]=s6.useState(!1);s6.useEffect(()=>{if(oA())IO1().then((w6)=>{if(
w6)Z6({key:"tmux-mouse-hint",text:w6,priority:"low"})});VO1().then((w6)=>{if(w6)Z6({key:"tmux-focus-hint",text:w6,priority:"low"})})},[]);let[QD,Bw]=s6.useState(!1);s6.useEffect(()=>{},[]);l
et[X8,jA]=s6.useState(null),W1=s6.useRef(null),o1=s6.useCallback((w6)=>{if(w6?.isLocalJSXCommand){let{clearLocalJSX:r6,...K8}=w6;W1.current={...K8,isLocalJSXCommand:!0},jA(K8);return}if(W1.c
urrent){if(w6?.clearLocalJSX){W1.current=null,jA(null);return}return}if(w6?.clearLocalJSX){jA(null);return}jA(w6)},[]),[a1,LL]=s6.useState(()=>new Map),s4=s6.useCallback((w6)=>{LL((r6)=>f0q(
r6,w6))},[]),[kq,dA]=s6.useState([]),G1=s6.useMemo(()=>Qzq(dA),[dA]),[bK,KK]=s6.useState(null),[Q1,pf]=s6.useState([]),[nK,k$]=s6.useState([]),pY=s6.useRef(new
Map),Fw=Y6((w6)=>w6.settings.terminalTitleFromRename)!==!1,i7=s6.useSyncExternalStore(PN_,()=>Fw?jz(k6()):void 0);s6.useEffect(()=>{return wN_(()=>{let
w6=kQH();if(!w6)return;e((r6)=>{if(r6.standaloneAgentContext?.name===w6)return
r6;return{...r6,standaloneAgentContext:{...r6.standaloneAgentContext,name:w6}}})})},[e]);let[M9,gw]=s6.useState(),Cz=s6.useRef((q?.length??0)>0),LW=u?.agentType,K4=i7??LW??M9??"Claude
Code",r7=kq.length>0||nK.length>0||r||HH,k7=X8?.isLocalJSXCommand===!0&&X8?.jsx!=null,bz=s6.useMemo(()=>lq8(MH),[MH]),_P=r7||k7?"waiting":U9||bz?"busy":"idle",lO=s6.useMemo(()=>UMq(MH),[MH])
,AP=_P==="idle"&&lO?"busy":_P,Jf=_P==="busy";s6.useEffect(()=>{if(_P==="busy")return yzq(),()=>hzq()},[_P]);let Y5=_P!=="waiting"?void 0:kq.length>0?`approve ${kq[0].tool.name}`:r?"worker
request":HH?"sandbox request":k7?"dialog open":"input needed";s6.useEffect(()=>{UR6({status:AP,waitingFor:Y5})},[AP,Y5]);let
nO=yqq(MH),I1=vQ6();s6.useEffect(()=>{Vh9({tasks:nO.count,queued:I1,kinds:nO.kinds})},[nO.count,I1,nO.kinds.join(",")]);let
k3=h6("tengu_terminal_sidebar",!1)&&(y6().showStatusInTerminalTab??!1),Lx=Y6((w6)=>w6.postTurnSummary?.status_detail);Rg6(R||!k3?null:_P,Lx),s6.useEffect(()=>{return
zZ1(G1),()=>YZ1()},[G1]);let[SK,sN]=s6.useState(q??[]),M7=s6.useRef(SK),VT=s6.useRef(!1),B9=s6.useCallback((w6)=>{let r6=M7.current,K8=typeof
w6==="function"?w6(M7.current):w6;if(M7.current=K8,K8.length<V7.current)V7.current=0,q4.current=!1,A4(void 0);else if(K8.length>r6.length&&q4.current){let
HA=K8.length-r6.length;if((r6.length===0||K8[0]===r6[0]?K8.slice(-HA):K8.slice(0,HA)).some($L6))q4.current=!1;else
V7.current=K8.length}sN(K8)},[]),B5=s6.useCallback((w6)=>B9((r6)=>_z8(r6,w6)),[B9]);$Tq(s6.useCallback((w6)=>B9((r6)=>[...r6,A8({content:yf8(w6),isMeta:!0})]),[B9]));let
NX=s6.useCallback((w6)=>{if(w6!==void 0)V7.current=M7.current.length,q4.current=!0;else q4.current=!1;A4(w6)},[]),{dividerIndex:yX,dividerYRef:fW,onScrollAway:bZ,onRepin:MV,jumpToNew:gs,shif
tDivider:lD}=Re9(SK.length);KTq(SK,B9,U9,mY,!y);let[kT,FH]=s6.useState(null),lH=s6.useRef(kT);lH.current=kT;let
o6=s6.useRef(null),H6=s6.useMemo(()=>Ce9(SK,yX),[yX,SK.length]),F6=s6.useCallback((w6=!1,r6="?")=>{if(!w6&&!u7("autoScrollEnabled",!0).value)return;let
K8=V3.current;if(K8&&!K8.isSticky())N(`repinScroll(${r6}, force=${w6}): yanking from scrollTop=${K8.getScrollTop()}
(max=${Math.max(0,K8.getScrollHeight()-K8.getViewportHeight())})`);if(K8?.scrollToBottom(),MV(),lH.current!==null)FH(null)},[MV]),y8=SK.at(-1),T8=y8!=null&&$L6(y8);s6.useEffect(()=>{if(T8)F6
(!1,"lastMsgIsHuman")},[T8,y8,F6]);let{maybeLoadOlder:b_}=yZ7,s_=s6.useCallback((w6,r6)=>{if(mY.current=Date.now(),w6)MV();else
bZ(r6)},[MV,bZ,b_]),I9=OWq(K,B9),[$7,F4]=s6.useState(null);s6.useState(()=>{return DA8(ir8()),null});let
D9=s6.useRef(OA8()),iK=aj9(),n9=s6.useCallback(()=>z5(!1),[]),vK=yi(n9,HP),BM=s6.useRef(null),GL=s6.useCallback((w6)=>{if(H8(D9.current,w6))return;if(D9.current===""&&w6!==""&&Date.now()-mY.
current>=hZ7)F6(!1,"typedIntoEmpty");D9.current=w6,DA8(w6),Y_H.recordUserActivity(),vDH(!0);let r6=w6.trim().length>0;if(z5(r6),r6)vK();else
vK.cancel()},[z5,F6,H8,vK]),[$M,nD]=s6.useState("prompt"),[qP,tN]=s6.useState(),uz=s6.useCallback((w6)=>{let r6=new
Set(w6.slash_commands);WH((K8)=>K8.filter((HA)=>r6.has(HA.name)||ak_.has(HA))),e((K8)=>K8.mainLoopModel===w6.model?K8:{...K8,mainLoopModel:w6.model})},[WH,e]),[NT,$V]=s6.useState(new
Set),JR=s6.useCallback((w6)=>{$V((r6)=>{switch(w6.action){case"add":{let K8=new Set(r6);for(let HA of w6.ids)K8.add(HA);return K8}case"remove":{let K8=new Set(r6);for(let HA of
w6.ids)K8.delete(HA);return K8.size===r6.size?r6:K8}case"clear":return r6.size>0?new
Set:r6}})},[]),hX=s6.useRef(!1),yT=s6.useRef(0),eN=s6.useRef([]),RB=s6.useRef(0),BQ=s6.useCallback((w6)=>{yT.current+=w6;let r6=eN.current;if(w6>0&&r6.length>0){let K8=r6.at(-1);if(K8.output
Tokens==null)K8.lastTokenTime=Date.now(),K8.endResponseLength=yT.current}},[]),TZH=s6.useCallback(()=>{yT.current=0},[]),x1H=s6.useCallback((w6)=>{if(w6.type==="start"){let
r6=Date.now(),K8=yT.current;eN.current.push({id:w6.id,ttftMs:w6.ttftMs,firstTokenTime:r6,lastTokenTime:r6,responseLengthBaseline:K8,endResponseLength:K8})}else{let
r6=w6.id!=null?eN.current.find((K8)=>K8.id===w6.id):eN.current.findLast((K8)=>K8.id==null);if(r6){if(r6.outputTokens=w6.outputTokens,r6.lastTokenTime=Date.now(),w6.id==null)yT.current=Math.m
ax(yT.current,r6.responseLengthBaseline+w6.outputTokens*4)}}},[]),CB=h2q({config:T,setMessages:B9,setIsLoading:QO,onInit:uz,setToolUseConfirmQueue:G1,tools:F_,setStreamingToolUses:YK,setStre
amMode:JM6,setInProgressToolUseIDs:JR,recordApiMetricsEvent:x1H,permissionMode:B.mode}),ds=b2q({config:Z,setMessages:B9,setIsLoading:QO,setToolUseConfirmQueue:G1,tools:F_,permissionMode:B.mo
de}),bB=m2q({session:I,setMessages:B9,setIsLoading:QO,setToolUseConfirmQueue:G1,tools:F_,permissionMode:B.mode}),KP=s6.useMemo(()=>bB.isRemoteMode?OL8("ssh",bB,!1):ds.isRemoteMode?OL8("direc
t",ds,!1):CB.isRemoteMode?OL8("ccr",CB,T?.viewerOnly??!1,T?.sessionId):KG_,[bB,ds,CB,T?.viewerOnly,T?.sessionId]);s6.useEffect(()=>{let w6=KP.isRemoteMode?KP:null,r6=KP.isRemoteMode&&KP.kind
==="ccr"?"ccr-api":"local-jsonl",K8=uDH();if(K8.remote!==w6||K8.transcriptSource!==r6)DP8({...K8,remote:w6,transcriptSource:r6})},[KP]);let[Uf,YJ]=s6.useState({}),[XR,m1H]=s6.useState(0),[WR
,uZ]=s6.useState(null),FQ=!(Y6((w6)=>w6.settings.prefersReducedMotion)??!1)&&!Jj1(),GR=s6.useCallback((w6)=>{if(!FQ)return;uZ(w6)},[FQ]),vG=WR&&FQ?WR.substring(0,WR.lastIndexOf(`
9251 `)+1)||null:null,[xZ,cs]=s6.useState(0),[Qs,fx]=s6.useState(!1),[QOH,ls]=s6.useState(void
: 0),[ns,p1H]=s6.useState(!1),[lOH,OV]=s6.useState(xOH.randomUUID()),[uB,IG]=s6.useState(null),gQ=s6.useCallback((w6)=>{let
r6=vzq(w6,Tj);if(r6)IG(r6)},[]),U1H=s6.useRef(xZ);U1H.current=xZ;let[is]=s6.useState(()=>({current:Oy1(q,f)})),[xB]=s6.useState(()=>({current:Ic1(q??[])})),[dQ,LP]=s6.useState(y6().hasAcknow
ledgedCostThreshold),[cQ,wJ]=s6.useState(!1),[N6,i8]=s6.useState(!1),JA=s6.useRef("INSERT");s6.useEffect(()=>{if(s&&cQ)wJ(!1)},[s,cQ]);let
wK=u$(),LK=s6.useRef(wK);LK.current=wK;let[L4]=Y1(),j5=s6.useRef(!1),UY=s6.useCallback(()=>{if(j5.current)return;j5.current=!0;let w6=M7.current.slice(lQ.current);for(let r6 of
sL_(w6))d1H.current.add(r6);lQ.current=M7.current.length,ITq({theme:L4,readFileState:mB.current,bashTools:d1H.current}).then(async(r6)=>{if(r6){let K8=await
r6.content({theme:L4});e((HA)=>({...HA,spinnerTip:K8})),VTq(r6)}else e((K8)=>{if(K8.spinnerTip===void 0)return K8;return{...K8,spinnerTip:void
0}})})},[e,L4]),Xf=s6.useCallback(()=>{QO(!1),NX(void 0),yT.current=0,eN.current=[],RB.current++,uZ(null),YK([]),l3_(),JM6("responding"),UY(),ar(),so6()},[UY]),jJ=s6.useMemo(()=>G2H(MH).some
((w6)=>w6.status==="running"),[MH]);s6.useEffect(()=>{if(!jJ&&t$.current!==null){let w6=Date.now()-t$.current,r6=Rz.current;t$.current=null,Rz.current=void
0,B9((K8)=>[...K8,gW_(w6,r6,A_(K8,H1H))])}},[jJ,B9]);let
MW=s6.useRef(!1);s6.useEffect(()=>{{if(B.mode!=="auto"){MW.current=!1;return}if(MW.current)return;if((y6().autoPermissionsNotificationCount??0)>=3)return;let
K8=setTimeout((HA,NA)=>{HA.current=!0,a6((O1)=>{let A1=O1.autoPermissionsNotificationCount??0;if(A1>=3)return
O1;return{...O1,autoPermissionsNotificationCount:A1+1}}),NA((O1)=>[...O1,L5(jD8,"warning")])},800,MW,B9);return()=>clearTimeout(K8)}},[B.mode,B9]);let
UlH=s6.useRef(!1),nOH=s6.useRef(!1);s6.useEffect(()=>{if(nOH.current)return;let
w6=_5();if(!w6?.creationDurationMs||w6.usedSparsePaths)return;if(w6.creationDurationMs<15000)return;nOH.current=!0;let r6=Math.round(w6.creationDurationMs/1000);B9((K8)=>[...K8,L5(`Worktree
creation took ${r6}s. For large repos, set \`worktree.sparsePaths\` in .claude/settings.json to check out only the directories you need \u2014 e.g. \`{"worktree": {"sparsePaths": ["src",
"packages/foo"]}}\`.`,"info")])},[B9]);let{onBeforeQuery:B1H,onTurnComplete:EZH,onSessionRestored:F1H,render:aP6,ownsInput:ZZH}=F2q({enabled:h,setMessages:B9,setInputValue:GL,setToolJSX:o1,r
esultDedupState:xB.current}),iOH=(!X8||X8.showSpinner===!0)&&kq.length===0&&nK.length===0&&(U9||wf||jJ||vQ6()>0)&&!r&&(!vG||ZH),rs=kq.length>0||nK.length>0||Q1.length>0||jH.queue.length>0||$
H.queue.length>0;xzq({sandboxHost:Q1[0]?.hostPattern.host,promptTitle:nK[0]?.title,elicitationServer:jH.queue[0]?.serverName,workerSandboxHost:$H.queue[0]?.host});let
rOH=V0q({hasActivePrompt:rs,otherSurveyActive:!1}),g1H=y0q(SK,U9,rs,{enabled:!y}),hT=v0q(SK,U9,rs,{enabled:!y,otherSurveyActive:rOH.state!=="closed"||g1H.state!=="closed"}),vZH=J0q(SK,U9,XR,
"session",rs,rOH.state!=="closed"||g1H.state!=="closed"||hT.state!=="closed"),mZ=uZq(SK,XR),BlH=s6.useMemo(()=>({...vZH,handleSelect:(w6)=>{if(NZH.current=!1,vZH.handleSelect(w6),w6==="bad"&
&VZq("feedback_survey_bad"))c1H("feedback_survey_bad"),NZH.current=!0}}),[vZH]),sP6=ZZ7(SK,U9,rs,rOH.state!=="closed"||BlH.state!=="closed"||g1H.state!=="closed"||hT.state!=="closed");H0q({a
utoConnectIdeFlag:z,ideToInstallExtension:BH,setDynamicMcpConfig:sH,setShowIdeOnboarding:W6,setIDEInstallationState:oH}),FTq(L,(w6)=>e((r6)=>({...r6,fileHistory:w6})));let
tP6=s6.useCallback(async(w6,r6,K8)=>{let HA=performance.now();try{let NA=SM6(r6.messages),O1=BD6();await
KTH("resume",{getAppState:()=>zH.getState(),setAppState:e,signal:AbortSignal.timeout(O1)});let{agentDefinition:A1}=qZH(r6.agentSetting,G,i);S(A1),e((g4)=>({...g4,agent:A1?.agentType}));let
l1=await bb("resume",{sessionId:w6,agentType:A1?.agentType,model:TH});if(NA.push(...l1),K8==="fork")IB1(r6,W2(w6));else Dr6(r6,W2(w6));if(r6.fileHistorySnapshots)L_8(r6);if(e((g4)=>({...g4,s
tandaloneAgentContext:OP6(r6.agentName,r6.agentColor)})),Gv(r6.agentName),HJ6(NA,r6.projectPath??q_()),K8!=="fork")sOH.current.current=u36(NA,F_);Xf(),mf(null),OV(w6);let
_A=wq_(w6);a46(),hvH(),uT(W2(w6),r6.fullPath?rz8.dirname(r6.fullPath):null);let{renameRecordingForSession:$9}=await Promise.resolve().then(() => (MP6(),BGq));if(await $9(),await
eU(),$P6(r6,e),UD6(),Ts(r6),Cz.current=!0,gw(void 0),K8!=="fork")gGq(r6.worktreeSession===void
0?r6.projectPath:r6.worktreeSession?.worktreePath),DP6(r6.worktreeSession,r6.projectPath),Gs(),yO_({abortController:new
AbortController,taskRegistry:OH}),fl(PV().map((g4)=>g4.id)),tR_(NA);else{let g4=_5();if(g4)dS(g4)}if(_A)dnH(_A);if(is.current&&K8!=="fork")is.current=gl6(NA,r6.contentReplacements??[]);if(B9
(()=>NA),o1(null),GL(""),K8!=="fork")gQ(NA);c("tengu_session_resumed",{entrypoint:K8,success:!0,resume_duration_ms:Math.round(performance.now()-HA)})}catch(NA){throw c("tengu_session_resumed
",{entrypoint:K8,success:!1,failure_reason:"processing_error",error_name:n8(NA).name}),NA}},[Xf,e,OH,gQ]),[QQ]=s6.useState(()=>Pb(hp)),mB=s6.useRef(QQ),d1H=s6.useRef(new
Set),lQ=s6.useRef(0),FlH=s6.useRef(new Set),glH=s6.useRef(new Map),IZH=s6.useRef(new Set),oOH=s6.useRef(new Map),VZH=s6.useRef(void
0),aOH=s6.useRef(KfH()),eP6=s6.useRef(w76()),sOH=s6.useRef(tFH()),HJ6=s6.useCallback((w6,r6)=>{let K8=MpH(w6,r6,hp);mB.current=quH(mB.current,K8);for(let HA of
sL_(w6))d1H.current.add(HA)},[e]);s6.useEffect(()=>{if(q&&q.length>0)HJ6(q,q_()),yO_({abortController:new AbortController,taskRegistry:OH}),tR_(q),gQ(q),sOH.current.current=u36(q,F_),F1H(q)}
,[]);let{status:_J6,reverify:kZH}=zWq(),[Mx,c1H]=s6.useState(null),NZH=s6.useRef(!1),[dlH,clH]=s6.useState(null),[QlH,llH]=s6.useState(!1),nlH=!U9&&ns;function
tOH(){if(QlH||dlH)return;if(Qs)return"message-selector";if(Pf)return;if(Q1[0])return"sandbox-permission";let
w6=!X8||X8.shouldContinueAnimation;if(w6&&kq[0])return"tool-permission";if(w6&&nK[0])return"prompt";if(w6&&$H.queue[0])return"worker-sandbox-permission";if(w6&&jH.queue[0])return"elicitation
";if(w6&&nlH)return"cost";if(w6&&uB)return"resume-return";if(w6&&!U9&&s)return"ultraplan-choice";if(w6&&!U9&&a)return"ultraplan-launch";if(Iq()){if(w6&&xH)return"remote-callout";return}if(w6
&&D6)return"ide-onboarding";if(w6&&xH)return"remote-callout";if(w6&&SH)return"lsp-recommendation";if(w6&&z6)return"plugin-hint";if(w6&&bH)return"desktop-upsell";return}let
P5=tOH(),AJ6=Pf&&(Q1[0]||kq[0]||nK[0]||$H.queue[0]||jH.queue[0]||nlH);M$.current=P5,s6.useEffect(()=>{if(!U9)return;let
w6=P5==="tool-permission",r6=Date.now();if(w6&&s$.current===null)s$.current=r6;else if(!w6&&s$.current!==null)f7.current+=r6-s$.current,s$.current=null},[P5,U9]);let
ilH=s6.useRef(P5),Bf=s6.useRef(null);s6.useLayoutEffect(()=>{let w6=ilH.current==="tool-permission",r6=P5==="tool-permission";if(ilH.current=P5,w6===r6)return;let
K8=V3.current;if(r6)Bf.current=K8&&!K8.isSticky()?K8.getScrollTop():null,F6(!0,"permissionDialogAppear");else if(Bf.current!==null)K8?.scrollTo(Bf.current),Bf.current=null;else
F6(!0,"permissionDialogDismiss")},[P5,F6]);let
os=X8?.jsx!=null,qJ6=s6.useRef(os);s6.useLayoutEffect(()=>{if(qJ6.current!==os&&(V3.current?.isSticky()??!0))F6(!1,`toolJsxDialog\u2192${os}`);qJ6.current=os},[os,F6]);function
yZH(){if(P5==="elicitation")return;if(N(`[onCancel] focusedInputDialog=${P5}
streamMode=${Tc.getState().mode}`),Yf.forceEnd(),WR?.trim())B9((w6)=>[...w6,XY({content:WR})]);if(Xf(),P5==="tool-permission")kq[0]?.onAbort(),G1([]);else if(P5==="prompt"){for(let w6 of
nK)w6.reject(Error("Prompt cancelled by user"));k$([]),Mq?.abort("user-cancel")}else if(KP.isRemoteMode)KP.cancelRequest();else Mq?.abort("user-cancel");mf(null),EZH(M7.current,!0)}let
KJ6=s6.useCallback(()=>{let w6=VQ6(D9.current,0);if(!w6)return;if(GL(w6.text),nD("prompt"),w6.images.length>0)YJ((r6)=>{let K8={...r6};for(let HA of w6.images)K8[HA.id]=HA;return
K8})},[GL,nD,YJ]),LJ6={setToolUseConfirmQueue:G1,onCancel:yZH,getConnectionSummary:()=>Sz.current?.summary(),onAgentsKilled:()=>B9((w6)=>[...w6,RU9()]),isMessageSelectorVisible:Qs||!!cQ,scre
en:M6,abortSignal:Mq?.signal,isExternalLoading:L7,popCommandFromQueue:KJ6,isLocalJSXCommand:X8?.isLocalJSXCommand,isInputOverlayActive:N6,inputMode:$M,isInputEmpty:iK};s6.useEffect(()=>{if(y
)return;if(XJ()>=5&&!ns&&!dQ){if(c("tengu_cost_threshold_reached",{}),LP(!0),$S6())p1H(!0)}},[SK,ns,dQ]);let CY8=s6.useCallback(async(w6)=>{let
r6=zH.getState(),{mode:K8,isBypassPermissionsModeAvailable:HA}=r6.toolPermissionContext;switch(Gv6(K8,HA)){case"allow":return!0;case"deny":return!1;case"classify":return
x_8(w6.host,w6.port,M7.current,j_.current,r6.toolPermissionContext,new AbortController().signal);case"ask":break}if(k1()&&SL6()){let O1=Cd1(),A1=await bd1(w6.host,O1);return new
Promise((l1)=>{if(!A1){pf((_A)=>[..._A,{hostPattern:w6,resolvePromise:l1}]);return}pd1({requestId:O1,host:w6.host,resolve:l1}),e((_A)=>({..._A,pendingSandboxRequest:{requestId:O1,host:w6.hos
t}}))})}return new Promise((O1)=>{let A1=!1;function l1(_A){if(A1)return;A1=!0,O1(_A)}pf((_A)=>[..._A,{hostPattern:w6,resolvePromise:l1}]);{let
_A=zH.getState().replBridgePermissionCallbacks;if(_A){let $9=xOH.randomUUID();_A.sendRequest($9,Sz8,{host:w6.host},xOH.randomUUID(),`Allow network connection to ${w6.host}?`);let
g4=_A.onResponse($9,(J5)=>{g4();let KO=J5.behavior==="allow";pf((BY)=>{return
BY.filter((FY)=>FY.hostPattern.host===w6.host).forEach((FY)=>FY.resolvePromise(KO)),BY.filter((FY)=>FY.hostPattern.host!==w6.host)});let kG=pY.current.get(w6.host);if(kG){for(let BY of
kG)BY();pY.current.delete(w6.host)}}),iD=()=>{g4(),_A.cancelRequest($9)},RK=pY.current.get(w6.host)??[];RK.push(iD),pY.current.set(w6.host,RK)}}})},[e,zH]);if(s6.useEffect(()=>{let
w6=N_.getSandboxUnavailableReason();if(!w6)return;if(N_.isSandboxRequired()){process.stderr.write(`
9252: Error: sandbox required but unavailable: ${w6}
9253: `+` sandbox.failIfUnavailable is set \u2014 refusing to start without a working sandbox.
9254:
- <anonymous> (/$bunfs/root/src/entrypoints/cli.js:9251:5663)
- WR (/$bunfs/root/src/entrypoints/cli.js:492:63749)
- UY (/$bunfs/root/src/entrypoints/cli.js:492:76948)
- j5 (/$bunfs/root/src/entrypoints/cli.js:492:76827)
- UY (/$bunfs/root/src/entrypoints/cli.js:492:76926)
- j5 (/$bunfs/root/src/entrypoints/cli.js:492:76827)
- UY (/$bunfs/root/src/entrypoints/cli.js:492:77745)
- j5 (/$bunfs/root/src/entrypoints/cli.js:492:76827)
- UY (/$bunfs/root/src/entrypoints/cli.js:492:76926)
- j5 (/$bunfs/root/src/entrypoints/cli.js:492:76827)RAW_BUFFERClick to expand / collapse
Preflight Checklist
- I have searched existing issues and this hasn't been reported yet
- This is a single bug report (please file separate reports for different bugs)
- I am using the latest version of Claude Code
What's Wrong?
claude --resume crashes with F1H is not a function on multiple sessions (v2.1.120)
What Should Happen?
Claude should allow me to resume previously worked on sessions
Error Messages/Logs
ERROR F1H is not a function. (In 'F1H(q)', 'F1H' is undefined)
/$bunfs/root/src/entrypoints/cli.js:9251:5663
9248: ${q.join(`
9249:
9250 `)}`}var PZ7,fvq=1000,JZ7=300,XZ7=5000;var UC_=E(()=>{J6();v6();Vp();Ob();Lvq();_6();Hk();PZ7=(ZmH(),S_(EmH))});var Yvq={};j6(Yvq,{useScheduledTasks:()=>GZ7});function
: GZ7({isLoading:H,assistantMode:_,setMessages:A}){let q=nz8.useRef(H);q.current=H;let K=UK(),L=B_(),f=WY();nz8.useEffect(()=>{if(!Z0()||R_())return;let
M=(D)=>y5({value:WZ7.resolveLoopDefaultFire(D),mode:"prompt",priority:"later",isMeta:!0,workload:hSH}),$=void 0,O=pC_({onFire:M,onFireTask:(D)=>{if(D.agentId){let
Y=nr(D.agentId,K.getState().tasks);if(Y&&!HS(Y.status)){KmH(Y.id,D.prompt,f);return}N(`[ScheduledTasks] teammate ${D.agentId} gone, removing orphaned cron ${D.id}`),i6H([D.id]);return}let
z=hU9(D.kind==="loop"?`Claude resuming /loop wakeup (${zvq(new Date)})`:`Running scheduled task (${zvq(new
Date)})`);A((Y)=>[...Y,z]),M(D.prompt)},isLoading:()=>q.current,assistantMode:_,getJitterConfig:s7H,isKilled:()=>!Z0(),getExtraTasks:Dvq&&$?()=>Dvq.getRoutineCronTasks(TL(),$):void
0});return O.start(),()=>{O.stop()}},[_,A,K.getState,f])}function zvq(H){return H.toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).replace(/,? at |, /,"
").replace(/ ([AP]M)/,(_,A)=>A.toLowerCase())}var nz8,WZ7,Dvq=null;var wvq=E(()=>{SS();J6();y_();mE();AS();zb();Rq6();UC_();Ob();_6();d3();z_();ALH();nz8=x(PH(),1),WZ7=(ZmH(),S_(EmH))});var
Wvq={};j6(Wvq,{REPL:()=>gC_});function jvq(H){let _=iz8.c(14),{showAllInTranscript:A,virtualScroll:q,searchBadge:K,suppressShowAll:L,status:f}=H,M=L===void
0?!1:L,$=P4("app:toggleTranscript","Global","ctrl+o"),O=P4("transcript:toggleShowAll","Transcript","ctrl+e"),D;if(_[0]===Symbol.for("react.memo_cache_sentinel"))D=xQ9(),_[0]=D;else
D=_[0];let z=D,Y=z?`open in ${z}`:"open in editor",w;if(_[1]===Symbol.for("react.memo_cache_sentinel"))w=L8.createElement(L8.Fragment,null,"Showing detailed transcript"),_[1]=w;else
w=_[1];let j;if(_[2]!==$)j=L8.createElement(L8.Fragment,null,$," to toggle"),_[2]=$,_[3]=j;else j=_[3];let P=K?"n/N to navigate":q?`${K6.arrowUp}${K6.arrowDown} scroll \xB7 [ to print output
\xB7 v to ${Y}`:M?`v to ${Y}`:`${O} to ${A?"collapse":"show all"}`,J;if(_[4]!==j||_[5]!==P)J=L8.createElement(v,{dimColor:!0},L8.createElement(t6,null,w,j,P)),_[4]=j,_[5]=P,_[6]=J;else
J=_[6];let X;if(_[7]===Symbol.for("react.memo_cache_sentinel"))X=L8.createElement(p,{flexGrow:1}),_[7]=X;else X=_[7];let
G;if(_[8]!==K||_[9]!==f)G=L8.createElement(SZ7,{status:f,searchBadge:K}),_[8]=K,_[9]=f,_[10]=G;else G=_[10];let W;if(_[11]!==J||_[12]!==G)W=L8.createElement(p,{noSelect:!0,alignItems:"center
",alignSelf:"center",borderTopDimColor:!0,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:"single",marginTop:1,paddingLeft:2,width:"100%"},J,X,G),_[11]=J,_[12]=G,_[13]=W;else
W=_[13];return W}function SZ7(H){let _=iz8.c(6),{status:A,searchBadge:q}=H;if(A){let L;if(_[0]!==A)L=L8.createElement(v,null,A," "),_[0]=A,_[1]=L;else L=_[1];return L}if(q){let
L;if(_[2]!==q.count||_[3]!==q.current)L=L8.createElement(v,{dimColor:!0},q.current,"/",q.count," "),_[2]=q.count,_[3]=q.current,_[4]=L;else L=_[4];return L}let
K;if(_[5]===Symbol.for("react.memo_cache_sentinel"))K=L8.createElement(v,{dimColor:!0},"verbose "),_[5]=K;else K=_[5];return K}function
RZ7({jumpRef:H,count:_,current:A,onClose:q,onCancel:K,setHighlight:L,initialQuery:f}){let{query:M,cursorOffset:$,handleKeyDown:O,handlePaste:D}=MT({isActive:!0,initialQuery:f,onExit:()=>q(M)
,onCancel:K}),[z,Y]=s6.useState("building");s6.useEffect(()=>{let J=!0,X=H.current?.warmSearchIndex;if(!X){Y(null);return}return
Y("building"),X().then((G)=>{if(!J)return;if(G<20)Y(null);else Y({ms:G}),setTimeout(()=>J&&Y(null),2000)}),()=>{J=!1}},[]);let
w=z!=="building";s6.useEffect(()=>{if(!w)return;H.current?.setSearchQuery(M),L(M)},[M,w]);let j=$,P=j<M.length?M[j]:" ";return
L8.createElement(p,{borderTopDimColor:!0,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:"single",marginTop:1,paddingLeft:2,tabIndex:0,autoFocus:!0,onKeyDown:O,onPaste:D,width:"100%
",noSelect:!0},L8.createElement(v,null,"/"),L8.createElement(v,null,M.slice(0,j)),L8.createElement(v,{inverse:!0},P),j<M.length&&L8.createElement(v,null,M.slice(j+1)),L8.createElement(p,{fle
xGrow:1}),z==="building"?L8.createElement(v,{dimColor:!0},"indexing\u2026 "):z?L8.createElement(v,{dimColor:!0},"indexed in ",z.ms,"ms "):_===0&&M?L8.createElement(v,{color:"error"},"no
matches "):_>0?L8.createElement(v,{dimColor:!0},A,"/",_," "):null)}function Jvq(H){let
_=iz8.c(6),{isAnimating:A,title:q,disabled:K,noPrefix:L}=H,f=u$(),[M,$]=s6.useState(0),O,D;if(_[0]!==K||_[1]!==A||_[2]!==L||_[3]!==f)O=()=>{if(K||L||!A||!f)return;let
Y=setInterval(bZ7,CZ7,$);return()=>clearInterval(Y)},D=[K,L,A,f],_[0]=K,_[1]=A,_[2]=L,_[3]=f,_[4]=O,_[5]=D;else O=_[4],D=_[5];s6.useEffect(O,D);let z=A?Xvq[M]??Pvq:Pvq;return
rLH(K?null:L?q:`${z} ${q}`),null}function bZ7(H){return H(uZ7)}function uZ7(H){return(H+1)%Xvq.length}function
gC_({commands:H,debug:_,initialTools:A,initialMessages:q,pendingHookMessages:K,initialFileHistorySnapshots:L,initialContentReplacements:f,initialAgentName:M,initialAgentColor:$,mcpClients:O,
dynamicMcpConfig:D,autoConnectIdeFlag:z,strictMcpConfig:Y=!1,systemPrompt:w,appendSystemPrompt:j,onBeforeQuery:P,onTurnComplete:J,disabled:X=!1,mainThreadAgentDefinition:G,disableSlashComman
ds:W=!1,remoteSessionConfig:T,directConnectConfig:Z,sshSession:I,thinkingConfig:V}){let y=!!T,R=s6.useMemo(()=>yH(process.env.CLAUDE_CODE_DISABLE_TERMINAL_TITLE),[]),h=s6.useMemo(()=>!1,[]),
C=s6.useMemo(()=>yH(process.env.CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL),[]),U=!1;s6.useEffect(()=>{return N(`[REPL:mount] REPL mounted, disabled=${X}`),()=>N("[REPL:unmount] REPL unmounting")},[
X]);let[u,S]=s6.useState(G),B=Y6((w6)=>w6.toolPermissionContext),F=Y6((w6)=>w6.verbose),g=Y6((w6)=>w6.mcp),d=Y6((w6)=>w6.plugins),i=Y6((w6)=>w6.agentDefinitions),n=Y6((w6)=>w6.initialMessage
),o=Ss(),_H=Y6((w6)=>w6.expandedView)==="tasks",r=Y6((w6)=>w6.pendingWorkerRequest),HH=Y6((w6)=>w6.pendingSandboxRequest),t=Y6((w6)=>w6.teamContext),MH=Y6((w6)=>w6.tasks),$H=Y6((w6)=>w6.work
erSandboxPermissions),jH=Y6((w6)=>w6.elicitation),s=Y6((w6)=>w6.ultraplanPendingChoice),a=Y6((w6)=>w6.ultraplanLaunchPending),qH=Y6((w6)=>w6.viewingAgentTaskId),e=B_(),fH=qH?MH[qH]:void
0,KH=uj(fH)&&fH.retain&&!fH.diskLoaded;s6.useEffect(()=>{if(!qH||!KH)return;let w6=qH;Z5H(h5(w6)).then((r6)=>{e((K8)=>{let HA=K8.tasks[w6];if(!uj(HA)||HA.diskLoaded||!HA.retain)return K8;let
NA=HA.messages??[],O1=new
Set(NA.map((l1)=>l1.uuid)),A1=r6?r6.messages.filter((l1)=>!O1.has(l1.uuid)):[];return{...K8,tasks:{...K8.tasks,[w6]:{...HA,messages:[...A1,...NA],diskLoaded:!0}}}})})},[qH,KH,e]);let
zH=UK(),OH=s6.useMemo(()=>LN(()=>zH.getState(),e),[zH,e]),JH=s6.useMemo(()=>rTH(()=>zH.getState(),e),[zH,e]),wH=Vi(),TH=TY(),[vH,WH]=s6.useState(H);TGq(y?void 0:TL(),WH);let
ZH=Y6((w6)=>w6.isBriefOnly),RH=s6.useMemo(()=>t0(B),[B,ZH]);qj9(),Kj9();let[UH,sH]=s6.useState(D),cH=s6.useCallback((w6)=>{sH(w6)},[sH]),[M6,O6]=s6.useState("prompt"),[EH,CH]=s6.useState(!1)
,[mH,uH]=s6.useState(!1),[aH,rH]=s6.useState(""),nH=s6.useRef(0),QH=s6.useRef(void
0),tH=s6.useRef(!1),{addNotification:Z6,removeNotification:U6}=L9(),H8=kZ7,c6=JGq(O,g.clients),[iH,x6]=s6.useState(void 0),[BH,L6]=s6.useState(null),[IH,oH]=s6.useState(null),[D6,W6]=s6.useS
tate(!1),[LH,YH]=s6.useState(()=>{return!1}),xH=Y6((w6)=>w6.showRemoteCallout),[bH,eH]=s6.useState(()=>ETq());LZq(),MZq(),AZq({ideSelection:iH,mcpClients:c6,ideInstallationStatus:IH}),rTq({m
cpClients:c6}),aTq(),kEq(),hEq(),G78(),FEq(TH),WZq(),EZq(),cEq(TH),lEq(),eEq(),oEq(),IZ7(),e0q(),DTq(),PTq(),eTq(),YZq();let{recommendation:SH,handleResponse:E6}=wEq(),{recommendation:z6,han
dleResponse:Q6}=GEq(),{pending:B6,handleAction:l8,skipForSession:N8}=vZ7(),F_=s6.useMemo(()=>{return[...RH,...A]},[RH,A]);Lz8({enabled:!y}),kGq({enabled:!y});let
f_=CO9();s6.useEffect(()=>{if(y)return;uEq(e)},[e,y]),s6.useEffect(()=>{let
w6=setTimeout(iZq,500);return()=>clearTimeout(w6)},[]),WTq(y?FC_:c6,B.mode),s6.useEffect(()=>{XN_(B.mode)},[B.mode]),VWq(e,q,{enabled:!y});let
DA=n58(F_,g.tools,B),{tools:L1,allowedAgentTypes:F8}=s6.useMemo(()=>{if(!u)return{tools:DA,allowedAgentTypes:void 0};let
w6=Ic(u,DA,!1,!0);return{tools:w6.resolvedTools,allowedAgentTypes:w6.allowedAgentTypes}},[u,DA]),j_=s6.useRef(L1);j_.current=L1;let h1=s6.useMemo(()=>{if(!Dj())return L1;let w6=new
Set(L1.map((K8)=>K8.name)),r6=nMH().filter((K8)=>!w6.has(K8.name));return r6.length>0?[...L1,...r6]:L1},[L1]),p1=nR_(vH,d.commands),Rq=nR_(p1,g.commands),g_=s6.useMemo(()=>W?[]:Rq,[W,Rq]);VY
q(y?FC_:g.clients),RGq(y?FC_:g.clients,x6);let[zK,YK]=s6.useState([]),[U4,lL]=s6.useState(null);s6.useEffect(()=>{if(U4&&!U4.isStreaming&&U4.streamingEndedAt){let
r6=30000-(Date.now()-U4.streamingEndedAt);if(r6>0){let K8=setTimeout(lL,r6,null);return()=>clearTimeout(K8)}else
lL(null)}},[U4]);let[Mq,mf]=s6.useState(null),B4=s6.useRef(null);B4.current=Mq;let
Sz=s6.useRef(null),xY=s6.useRef(()=>{}),KL=s6.useRef(()=>{}),V3=s6.useRef(null),ej=s6.useRef(null),mY=s6.useRef(0),Yf=s6.useRef(new
Eh_).current,MM=s6.useSyncExternalStore(Yf.subscribe,Yf.getSnapshot),[L7,hL]=s6.useState(T?.hasInitialPrompt??!1),U9=MM||L7,[wf,A4]=s6.useState(void 0),V7=s6.useRef(0),q4=s6.useRef(!1),jf=s6
.useRef(0),f7=s6.useRef(0),s$=s6.useRef(null),cD=s6.useCallback(()=>{jf.current=Date.now(),f7.current=0,s$.current=null},[]),Uw=s6.useRef(!1);if(MM&&!Uw.current)cD();Uw.current=MM;let
QO=s6.useCallback((w6)=>{if(hL(w6),w6)cD()},[cD]),t$=s6.useRef(null),Rz=s6.useRef(void 0),M$=s6.useRef(void 0),HP=1500,[Pf,z5]=s6.useState(!1);s6.useEffect(()=>{if(oA())IO1().then((w6)=>{if(
w6)Z6({key:"tmux-mouse-hint",text:w6,priority:"low"})});VO1().then((w6)=>{if(w6)Z6({key:"tmux-focus-hint",text:w6,priority:"low"})})},[]);let[QD,Bw]=s6.useState(!1);s6.useEffect(()=>{},[]);l
et[X8,jA]=s6.useState(null),W1=s6.useRef(null),o1=s6.useCallback((w6)=>{if(w6?.isLocalJSXCommand){let{clearLocalJSX:r6,...K8}=w6;W1.current={...K8,isLocalJSXCommand:!0},jA(K8);return}if(W1.c
urrent){if(w6?.clearLocalJSX){W1.current=null,jA(null);return}return}if(w6?.clearLocalJSX){jA(null);return}jA(w6)},[]),[a1,LL]=s6.useState(()=>new Map),s4=s6.useCallback((w6)=>{LL((r6)=>f0q(
r6,w6))},[]),[kq,dA]=s6.useState([]),G1=s6.useMemo(()=>Qzq(dA),[dA]),[bK,KK]=s6.useState(null),[Q1,pf]=s6.useState([]),[nK,k$]=s6.useState([]),pY=s6.useRef(new
Map),Fw=Y6((w6)=>w6.settings.terminalTitleFromRename)!==!1,i7=s6.useSyncExternalStore(PN_,()=>Fw?jz(k6()):void 0);s6.useEffect(()=>{return wN_(()=>{let
w6=kQH();if(!w6)return;e((r6)=>{if(r6.standaloneAgentContext?.name===w6)return
r6;return{...r6,standaloneAgentContext:{...r6.standaloneAgentContext,name:w6}}})})},[e]);let[M9,gw]=s6.useState(),Cz=s6.useRef((q?.length??0)>0),LW=u?.agentType,K4=i7??LW??M9??"Claude
Code",r7=kq.length>0||nK.length>0||r||HH,k7=X8?.isLocalJSXCommand===!0&&X8?.jsx!=null,bz=s6.useMemo(()=>lq8(MH),[MH]),_P=r7||k7?"waiting":U9||bz?"busy":"idle",lO=s6.useMemo(()=>UMq(MH),[MH])
,AP=_P==="idle"&&lO?"busy":_P,Jf=_P==="busy";s6.useEffect(()=>{if(_P==="busy")return yzq(),()=>hzq()},[_P]);let Y5=_P!=="waiting"?void 0:kq.length>0?`approve ${kq[0].tool.name}`:r?"worker
request":HH?"sandbox request":k7?"dialog open":"input needed";s6.useEffect(()=>{UR6({status:AP,waitingFor:Y5})},[AP,Y5]);let
nO=yqq(MH),I1=vQ6();s6.useEffect(()=>{Vh9({tasks:nO.count,queued:I1,kinds:nO.kinds})},[nO.count,I1,nO.kinds.join(",")]);let
k3=h6("tengu_terminal_sidebar",!1)&&(y6().showStatusInTerminalTab??!1),Lx=Y6((w6)=>w6.postTurnSummary?.status_detail);Rg6(R||!k3?null:_P,Lx),s6.useEffect(()=>{return
zZ1(G1),()=>YZ1()},[G1]);let[SK,sN]=s6.useState(q??[]),M7=s6.useRef(SK),VT=s6.useRef(!1),B9=s6.useCallback((w6)=>{let r6=M7.current,K8=typeof
w6==="function"?w6(M7.current):w6;if(M7.current=K8,K8.length<V7.current)V7.current=0,q4.current=!1,A4(void 0);else if(K8.length>r6.length&&q4.current){let
HA=K8.length-r6.length;if((r6.length===0||K8[0]===r6[0]?K8.slice(-HA):K8.slice(0,HA)).some($L6))q4.current=!1;else
V7.current=K8.length}sN(K8)},[]),B5=s6.useCallback((w6)=>B9((r6)=>_z8(r6,w6)),[B9]);$Tq(s6.useCallback((w6)=>B9((r6)=>[...r6,A8({content:yf8(w6),isMeta:!0})]),[B9]));let
NX=s6.useCallback((w6)=>{if(w6!==void 0)V7.current=M7.current.length,q4.current=!0;else q4.current=!1;A4(w6)},[]),{dividerIndex:yX,dividerYRef:fW,onScrollAway:bZ,onRepin:MV,jumpToNew:gs,shif
tDivider:lD}=Re9(SK.length);KTq(SK,B9,U9,mY,!y);let[kT,FH]=s6.useState(null),lH=s6.useRef(kT);lH.current=kT;let
o6=s6.useRef(null),H6=s6.useMemo(()=>Ce9(SK,yX),[yX,SK.length]),F6=s6.useCallback((w6=!1,r6="?")=>{if(!w6&&!u7("autoScrollEnabled",!0).value)return;let
K8=V3.current;if(K8&&!K8.isSticky())N(`repinScroll(${r6}, force=${w6}): yanking from scrollTop=${K8.getScrollTop()}
(max=${Math.max(0,K8.getScrollHeight()-K8.getViewportHeight())})`);if(K8?.scrollToBottom(),MV(),lH.current!==null)FH(null)},[MV]),y8=SK.at(-1),T8=y8!=null&&$L6(y8);s6.useEffect(()=>{if(T8)F6
(!1,"lastMsgIsHuman")},[T8,y8,F6]);let{maybeLoadOlder:b_}=yZ7,s_=s6.useCallback((w6,r6)=>{if(mY.current=Date.now(),w6)MV();else
bZ(r6)},[MV,bZ,b_]),I9=OWq(K,B9),[$7,F4]=s6.useState(null);s6.useState(()=>{return DA8(ir8()),null});let
D9=s6.useRef(OA8()),iK=aj9(),n9=s6.useCallback(()=>z5(!1),[]),vK=yi(n9,HP),BM=s6.useRef(null),GL=s6.useCallback((w6)=>{if(H8(D9.current,w6))return;if(D9.current===""&&w6!==""&&Date.now()-mY.
current>=hZ7)F6(!1,"typedIntoEmpty");D9.current=w6,DA8(w6),Y_H.recordUserActivity(),vDH(!0);let r6=w6.trim().length>0;if(z5(r6),r6)vK();else
vK.cancel()},[z5,F6,H8,vK]),[$M,nD]=s6.useState("prompt"),[qP,tN]=s6.useState(),uz=s6.useCallback((w6)=>{let r6=new
Set(w6.slash_commands);WH((K8)=>K8.filter((HA)=>r6.has(HA.name)||ak_.has(HA))),e((K8)=>K8.mainLoopModel===w6.model?K8:{...K8,mainLoopModel:w6.model})},[WH,e]),[NT,$V]=s6.useState(new
Set),JR=s6.useCallback((w6)=>{$V((r6)=>{switch(w6.action){case"add":{let K8=new Set(r6);for(let HA of w6.ids)K8.add(HA);return K8}case"remove":{let K8=new Set(r6);for(let HA of
w6.ids)K8.delete(HA);return K8.size===r6.size?r6:K8}case"clear":return r6.size>0?new
Set:r6}})},[]),hX=s6.useRef(!1),yT=s6.useRef(0),eN=s6.useRef([]),RB=s6.useRef(0),BQ=s6.useCallback((w6)=>{yT.current+=w6;let r6=eN.current;if(w6>0&&r6.length>0){let K8=r6.at(-1);if(K8.output
Tokens==null)K8.lastTokenTime=Date.now(),K8.endResponseLength=yT.current}},[]),TZH=s6.useCallback(()=>{yT.current=0},[]),x1H=s6.useCallback((w6)=>{if(w6.type==="start"){let
r6=Date.now(),K8=yT.current;eN.current.push({id:w6.id,ttftMs:w6.ttftMs,firstTokenTime:r6,lastTokenTime:r6,responseLengthBaseline:K8,endResponseLength:K8})}else{let
r6=w6.id!=null?eN.current.find((K8)=>K8.id===w6.id):eN.current.findLast((K8)=>K8.id==null);if(r6){if(r6.outputTokens=w6.outputTokens,r6.lastTokenTime=Date.now(),w6.id==null)yT.current=Math.m
ax(yT.current,r6.responseLengthBaseline+w6.outputTokens*4)}}},[]),CB=h2q({config:T,setMessages:B9,setIsLoading:QO,onInit:uz,setToolUseConfirmQueue:G1,tools:F_,setStreamingToolUses:YK,setStre
amMode:JM6,setInProgressToolUseIDs:JR,recordApiMetricsEvent:x1H,permissionMode:B.mode}),ds=b2q({config:Z,setMessages:B9,setIsLoading:QO,setToolUseConfirmQueue:G1,tools:F_,permissionMode:B.mo
de}),bB=m2q({session:I,setMessages:B9,setIsLoading:QO,setToolUseConfirmQueue:G1,tools:F_,permissionMode:B.mode}),KP=s6.useMemo(()=>bB.isRemoteMode?OL8("ssh",bB,!1):ds.isRemoteMode?OL8("direc
t",ds,!1):CB.isRemoteMode?OL8("ccr",CB,T?.viewerOnly??!1,T?.sessionId):KG_,[bB,ds,CB,T?.viewerOnly,T?.sessionId]);s6.useEffect(()=>{let w6=KP.isRemoteMode?KP:null,r6=KP.isRemoteMode&&KP.kind
==="ccr"?"ccr-api":"local-jsonl",K8=uDH();if(K8.remote!==w6||K8.transcriptSource!==r6)DP8({...K8,remote:w6,transcriptSource:r6})},[KP]);let[Uf,YJ]=s6.useState({}),[XR,m1H]=s6.useState(0),[WR
,uZ]=s6.useState(null),FQ=!(Y6((w6)=>w6.settings.prefersReducedMotion)??!1)&&!Jj1(),GR=s6.useCallback((w6)=>{if(!FQ)return;uZ(w6)},[FQ]),vG=WR&&FQ?WR.substring(0,WR.lastIndexOf(`
9251 `)+1)||null:null,[xZ,cs]=s6.useState(0),[Qs,fx]=s6.useState(!1),[QOH,ls]=s6.useState(void
: 0),[ns,p1H]=s6.useState(!1),[lOH,OV]=s6.useState(xOH.randomUUID()),[uB,IG]=s6.useState(null),gQ=s6.useCallback((w6)=>{let
r6=vzq(w6,Tj);if(r6)IG(r6)},[]),U1H=s6.useRef(xZ);U1H.current=xZ;let[is]=s6.useState(()=>({current:Oy1(q,f)})),[xB]=s6.useState(()=>({current:Ic1(q??[])})),[dQ,LP]=s6.useState(y6().hasAcknow
ledgedCostThreshold),[cQ,wJ]=s6.useState(!1),[N6,i8]=s6.useState(!1),JA=s6.useRef("INSERT");s6.useEffect(()=>{if(s&&cQ)wJ(!1)},[s,cQ]);let
wK=u$(),LK=s6.useRef(wK);LK.current=wK;let[L4]=Y1(),j5=s6.useRef(!1),UY=s6.useCallback(()=>{if(j5.current)return;j5.current=!0;let w6=M7.current.slice(lQ.current);for(let r6 of
sL_(w6))d1H.current.add(r6);lQ.current=M7.current.length,ITq({theme:L4,readFileState:mB.current,bashTools:d1H.current}).then(async(r6)=>{if(r6){let K8=await
r6.content({theme:L4});e((HA)=>({...HA,spinnerTip:K8})),VTq(r6)}else e((K8)=>{if(K8.spinnerTip===void 0)return K8;return{...K8,spinnerTip:void
0}})})},[e,L4]),Xf=s6.useCallback(()=>{QO(!1),NX(void 0),yT.current=0,eN.current=[],RB.current++,uZ(null),YK([]),l3_(),JM6("responding"),UY(),ar(),so6()},[UY]),jJ=s6.useMemo(()=>G2H(MH).some
((w6)=>w6.status==="running"),[MH]);s6.useEffect(()=>{if(!jJ&&t$.current!==null){let w6=Date.now()-t$.current,r6=Rz.current;t$.current=null,Rz.current=void
0,B9((K8)=>[...K8,gW_(w6,r6,A_(K8,H1H))])}},[jJ,B9]);let
MW=s6.useRef(!1);s6.useEffect(()=>{{if(B.mode!=="auto"){MW.current=!1;return}if(MW.current)return;if((y6().autoPermissionsNotificationCount??0)>=3)return;let
K8=setTimeout((HA,NA)=>{HA.current=!0,a6((O1)=>{let A1=O1.autoPermissionsNotificationCount??0;if(A1>=3)return
O1;return{...O1,autoPermissionsNotificationCount:A1+1}}),NA((O1)=>[...O1,L5(jD8,"warning")])},800,MW,B9);return()=>clearTimeout(K8)}},[B.mode,B9]);let
UlH=s6.useRef(!1),nOH=s6.useRef(!1);s6.useEffect(()=>{if(nOH.current)return;let
w6=_5();if(!w6?.creationDurationMs||w6.usedSparsePaths)return;if(w6.creationDurationMs<15000)return;nOH.current=!0;let r6=Math.round(w6.creationDurationMs/1000);B9((K8)=>[...K8,L5(`Worktree
creation took ${r6}s. For large repos, set \`worktree.sparsePaths\` in .claude/settings.json to check out only the directories you need \u2014 e.g. \`{"worktree": {"sparsePaths": ["src",
"packages/foo"]}}\`.`,"info")])},[B9]);let{onBeforeQuery:B1H,onTurnComplete:EZH,onSessionRestored:F1H,render:aP6,ownsInput:ZZH}=F2q({enabled:h,setMessages:B9,setInputValue:GL,setToolJSX:o1,r
esultDedupState:xB.current}),iOH=(!X8||X8.showSpinner===!0)&&kq.length===0&&nK.length===0&&(U9||wf||jJ||vQ6()>0)&&!r&&(!vG||ZH),rs=kq.length>0||nK.length>0||Q1.length>0||jH.queue.length>0||$
H.queue.length>0;xzq({sandboxHost:Q1[0]?.hostPattern.host,promptTitle:nK[0]?.title,elicitationServer:jH.queue[0]?.serverName,workerSandboxHost:$H.queue[0]?.host});let
rOH=V0q({hasActivePrompt:rs,otherSurveyActive:!1}),g1H=y0q(SK,U9,rs,{enabled:!y}),hT=v0q(SK,U9,rs,{enabled:!y,otherSurveyActive:rOH.state!=="closed"||g1H.state!=="closed"}),vZH=J0q(SK,U9,XR,
"session",rs,rOH.state!=="closed"||g1H.state!=="closed"||hT.state!=="closed"),mZ=uZq(SK,XR),BlH=s6.useMemo(()=>({...vZH,handleSelect:(w6)=>{if(NZH.current=!1,vZH.handleSelect(w6),w6==="bad"&
&VZq("feedback_survey_bad"))c1H("feedback_survey_bad"),NZH.current=!0}}),[vZH]),sP6=ZZ7(SK,U9,rs,rOH.state!=="closed"||BlH.state!=="closed"||g1H.state!=="closed"||hT.state!=="closed");H0q({a
utoConnectIdeFlag:z,ideToInstallExtension:BH,setDynamicMcpConfig:sH,setShowIdeOnboarding:W6,setIDEInstallationState:oH}),FTq(L,(w6)=>e((r6)=>({...r6,fileHistory:w6})));let
tP6=s6.useCallback(async(w6,r6,K8)=>{let HA=performance.now();try{let NA=SM6(r6.messages),O1=BD6();await
KTH("resume",{getAppState:()=>zH.getState(),setAppState:e,signal:AbortSignal.timeout(O1)});let{agentDefinition:A1}=qZH(r6.agentSetting,G,i);S(A1),e((g4)=>({...g4,agent:A1?.agentType}));let
l1=await bb("resume",{sessionId:w6,agentType:A1?.agentType,model:TH});if(NA.push(...l1),K8==="fork")IB1(r6,W2(w6));else Dr6(r6,W2(w6));if(r6.fileHistorySnapshots)L_8(r6);if(e((g4)=>({...g4,s
tandaloneAgentContext:OP6(r6.agentName,r6.agentColor)})),Gv(r6.agentName),HJ6(NA,r6.projectPath??q_()),K8!=="fork")sOH.current.current=u36(NA,F_);Xf(),mf(null),OV(w6);let
_A=wq_(w6);a46(),hvH(),uT(W2(w6),r6.fullPath?rz8.dirname(r6.fullPath):null);let{renameRecordingForSession:$9}=await Promise.resolve().then(() => (MP6(),BGq));if(await $9(),await
eU(),$P6(r6,e),UD6(),Ts(r6),Cz.current=!0,gw(void 0),K8!=="fork")gGq(r6.worktreeSession===void
0?r6.projectPath:r6.worktreeSession?.worktreePath),DP6(r6.worktreeSession,r6.projectPath),Gs(),yO_({abortController:new
AbortController,taskRegistry:OH}),fl(PV().map((g4)=>g4.id)),tR_(NA);else{let g4=_5();if(g4)dS(g4)}if(_A)dnH(_A);if(is.current&&K8!=="fork")is.current=gl6(NA,r6.contentReplacements??[]);if(B9
(()=>NA),o1(null),GL(""),K8!=="fork")gQ(NA);c("tengu_session_resumed",{entrypoint:K8,success:!0,resume_duration_ms:Math.round(performance.now()-HA)})}catch(NA){throw c("tengu_session_resumed
",{entrypoint:K8,success:!1,failure_reason:"processing_error",error_name:n8(NA).name}),NA}},[Xf,e,OH,gQ]),[QQ]=s6.useState(()=>Pb(hp)),mB=s6.useRef(QQ),d1H=s6.useRef(new
Set),lQ=s6.useRef(0),FlH=s6.useRef(new Set),glH=s6.useRef(new Map),IZH=s6.useRef(new Set),oOH=s6.useRef(new Map),VZH=s6.useRef(void
0),aOH=s6.useRef(KfH()),eP6=s6.useRef(w76()),sOH=s6.useRef(tFH()),HJ6=s6.useCallback((w6,r6)=>{let K8=MpH(w6,r6,hp);mB.current=quH(mB.current,K8);for(let HA of
sL_(w6))d1H.current.add(HA)},[e]);s6.useEffect(()=>{if(q&&q.length>0)HJ6(q,q_()),yO_({abortController:new AbortController,taskRegistry:OH}),tR_(q),gQ(q),sOH.current.current=u36(q,F_),F1H(q)}
,[]);let{status:_J6,reverify:kZH}=zWq(),[Mx,c1H]=s6.useState(null),NZH=s6.useRef(!1),[dlH,clH]=s6.useState(null),[QlH,llH]=s6.useState(!1),nlH=!U9&&ns;function
tOH(){if(QlH||dlH)return;if(Qs)return"message-selector";if(Pf)return;if(Q1[0])return"sandbox-permission";let
w6=!X8||X8.shouldContinueAnimation;if(w6&&kq[0])return"tool-permission";if(w6&&nK[0])return"prompt";if(w6&&$H.queue[0])return"worker-sandbox-permission";if(w6&&jH.queue[0])return"elicitation
";if(w6&&nlH)return"cost";if(w6&&uB)return"resume-return";if(w6&&!U9&&s)return"ultraplan-choice";if(w6&&!U9&&a)return"ultraplan-launch";if(Iq()){if(w6&&xH)return"remote-callout";return}if(w6
&&D6)return"ide-onboarding";if(w6&&xH)return"remote-callout";if(w6&&SH)return"lsp-recommendation";if(w6&&z6)return"plugin-hint";if(w6&&bH)return"desktop-upsell";return}let
P5=tOH(),AJ6=Pf&&(Q1[0]||kq[0]||nK[0]||$H.queue[0]||jH.queue[0]||nlH);M$.current=P5,s6.useEffect(()=>{if(!U9)return;let
w6=P5==="tool-permission",r6=Date.now();if(w6&&s$.current===null)s$.current=r6;else if(!w6&&s$.current!==null)f7.current+=r6-s$.current,s$.current=null},[P5,U9]);let
ilH=s6.useRef(P5),Bf=s6.useRef(null);s6.useLayoutEffect(()=>{let w6=ilH.current==="tool-permission",r6=P5==="tool-permission";if(ilH.current=P5,w6===r6)return;let
K8=V3.current;if(r6)Bf.current=K8&&!K8.isSticky()?K8.getScrollTop():null,F6(!0,"permissionDialogAppear");else if(Bf.current!==null)K8?.scrollTo(Bf.current),Bf.current=null;else
F6(!0,"permissionDialogDismiss")},[P5,F6]);let
os=X8?.jsx!=null,qJ6=s6.useRef(os);s6.useLayoutEffect(()=>{if(qJ6.current!==os&&(V3.current?.isSticky()??!0))F6(!1,`toolJsxDialog\u2192${os}`);qJ6.current=os},[os,F6]);function
yZH(){if(P5==="elicitation")return;if(N(`[onCancel] focusedInputDialog=${P5}
streamMode=${Tc.getState().mode}`),Yf.forceEnd(),WR?.trim())B9((w6)=>[...w6,XY({content:WR})]);if(Xf(),P5==="tool-permission")kq[0]?.onAbort(),G1([]);else if(P5==="prompt"){for(let w6 of
nK)w6.reject(Error("Prompt cancelled by user"));k$([]),Mq?.abort("user-cancel")}else if(KP.isRemoteMode)KP.cancelRequest();else Mq?.abort("user-cancel");mf(null),EZH(M7.current,!0)}let
KJ6=s6.useCallback(()=>{let w6=VQ6(D9.current,0);if(!w6)return;if(GL(w6.text),nD("prompt"),w6.images.length>0)YJ((r6)=>{let K8={...r6};for(let HA of w6.images)K8[HA.id]=HA;return
K8})},[GL,nD,YJ]),LJ6={setToolUseConfirmQueue:G1,onCancel:yZH,getConnectionSummary:()=>Sz.current?.summary(),onAgentsKilled:()=>B9((w6)=>[...w6,RU9()]),isMessageSelectorVisible:Qs||!!cQ,scre
en:M6,abortSignal:Mq?.signal,isExternalLoading:L7,popCommandFromQueue:KJ6,isLocalJSXCommand:X8?.isLocalJSXCommand,isInputOverlayActive:N6,inputMode:$M,isInputEmpty:iK};s6.useEffect(()=>{if(y
)return;if(XJ()>=5&&!ns&&!dQ){if(c("tengu_cost_threshold_reached",{}),LP(!0),$S6())p1H(!0)}},[SK,ns,dQ]);let CY8=s6.useCallback(async(w6)=>{let
r6=zH.getState(),{mode:K8,isBypassPermissionsModeAvailable:HA}=r6.toolPermissionContext;switch(Gv6(K8,HA)){case"allow":return!0;case"deny":return!1;case"classify":return
x_8(w6.host,w6.port,M7.current,j_.current,r6.toolPermissionContext,new AbortController().signal);case"ask":break}if(k1()&&SL6()){let O1=Cd1(),A1=await bd1(w6.host,O1);return new
Promise((l1)=>{if(!A1){pf((_A)=>[..._A,{hostPattern:w6,resolvePromise:l1}]);return}pd1({requestId:O1,host:w6.host,resolve:l1}),e((_A)=>({..._A,pendingSandboxRequest:{requestId:O1,host:w6.hos
t}}))})}return new Promise((O1)=>{let A1=!1;function l1(_A){if(A1)return;A1=!0,O1(_A)}pf((_A)=>[..._A,{hostPattern:w6,resolvePromise:l1}]);{let
_A=zH.getState().replBridgePermissionCallbacks;if(_A){let $9=xOH.randomUUID();_A.sendRequest($9,Sz8,{host:w6.host},xOH.randomUUID(),`Allow network connection to ${w6.host}?`);let
g4=_A.onResponse($9,(J5)=>{g4();let KO=J5.behavior==="allow";pf((BY)=>{return
BY.filter((FY)=>FY.hostPattern.host===w6.host).forEach((FY)=>FY.resolvePromise(KO)),BY.filter((FY)=>FY.hostPattern.host!==w6.host)});let kG=pY.current.get(w6.host);if(kG){for(let BY of
kG)BY();pY.current.delete(w6.host)}}),iD=()=>{g4(),_A.cancelRequest($9)},RK=pY.current.get(w6.host)??[];RK.push(iD),pY.current.set(w6.host,RK)}}})},[e,zH]);if(s6.useEffect(()=>{let
w6=N_.getSandboxUnavailableReason();if(!w6)return;if(N_.isSandboxRequired()){process.stderr.write(`
9252: Error: sandbox required but unavailable: ${w6}
9253: `+` sandbox.failIfUnavailable is set \u2014 refusing to start without a working sandbox.
9254:
- <anonymous> (/$bunfs/root/src/entrypoints/cli.js:9251:5663)
- WR (/$bunfs/root/src/entrypoints/cli.js:492:63749)
- UY (/$bunfs/root/src/entrypoints/cli.js:492:76948)
- j5 (/$bunfs/root/src/entrypoints/cli.js:492:76827)
- UY (/$bunfs/root/src/entrypoints/cli.js:492:76926)
- j5 (/$bunfs/root/src/entrypoints/cli.js:492:76827)
- UY (/$bunfs/root/src/entrypoints/cli.js:492:77745)
- j5 (/$bunfs/root/src/entrypoints/cli.js:492:76827)
- UY (/$bunfs/root/src/entrypoints/cli.js:492:76926)
- j5 (/$bunfs/root/src/entrypoints/cli.js:492:76827)Steps to Reproduce
- Run claude --resume
- Select a session
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
No response
Claude Code Version
2.1.120
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
No response
extent analysis
TL;DR
The issue is likely caused by a missing or undefined function F1H in the Claude Code application, which is preventing the --resume command from working properly.
Guidance
- Check the code: Verify that the
F1Hfunction is defined and exported in the relevant JavaScript file. - Inspect the stacktrace: Analyze the stacktrace to identify the exact line and file where the error occurs, which may provide more context about the issue.
- Test previous versions: Try running the
--resumecommand with previous versions of Claude Code to confirm if this is a regression issue.
Example
No code example is provided as the issue is related to a specific function F1H which is not defined in the given code snippet.
Notes
The provided code snippet appears to be a part of a larger JavaScript application, and the error message suggests that the F1H function is not defined. Without more context or information about the F1H function, it is challenging to provide a more specific solution.
Recommendation
Apply workaround: Try to identify and define the missing F1H function or check if there are any updates available for the Claude Code application that may resolve this issue.
Vote matrix · Quick signals
Still need to ship something?
×6Another batch ranked right after the header list — different links, same matching logic.
TRENDING
- Feature Request: Configurable per-minute rate limiting (RPM) for models to prevent 429 errors
- Android: Hermes App + Termux install share ~/.hermes and cause silent permission loops
- hermes update emits unicode-animations ANSI demo in non-interactive logs
- hermes update downgrades aiohttp from 3.13.4 to 3.13.3
- npm install warns about deprecated @babel/plugin-proposal-private-methods
- DingTalk inbound media URLs are skipped as unreadable native image paths
- fix(dashboard): ChatPage clears header action buttons on ALL pages, not just Sessions
- [Bug]: check_web_api_key() hardcodes built-in backends — third-party web search plugins silently disabled
- Hermes Web UI 修复经验:GatewayManager 补丁、进程 D 状态、数据库升级问题
- Telegram gateway can silently drop turn after /stop with response=0 chars while internal work continues
- Bug Report: v0.14.0 上下文污染 — 历史回复碎片回注到新请求
- Bug: hermes skills search table truncates Identifier column — install fails with copied value
- [skills-index-watchdog] Skills index is stale or degraded (degraded)
- Discord approval embed not rendering on web/mobile — embed data present in API but invisible
- Idea: Discord voice-channel participation / opt-in auto-join mode
- [Feature]: Claude Code--ultrawork
- build-arm64 job deterministically fails on cold cache (Azure SAS token expires mid-build)
- [Enhancement] computer_use: action=type should fall back to key events for terminal emulators (Ghostty/Terminal.app/iTerm2)
- Feature Request: Session Recovery on Temporary Provider Outage
- [Bug]: Hermes dashboard not working on NixOS (container)
- [Feature]: Add option to ignore @all/@everyone mentions in Feishu group chats
- QQ Bot WebSocket 频繁断开:长时间工具执行阻塞 asyncio 事件循环导致心跳超时
- patch tool: new_string escape sequences (\t) get written literally
- Feature Request: i18n / 多语言支持(国际化)
- Bug: web_crawl schema lets models auto-guess "instructions" instead of asking the user via clarify
- feat: `!command` prefix for direct shell execution (like Claude Code)
- Expose currently-running cron jobs via /api/jobs (or new endpoint)
- [Bug]: Kanban parent-child handoff: scratch workspace GC destroys artifacts before child can read them
- [Bug, Windows] hermes gateway restart loses session context — planned_stop_marker not written before SIGTERM
- [Bug]: Codex→DeepSeek fallback sends assistant turns without reasoning_content → HTTP 400 (require-side cross-provider failover)
- [Bug]: Update got stuck half way, reboot it, then ModuleNotFoundError: No module named 'hermes_cli'
- Kanban dispatcher corrupt-board handling and multi-profile gateway ownership ambiguity
- Gateway can resend a short fallback message when the real final Telegram response was already delivered
- [BUG] Bedrock: Fix 'Invalid API Key format' for presigned URL tokens
- Secret redaction corrupts code syntax in tool output (write_file, execute_code, terminal)
- Unable to connect Ollama Cloud with Pro Subscription to Hermes
- feat: fuzzy substring matching for /skill autocomplete
- PRD: Autonomous market-impact prediction briefing system
- Kanban dashboard should support task/card deep links
- [Feature] Native Feishu CardKit Streaming: consolidate best-in-class implementations
- [Feature]: Inject mental model into context when using Hindsight
- Interactive CLI hides tool output despite display.tool_progress=all, and hermes chat -v does not restore it
- fix(api_server): _handle_responses drops text.format JSON schema — structured output constraints silently ignored
- state.db FTS corruption goes undetected — no integrity check, no repair path
- bug: fallback routing can select text-only models for image requests and hide the primary failure
- feat(kanban): persist worker session_id per run and pass --resume on respawn after unblock
- feat(kanban): support GitHub/OMO lifecycle bridge for Xiyou-style automation
- Expose update-safe TUI/composer hooks for voice transcript and composer events
- Hide or configure voice transcript status rows in editable dictation mode
- [Feature]: Per-Tool / Per-Toolset Approval Policies
- Context compression creates orphan sessions missing from state.db
- messaging platform
- feat: Add read-only / silent monitoring mode for WhatsApp adapter
- double-.hermes path mismatch, the HOME env var leak, and the fallback-notification UX problem
- Bug: Plattform-Bundle name `hermes-yuanbao` in `agent.disabled_toolsets` silently kills ALL tools in gateway path (Telegram + cron), CLI unaffected
- CLI /yolo (in-chat) does not bypass dangerous command approvals — env var freeze + missing enable_session_yolo call
- OpenAI Codex provider crashes with "'NoneType' object is not iterable" (HTTP None)
- DEEPSEEK_API_KEY blocked by env blocklist in gateway process — cron jobs fail with deepseek provider
- fix(feishu): Card action callback routing issues - invalid message_id and unrecognized /card command
- Discord plugin: profiles without explicit `discord:` block silently get `require_mention=true` + `auto_thread=true` (regression in cc8e5ec2a)
- [Bug]: DISCORD_ALLOWED_ROLES ignored by gateway _is_user_authorized — role-authorized users get 'Unauthorized user' rejection
- [Bug]: /new, /clear, and /reset commands freeze the terminal session
- openai-codex subscription backend returns HTTP 200 with response.output=None, causing Slack/cron failures
- RFC: Centralized Model/Provider Registry
- bug: openai-codex provider — TypeError: 'NoneType' object is not iterable on every request (gpt-5.5)
- [Feature]: Source-aware instruction gate — architectural mitigation for indirect prompt injection
- Named custom provider stale_timeout_seconds ignored because runtime provider is normalized to `custom`
- guard test (ignore)
- [Feature]: per-platform LLM request_overrides (extra_body / reasoning_effort / service_tier)
- One-shot smoke: add Flue-backed orchestration fixture
- Gateway should not treat stale Codex app-server progress as final response after post-tool silence
- `docker_run_as_host_user: true` breaks bundled skills: Hermes home is mounted into `/root/.hermes` but the container runs as a non-root user (`HOME=/home/pn`)
- [Bug]: gateway api_server streaming bypasses server-side tool-call loop when chat_template_kwargs.enable_thinking=false (model emits tool name as plain text)
- [Feature]: Pre-install python-telegram-bot in Umbrel Hermes Docker image
- YouTube Shorts filter not working in youtube-content skill
- v0.15.0 PyPI release breaks ALL platforms — plugin.yaml manifests missing from package
- RFC: On-demand tool/skill/MCP discovery — decouple schema registration from process lifecycle
- Pixshelf: local-first stock photo workflow command center
- [Bug]: baoyu infographic skill should not silently bypass image_generate
- Pixshelf v1.5: manual submission tracking for stock agencies
- `hermes config set` silently accepts unknown keys, writing them where the runtime never reads
- Honcho memory prefetch hang on fresh CLI subprocess in v0.15.0 (regression from #27190)
- [Bug] v0.15.0 Docker image: stage2-hook.sh, main-wrapper.sh missing; container_boot module removed
- Feature: Reduce cache-read token overhead for DeepSeek providers — configurable cache_ttl, skills snapshot trimming, memory compaction
- Windows: three bugs from daily use (plugin discovery, gateway exit code, Unicode decode
- holographic memory: HRR silently degrades to FTS5 when numpy is missing
- Make max_tokens configurable for aux vision calls
- Conversation compression desynchronizes session ID between agent context and gateway routing, causing silent message loss
- [Bug]: v0.15.0 Docker image:The TUI cannot be used in the dashboard.
- cron: skip_memory=True blocks fact_store/memory tools from all cron jobs
- TUI: Node.js OOM crash when agent uses browser tools repeatedly
- feat: model_profiles — per-model toolset and memory config
- Automatic background skill patching disrupts active sessions (severe impact on local models)
- ensure_hermes_home() creates root-owned dirs in profile subdirectories when kanban workers are dispatched
- Feature: opt-in webhook bypass for DISCORD_ALLOW_BOTS — allow operator-initiated probes without weakening bot-loop guard
- v0.15.0: Codex requests fail HTTP 400 when participant display_name contains non-ASCII (emoji breaks input[].name pattern)
- Architecture: State Persistence Precedence (Memory vs Skills vs Hooks)
- [Bug]: cronjob tool: create action always fails with "schedule is required for create" even when parameters are provided
- codex-oauth: 'NoneType' object is not iterable in _run_codex_stream (gpt-5.5) — every turn fails non-retryably
- Docs/Config: Plugin local scope enablement ambiguity
- [Bug]: CLI freezes after using /new command (WSL)
- Profile Codex auth can ignore global credential pool when local state is stale
- [workflow-engine] CRITICAL: variable substitution crashes on regex metachars in user input
- [workflow-engine] HIGH: loop and bash nodes leak subprocesses on timeout
- [workflow-engine] HIGH: README documents config env vars the engine never reads
- [workflow-engine] MEDIUM: workflow_run rate limit bypassable via concurrent calls (TOCTOU)
- [workflow-engine] chore: manifest gaps, side-effectful register(), dead code, unauth kanban dispatch
- [mcp_lazy] HIGH: synthetic mcp_server_<name> stub collides with a real MCP server named 'server'
- [mcp_lazy] HIGH: promote_server eager flag documented but never persisted
- [mcp_lazy] MEDIUM: _prev_mode dict leaks and goes stale; not cleared on session evict
- [mcp_lazy] MEDIUM: get_pool has unlocked check-then-set race on pool creation
- [mcp_lazy] MEDIUM: pre_tool_call gives no guidance for unpromoted server-stub calls
- [mcp_lazy] chore: undeclared pre_tool_call hook, nonexistent 'mcp_load_tools' name in docs, missing tests
- [a2a_fleet] CRITICAL: server never auto-starts — register() runs outside an event loop
- [a2a_fleet] CRITICAL: auth_required defaults to false on a cross-machine surface
- [a2a_fleet] HIGH: remove invented disable() hook — loader never calls it, port leaks on reload
- [a2a_fleet] HIGH: plugin.yaml missing kind / provides_tools / requires_env (token env undeclared)
- [a2a_fleet] MEDIUM: tighten wide-open CORS, anonymous /health peer leak, and peer-URL SSRF
- [a2a_fleet] MEDIUM: relocate tests to tests/plugins/ and cover sync-register + auth-default paths
- xai-oauth auxiliary client incorrectly uses Responses API (CodexAuxiliaryClient), causing 403 on compression/vision/web_extract
- [Bug]: Direct Copilot gpt-5.5 large resumes are killed by 12s Codex TTFB watchdog
- [Bug]: `hermes uninstall` does not work on Windows
- TUI: Thinking block leaks raw JSON and Σ character
- Hostinger VPS: migration Hermes Agent → Hermes WebUI impossible (tini + UID mismatch + sessions)
- /goal judge over-continues exploratory goals unless the assistant explicitly says the goal is complete
- /goal auto-continuation can be amplified by preflight compression/session split and resurrect stale task state
- Dashboard infinite reload loop in loopback mode — GET /api/auth/me returns 401 on every page load
- [Bug]: Provider/LLM switch leaves stale encrypted_content causing 400 errors on Telegram sessions
- [Bug]: Infinite reload loop / React state loop on Sessions tab (Firefox + Chrome) — repeated 401 on /api/auth/me (v0.15.0)
- show_reasoning should work independently of streaming in CLI mode
- Feature Request: Strip reasoning/<think> blocks from TTS preprocessing
- mcp add / mcp test raise NameError when mcp package not installed
- v0.14.0 dashboard breaks behind reverse proxies — two regressions
- Skills hub creates empty category directories when no skills installed
- [Bug]: Custom endpoint: ChatCompletions returns content, but Hermes treats response as empty (v0.14.0)
- fix: atomic_replace() fails with EXDEV when HERMES_HOME is a cross-filesystem symlink
- fix(gateway): Feishu session cancellation orphans session guard, permanently blocking messages
- Custom endpoint pricing can overestimate Crof qwen3.5-9b cost by 1,000,000x
- MCP OAuth callback: module-level port global causes port collisions and structural weaknesses vs upstream
- Bug: send_message tool bypasses validate_media_delivery_path security check
- Proposal: Add Mnemosyne to official memory provider documentation
- feat(swarm): support custom verifier/synthesizer body + skills
- Template conversion failed
- Error occurred in the operation of the agent node in the workflow.
- PubSub client overrides Sentinel client when REDIS_USE_SENTINEL is enabled
- Frontend description of the Retrieval node output does not match the actual output
- JSON type input var raise Intenal server error
- cannot extract elements from a scalar
- 负载均衡 为模型配置多组凭据,并自动调用,此功能无法选择
- add models is error
- panic: could not create filter
- Persist partially generated messages when /chat-messages/:task_id/stop is called
- MCP server connection fails with 403 — request never leaves Dify (SSRF proxy suspected)
- Support durable async execution backends for long-running workflow steps
- [Xiaomi MiMo] Credentials validation fails with 400 "Not supported model mimo-v2-flash" when using Token Plan endpoint (v0.0.7)
- After clicking preview on a parent-child segmented knowledge base, it shows 0 chunks
- Retrieval score differs between UI upload (.docx) and API upload (.txt) despite identical chunk content and embedding model
- gemini cli crash again
- Xbox gift card code damage
- Damage caused by the gemini cli crash
- ioctl(2) failed, EBADF (Bad File Descriptor)
- Feat: Support Bun as an alternative runtime/package manager for updates and extensions
- fatal error again!!!!
- ioctl error
- Critical Crash: ioctl(2) failed, EBADF in ShellExecutionService.resizePty
- ioctl(2) failed, EBADF
- v0.44.0 Regression: Critical crash with ioctl(2) failed, EBADF during PTY resize
- Crash on startup: ioctl(2) failed, EBADF in UnixTerminal.resize
- Crash: `ioctl(2) failed, EBADF` in `node-pty` during PTY resize on macOS
- Gemini CLI crashes with `ioctl(2) failed, EBADF` in `node-pty` during `resizePty`
- Remote Role
- ERROR ioctl(2) failed, EBADF /home/mich
- RangeError: Maximum call stack size exceeded
- EBADF Error during folder creationg broke session and terminal glitches
- MAIP / Gargoub Project - Mediterania - North Coast
- Gemini cli crash again in this morning
- ERROR ioctl(2) failed, EBADF
- Verified node install fails — Checksum verification failed (Cloud)
- The extended debugging key did not arrive during registration.
- CollaborationPane unmounts collaboration store on single-user instances, causing permanent "No network connection" state
- Workflow cannot be saved when the name contains "->" (Potentially malicious string)
- automation does not work and does not show an error
- Raj Ai Automation
- Default Data Loader: DOMMatrix is not defined error
- Feature: Per-node execution timestamp overlay on canvas during workflow run
- AI Agent + Vertex `gemini-3.5-flash`: 400 "missing thought_signature" on sequential multi-turn tool calls (post-#24982)
- PDF Loader in Pinecone Vector Store fails due to pdf-parse version conflict (v2 not supported)
- emailReadImap: add UID deduplication, batch size cap, and numeric uid enforcement
- Manual node execution fails with "Could not find a node" when autosave is disabled (N8N_WORKFLOWS_AUTOSAVE_DISABLED)
- Schedule Trigger stopped firing — workflow Published & active, manual executions succeed, no automated fires for 2+ hours
- [MCP SDK] create_workflow_from_code intermittently returns HTTP 500, often as a false negative (workflow persists anyway, causing duplicates on retry)
- Credential-load wedge: workflows using googleApi/jwtAuth credentials silently fail to execute after key rotation
- Google Sheets Trigger every minute is not working manual Execute is working sent email
- [BUG] Plugin marketplace MCP connector remains stuck "still connecting" when mcp-remote requires OAuth
- [redacted at user request]
- Opus 4.7 behavioral regression: loaded instruction-following discipline degraded in recent Claude Code/Cowork updates
- [BUG] Tailscale via Homebrew CLI + Mac App Store GUI, both Macs on macOS, Cowork blocked by VPN detector despite Tailscale being a mesh VPN with no traffic interception
- stopShellPty on tab switch kills active sessions (exit 143) — regression in May 27 build
- [BUG] Long URLs are broken into multiple lines and become unclickable in terminal output
- [BUG] claude rm/stop/reap SIGKILLs background session tree without SIGTERM grace, orphaning git index.lock and similar
- [BUG] Default git workflow in the system prompt was pushed without context or consent
- [MODEL] Inconsistent output quality / Ignoring instructions (overfitting and inappropriate repetition of Korean vocabulary)
- You've hit your weekly limit · resets May 31 at 5pm (Asia/Shanghai)
- Paid yearly subscription silently downgraded to Free with no user action
- [Regression v2.1.153] Plugin bash hooks fail with "echo: write error: Permission denied" on Windows (claude-mem, shell: "bash")
- [BUG] Connector toggles in conversation are not clickable — must click text label instead
- [remote-control] Input from mobile app/browser not reaching host session — output works fine
- Model fails to read/reference CLAUDE.md contents despite being loaded in context
- [BUG] Claude Desktop reinstall destroys Code chat history (transcripts + Recents) while regular Chat history, project files, and memory all survive
- Bypass mode clamps to Accept Edits even with the toggle ON (Claude Code Desktop 1.9255.2 / CC 2.1.149)
- [BUG] TUI input freezes randomly mid-typing — entire prompt becomes unresponsive for minutes
- [BUG] Cowork downloads Linux ELF binary instead of macOS binary on macOS Sonoma 14.8.7 — exit code 132 (SIGILL) on every session
- [Feature Request] Persistent project memory — sessions forget everything on close, forcing users to keep many sessions open
- [Bug] Thread context stale after sleep/resume, returns outdated date and calendar data
- [FEATURE] Add context window usage indicator and warning before auto-compaction
- [BUG] Dictation error: Invalid character in header content ["x-config-keyterms"] on Windows
- [Bug] Anthropic API Error: Server rate limiting despite normal usage
- Does delegating work to `claude -p` subprocesses reduce context accumulation in the parent session?
- [BUG] Claude Code hangs on M1 Mac when terminal says "opening browser to sign in" and browser opens
- [BUG] Claude_Preview MCP preview_start spawns dev server with main-repo cwd instead of session's worktree cwd
- [Bug] Anthropic API Error: Server rate limiting during request execution
- [Bug] Anthropic API Error: Server rate limiting on concurrent requests
- [Bug] Ultraplan ready notification fires before cloud agent completes execution
- [BUG] API 500 ERROR ALL THROUGHOUT THE DAY
- [BUG] Cowork: Live Artifacts folder path changed in 1.9255.2, no automatic migration from Documents\Claude\Artifacts
- [Bug] Auto-compact never triggers despite statusline reporting "100% context used" (v2.1.153, Max sub, 200K mode)
- [BUG] [Desktop / macOS] 'Open in → New Window' detached session: font renders smaller than main, no per-window controls, Cmd+/Cmd- keystrokes routed to main window instead
- Feature request: option to switch between classic and new minimal UI
- [Feature Request] Show timestamps for each message
- [BUG] Terminal corruption when permission prompt appears while navigating Agent Teams agent selection menu
- [FEATURE] Allow users to customize the background color of the Claude desktop app beyond the current light/dark theme presets.
- [BUG] Statusline not displaying on Windows [fixed]
- Background agent UI Stop button is a no-op for stuck agents — process keeps consuming tokens
- Background agents silently die on session pause/resume — no completion notification, no work recovery
- Add option to hide email address from welcome banner
- [BUG] SSH Remote: `projects` field in remote ~/.claude.json becomes null after desktop restart — jsonl files intact, UI shows 'No messages yet' for every session
- [Bug] Claude Code not applying fixes despite claiming to complete tasks
- billing is unfair and poorly documented
- [BUG] Claude Code on the web: declared plugins inactive on first session, require restart to fully load
- [BUG] Restore from archive deleted sessions instead of restoring them
- [BUG] M365 connector fails with AADSTS50011 in Cowork — localhost vs 127.0.0.1 redirect URI mismatch
- claude agents: workflow slash-commands missing from dispatch-input completion (regression-adjacent to #61424)
- Claude Desktop's Info.plist missing TCC usage strings, blocks all EventKit-based MCP servers
- False-positive safety blocks on self-administered governance amendments — request for owner-authority mode for verified professional users
- [BUG] Stop pushing "AUTO"-mode
- [DOCS] Plugin marketplace guide omits `skipLfs` option for git-based sources
- [DOCS] MCP docs omit combined startup notification for MCP server and connector authentication
- [DOCS] Agent view docs omit macOS Privacy & Security identity for background agents
- [DOCS] Npm update docs do not explain release-channel behavior for `claude update`
- [DOCS] Agent SDK docs omit `subagent_type: "claude"` worktree and output persistence behavior
- [DOCS] Background session docs omit `$CLAUDE_JOB_DIR` temp-file behavior
- [FR] mask env-var values in 'claude mcp get <server>' output
- [FR] subagent worktrees should not inherit stale local 'user.email' from prior dispatches
- [BUG] Windows: Grep tool leaks rg.exe + conhost.exe processes (~2000 zombies / 14 GB RAM in long sessions)
- [BUG] Stats dashboard "Peak hour" appears off by one hour
- [BUG] Diff highlight (teal SGR background) bleeds past changed text in 2.1.150–2.1.153
- [FEATURE] confirm before deleting session
- Plugin PostToolUse hooks still silently skip in Claude Desktop / Cowork (re-filing closed #51904)
- /code-review skill: silent fallback to main...HEAD reviews other people's commits, and JSON-only output is hard to read
- Monitor tool doesn't source the shell snapshot like Bash does; PATH-dependent tools (jq, sleep, etc.) fail in Monitor commands on macOS/Nix
- [Bug] Long input lines truncated with ellipsis while typing instead of wrapping in terminal UI
- [FEATURE] VS Code extension: Render submitted user messages as Markdown in chat
- OSC 52 copy from Claude TUI doesn't reach clipboard inside tmux (regression in 2.1.146–2.1.153)
- [BUG] RemoteTrigger create/update returns HTTP 400 with circular error: "event_type is required" / "unknown field event_type"
- [BUG] Option to hide or minimize the built-in "status footer" (multi-line debug/cost panel) [re-raise of #31475]
- [Bug] Feedback submissions being closed without review or action
- [FEATURE] Word-jump cursor navigation in Chat input (option+arrow / bindable actions)
- [FEATURE] ! shell mode: filesystem tab completion
- [BUG] API Error: Usage credits required for 1M context
- claude agents: OSC 52 clipboard emission broken in tmux (regression in 2.1.146–2.1.153)
- CLI crashes on macOS 15 M3 - exit code 1
- [FEATURE] Support Cmd+V image paste from clipboard
- [FEATURE] Enhance claude.ai M365 connector to support MS Planner
- [BUG] Slash command autocomplete hijacks pasted absolute file paths starting with /
- PreToolUse hook `if` filter false-positives on complex Bash commands
- [BUG] Diff panel hangs/whites out
- Feature Request: Support drag-and-drop for binary documents (.wps, .doc, .docx, .xlsx, .pdf) in VS Code extension
- [BUG] activation of 1M context in VSCode
- [FEATURE] Support i18n / language localization for built-in slash command outputs
- Ctrl+V para colar imagens deixou de funcionar no CLI (Windows, PowerShell)
- [FEATURE] Please add Norwegian (Bokmål/Nynorsk) language support to the Claude Code interface
- [BUG] OTel log events (claude_code.user_prompt, api_request_body, tool_decision, hook_execution_complete) emitted with empty trace_id/span_id while sibling spans correlate correctly
- [BUG] Cowork crashes on every message, no VM logs generated, missing AppData\Roaming\Claude
- [FEATURE] first-class session handoff + per-session token budgets for unattended runs
- [FEATURE] Smart paste: convert clipboard code to file reference chips (like Cursor)
- [Feature Request] Restore chat pin functionality to title chat submenu
- [BUG] SIGILL issues with version 2.1.153
- [BUG] Cowork plugin upload fails with generic "Plugin validation failed" when a `description` field in any SKILL.md frontmatter contains angle brackets (`<…>`)
- [BUG] Desktop App 2.1.144+: startup scanner deletes cliSessionId from claude-code-sessions local files on every launch — session not found on disk
- [Feature Request] Add keyboard shortcut to copy last message with proper formatting
- [MODEL] Opus 4.7 not 1M
- Allow naming/renaming background agents in `claude agents` view
- Stale worktrees in .claude/worktrees/ are never cleaned up, consuming massive disk space
- Agent worktrees are never cleaned up, silently consuming disk space
- Subagent worktrees not auto-cleaned when reviewer writes scratch files
- [Bug] Skill initialization hangs for extended duration in Plan Mode
- Claude Desktop writes malformed registry Run entry (nested escaped quotes) - crashes Windows Task Manager and other Run-key parsers
- IME candidate window shows at bottom-right corner instead of caret position (Windows CMD)
- [BUG] Pressing 'Escape' doesn't close the /BTW conversation when the main conversation is asking for approval
- [BUG] Opus 4.7 (1M) intermittently emits empty-string values for tool_use.input fields, killing the session
- FleetView agent UI shows "running" with incrementing elapsed time after agent has returned
- /doctor flags context-scoped cmd+c binding as macOS conflict (false positive)
- [BUG] Text Rendering in Elvish
- Desktop app: Bypass Permissions mode flips to Accept Edits on first prompt (M5 / macOS 26.5)
- [Workaround] Date-Weekday Verification Hook — Prevents Claude from writing wrong weekdays
- [BUG] Claude Code create c:/memfs directory without asking me.
- [BUG] Claude Code's Bash execution waits forever with no processes running
- [BUG] usage stays stuck waiting for 5 hr limit after upgrading to premium seat in team plan
- [Workflow tool] resume cache is unreachable for nontrivial workflows because LLM dispatchers can't transcribe args byte-exactly
- Code review (Preview): "Add a repository" shows no results for private GitHub org repos
- [BUG] /context commands blows up context
- [Feature Request] Add precache expiry hook to enable proactive compaction before token eviction
- [BUG] Context indicator shows 0% at session start despite ~20K+ tokens already loaded
- [Feature Request] Add semantic search for --resume session history
- [Feature Request] Add session search, tagging, and filtering capabilities
- [BUG] Cowork Dispatch reports "desktop not available" on Windows 11 while standard Cowork works normally
- [Bug] Claude Code provides incorrect suggestions with high confidence despite errors
- defaultMode: acceptEdits silently overrides per-path permissions.ask rules for Write/Edit
- [FEATUR configurable tip interval (e.g. tipIntervalSeconds: 30 in settings)E]
- Plugin marketplace fails to load: schema rejects 'displayName' key (v2.1.153)
- claude agents: in-session copy uses broken OSC 52 path while overview correctly uses tmux buffer
- [BUG] Plugin agent descriptions (and custom agents) load unconditionally into context — no parity with disable-model-invocation for skills
- Crashed ultrareview consumed a free credit despite producing zero findings
- [Bug] Character rendering issue - invisible or missing text display
- [BUG] Cowork: processo Claude Code encerra com código 3 — .claude.json não contém token de autenticação (Windows 11 25H2)
- [BUG] 2.1.153 silently discards tools/list response from rmcp 0.12.0 HTTP MCP server (works in 2.1.152, wire-identical handshake)
- VS Code extension: option to auto-resume last session when reopening a workspace folder
- [Bug] Conversation continuation failure
- [BUG] Cowork crashes every time I start a new chat or attempt to continue an existing one in any project. The error displayed is: "Claude Code è andato in crash
- [Bug] Unannounced quota changes
- Native update/install fails with 'socket connection was closed unexpectedly' behind proxy — undici TLS incompatibility
- [BUG] Session name reverting after manual change
- [BUG] 非正常思考,上下文过长时,一直显示思考,点击interrupt按钮失效
- Honor `tools:` frontmatter when an agent is invoked via `@mention` — strip `Task` only when the agent did not declare it
- macOS TCC popup still recurring on v2.1.153 — "2.1.153" would like to access data from other apps
- Claude Code leaks pty handles — exhausts pseudo-terminals on macOS after long session
- [Bug] Agent fails to execute or respond to user input
- [BUG] Persistent "Expecting value: line 1 column 1 (char 0)" JSON parse error after tool execution
- [Feature Request] Implement proactive unit test coverage recommendations for recurring bugs
- VS Code panel lacks status line + terminal lacks image paste in Codespaces, forcing a tradeoff
- `/powerup` only shows ~10 lessons — allow viewing the full catalog
- [Bug] Context contamination after auto-compact with unrelated email draft of Tejo/Sado Basin
- [Bug] VSCode terminal output displays corrupted text with garbled symbols
- [Feature Request] Add LaTeX/KaTeX math rendering to TUI
- [Bug] Sub-agent PR review results not validated by orchestrating agent
- Subagents on Pro 1M tier: trivial probes pass, real workloads fail at first tool call (probe-vs-workload divergence)
- Path-scoped rules and subdirectory CLAUDE.md not loaded when creating new files matching the pattern
- AskUserQuestion: cancelling during extended thinking poisons the whole session with 400 'thinking blocks cannot be modified' (2.1.153); concurrent prompts overwrite each other
- Ideas Missing from Claude Cowork Menu (Windows)
- [BUG_BOUNTY_SAFE_POC_2026] Prompt Injection RCE Test - Command Execution Proof
- [BUG] Cowork scheduled task: execution history row not showing after successful run
- Resuming an extended-thinking session fails permanently with 400 "thinking blocks cannot be modified" (transcript stores thinking text as empty but keeps signature)
- [Bug] Plugin-registered CwdChanged and FileChanged hooks don't fire (settings.json works) — v2.1.153
- Auto-archive on PR merge / branch delete — clarify autoArchiveSessions semantics or add dedicated opt-out
- `claude mcp add` echoes Authorization header value verbatim to stdout, leaks bearer tokens to terminal and session transcripts
- [BUG] Bug report — /insights skill, Claude Code The /insights skill outputs a malformed file path.
- Plugin slash commands render with '*'-inline format instead of two-column, despite matching official plugin shape
- [Bug] Unexpected long text generation without user input or goal
- [Bug] Thinking blocks causing task progression blocked without user modification
- [BUG] (Critical!) contamination by an unknown session simirlar to the report => [Bug] Context contamination after auto-compact with unrelated email draft of Tejo/Sado Basin #63137
- [Critical] Opus 4.7 Korean output degeneration — Korean grammar itself collapses in long contexts
- [BUG] Title: Autocompact buffer persists across /clear — wastes tokens for irrelevant old context
- [Bug] Auto-Compact loses user input before processing in conversation history
- Feature: per-invocation effort parameter + runtime session-config introspection for skills
- Auto-mode classifier mislabels Azure DevOps vote -5 as "Reject" when denying PR vote actions
- [BUG] Claude Desktop and Claude Code CLI never re-register MCP tools after OAuth 2.1 handshake on a remote HTTP server
- [BUG] Workspace file tags leak across sessions
- [BUG] Ink renderer crashes on Windows 11 build 26200 (Canary) duplicate banners, terminal mode leaks, mid-operation aborts
- [BUG] Claude Code Desktop issue
- PTY master fd leak in Claude desktop app exhausts macOS kern.tty.ptmx_max after ~2-3 days
- [BUG] Claude Code — Session Management after Unexpected Interruption
- [Windows] Cowork OpenTelemetry exporter does not initialize - zero events emitted to any destination, including loopback
- [Bug] Opus 4.7: 400 `thinking blocks ... cannot be modified` on long extended-thinking sessions, triggered by history-altering events (scheduled prompts / parallel tool-call cancellation)
- [BUG] API Error: Server is temporarily limiting requests (not your usage limit) · Rate limited
- Multi-plugin custom marketplace: only first plugin registered in installed_plugins.json, skills don't load
- [BUG] Git push through the SDK's git proxy fan-outs into ~500 GitHub REST API calls, exhausting the 5,000/hour budget after a handful of pushes
- [BUG] Claude took liberties it really shouldn't with my global config
- [BUG] Agent window focus lost after navigating with arrow keys, causing scroll deadlock
- [BUG] `--model` flag silently ignored in interactive sessions (works in `--print` only)
- [BUG] Dispatch permanently shows "desktop appears offline" on Windows 11 - never worked on first use
- feat: support per-command enableWeakerNetworkIsolation as safer alternative to dangerouslyDisableSandbox
- /code-review outputs a raw JSON array instead of readable findings
- [BUG] Cowork — Additional allowed domains ignored on Team plan; same domain works on Pro plan
- Haiku
- [Bug] False positive blocking beneficial outcomes in tool execution
- 3P Bedrock SSO: credentials silently expire without triggering re-auth on day 2+
- CLAUDE_AUTOCOMPACT_PCT_OVERRIDE in settings.json env block silently ignored by autocompact logic
- Auto-compaction deletes main session JSONL before verifying summary completion, causing data loss
- [Bug] Claude Code not executing stated actions or producing expected results
- [FEATURE] Deferred Messages — Queue Input for End of Turn
- [BUG] Up/Down arrows in input box navigate history instead of moving cursor — regression in 2.1.149+
- Cancelling a parallel tool-call batch corrupts thinking blocks -> 400 "thinking blocks cannot be modified" permanently wedges the session
- Claude Code caused data loss, then contradicted itself about recovery (two incidents, one session)
- [Bug] Unclear error messages from Claude Code CLI
- [Bug] Agent tool rejecting due to context size limit exceeded
- claude agents: daemon and bg-spare processes spin at ~100% CPU when idle
- [BUG] Compaction fails with "context window limit" error even when context usage is low (e.g., 20%) — regression in v2.1.153
- Remote Control entitlement lost after May 27-28 incident — `Error: Remote Control is not yet enabled for your account` on active Max subscription
- PreToolUse hook exit code 2 does not block Write tool
- [Bug] Thinking blocks in latest assistant message are immutable
- GUI: dispatch file:// and custom-scheme clicks to OS shell handler
- Show current model in statusLine by default
- [Bug] Agent console becomes unresponsive to keyboard input after multiple agents initialized
- [FEATURE] PreToolUse hooks should have a way of updating the environment
- [Bug] Unable to start or use Claude Code CLI
- [BUG] Repository not visible in Claude Code web repo picker
- Session permanently wedged on 400 "thinking blocks cannot be modified" after parallel tool_results
- [Bug] @ autocomplete loses sibling repos after a file edit in multi-repo workspace
- Unclear error message when creating sub-agent without authentication
- [Bug] Anthropic API errors causing frequent failures and high token usage
- [BUG] @ mention file picker only shows packages, not individual files (desktop app - Code tab)
- [Bug] TUI panel footer remains sticky and consumes excessive terminal space
- PR-status polling exhausts GitHub GraphQL rate limit on repos with many open PRs
- [BUG] Windows: welcome panel not shown in some project folders (2.1.153)
- [Bug] Anthropic API Error: thinking blocks corrupted during context compaction with extended thinking enabled
- API 400 "thinking blocks cannot be modified" permanently bricks session during agent activation (interleaved thinking + tool use)
- Right-click Copy copies the whole message instead of the selection; pasted text retains dark background
- Mid-session model switch corrupts conversation when extended thinking is enabled (API 400: 'thinking blocks cannot be modified')
- [BUG] Markdown file links in chat output do not open files when clicked (VS Code extension)
- Stuck retry loop: `400 thinking blocks cannot be modified` on large interleaved-thinking turns using AskUserQuestion
- [FEATURE] Prompt user for approval before auto-compaction proceeds
- Custom MCP connectors not attachable to scheduled routines — no UUID discovery path
- [BUG] Claude in Chrome — Navigation blocked for teams.cloud.microsoft and outlook.cloud.microsoft after Microsoft domain migration**
- [BUG] Claude Desktop — Personal plugins panel renders list but is entirely non-interactive (macOS, v1.9255.2)
- [Bug] error when using Workflows
- [BUG] Persistent "update available" notification despite being on latest version
- [BUG] Sweep Agent from /code-review never completes
- [Bug] Tool calls not executing or returning results
- [FEATURE] Cloud-synced memory and settings across machines
- [Bug] Terminal UI freezes when Ctrl+O view exits during interactive prompt in plan mode
- Continuous api errors when using claude code with Opus 4.7 with thinking on low
- [Feature Request] Add support for installing and using previous Claude Code versions
- [Bug] Extended Thinking: Summarized thinking blocks fail signature validation when resent to API
- [Bug] Anthropic API Error: 'thinking' blocks cannot be modified
- [Bug] Anthropic API Error: Thinking blocks cannot be modified with extended thinking mode
- Feature request: Lazy/on-demand MCP server connections
- [Bug] Tool Arguments Parsed as String Instead of Object
- [Bug] Anthropic API Error: Insufficient context provided
- [Bug] Claude Opus occasionally uses moskovian(russian) orthography instead of Ukrainian in system-prompted responses
- Opus 4.8: backgrounded task completions (subagents AND Bash) crash with 400 "thinking blocks cannot be modified"
- [Bug] Opus 4.7 fabricates stable preferences ("my default") to rationalize arbitrary choices when challenged
- [Bug] Unable to update Claude Code CLI
- [BUG] Desktop app: /remote-control mints link + connects bridge (main.log) but in-chat link/QR panel never renders
- Feature: sessionColor and sessionName in .claude/settings.json
- [BUG] Anthropic API error: thinking blocks
- [FEATURE] Support Remote MCPs in Cowork as in Claude Code
- [Bug] Anthropic API Error: 400 Bad Request with Redacted Thinking - 0 4.7 & 4.8
- [Bug] Anthropic API Error: Cannot modify thinking blocks from different model versions
- Interleaved thinking + multi-tool turn corrupts thinking block (text blanked, signature kept) → permanent 400 'blocks must remain as they were'
- [BUG] Mode/permission changes mid-tool-loop (effortLevel: xhigh) poisons entire session
- Session failure log: Opus 4.6 ignores its own rules for an entire session
- [BUG] "400 Guardrail was enabled" error when using Claude Opus 4.8 with AWS Bedrock
- [Feature Request] Add subagent approach selection option to avoid accidental feedback
- Persistent 400 'thinking blocks in the latest assistant message cannot be modified' — interleaved thinking persisted with empty text + signature bricks sessions
- [BUG] DesktopvsApp
- [BUG] Opus 4.7 cache hit rate collapse after May 27 incident — Messages 1.1k→88.9k in 9 minutes, $630/session
- [Bug] Anthropic API Error: Invalid thinking block format
- [BUG] FUCK CLAUDE
- Opus 4.8 extended thinking: Stop hook block re-entry corrupts thinking blocks → 400
- [Bug] 4.8 Fails when accessing previous model history
- [Bug] Unintended File Modifications During Execution
- [DOCS] Model configuration docs omit lean system prompt default scope and model exceptions
- Add "Always allow globally" option to permission prompts
- Server-side model upgrade (Opus 4.7→4.8) wedges in-flight sessions with `thinking blocks cannot be modified` 400
- [DOCS] AskUserQuestion docs missing multiple-choice prompt decision threshold
- [DOCS] Agent view docs omit shell-command background session launch syntax
- [DOCS] Agent view dispatch input docs incorrectly imply `/logout` dispatches as a prompt
- [DOCS] Claude in Chrome docs omit connected-browser selection behavior
- [DOCS] Plugin docs omit `defaultEnabled: false` for opt-in plugins
- Feature Request: Customizable chat text colors for user and assistant messages
- [DOCS] `/plugin` Discover tab docs omit directory-based suggested plugin pins
- VSCode Chrome integration silently fails: 3 distinct bugs
- [DOCS] MCP stdio docs omit session environment variables
- [Bug] Anthropic API error on second request within session with Claude Opus 4.8
- Cowork emits a blank session "index" handoff on focus when a CLI session is paused awaiting input
- [DOCS] MCP docs omit `claude mcp list/get` pending-approval output for unapproved project servers
- [BUG] /compact fails with 400 error when last assistant turn contains thinking blocks
- [DOCS] `/claude-api` docs omit Opus 4.8 migration guidance
- [DOCS] Fast mode docs still recommend deprecated Opus 4.6 override variable
- [DOCS] Bash tool docs omit `$TMPDIR` consistency across sandboxed and unsandboxed commands
- [Bug] Anthropic API Error: 400 Bad Request on Extended Thinking
- [DOCS] Background session docs omit worktree-isolation behavior for spawned subagents
- Built-in mechanistic self-verification of verifiable claims (symmetric to the auto permission gate)
- [DOCS] Worktree docs do not clarify `worktree.baseRef: "head"` inside linked worktrees
- [BUG] Excessive RAM usage with multiple parallel chats (~10 sessions → 30 GB memory pressure, macOS OOM)
- [DOCS] Managed MCP policy docs omit invalid `allowedMcpServers`/`deniedMcpServers` entry behavior
- [DOCS] Effort docs omit `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` unsupported-model behavior
- Regression (2.1.147–2.1.150?): resuming an extended-thinking session after a CC update/model-switch → unrecoverable 400, session bricked
- [DOCS] Windows updater docs omit `claude.exe` in-use recovery guidance
- [DOCS] VS Code auto mode docs still tie mode-picker visibility to bypass-permissions setting
- [DOCS] MCP docs omit `/mcp` tool list and detail rendering behavior
- [DOCS] Fine-grained tool streaming docs still describe provider opt-in behavior
- bypassPermissions: session startup reads flat pref, GUI toggle writes per-account pref — they never sync
- [BUG] Claude Desktop Code tab causes disk write limit violation — 8.5GB in 11 min, macOS kills app (M5, v1.9659.1)
- Ultrareview v2.1.96: docs describe /tasks command + claude ultrareview --json subcommand that don't exist; findings hard to read after completion
- I'd be happy to help create a GitHub issue title, but I don't see the error message in your message. Could you please share the specific error you're encountering? That way I can generate an accurate and descriptive issue title for you.
- [BUG] Claude in Chrome `file_upload` rejects all scheduled-task sessions with misleading error (real cause: INVALID_SESSION)
- Extended thinking: signed thinking block 'cannot be modified' (400) permanently wedges session
- RTL text support for Hebrew (and Arabic) in Claude Code
- [Bug] Random errors occurring across multiple operations