[BUG] Lead agent crashes with "toolUseContext.getAppState is not a function" when a teammate requests permission (regression in 2.1.93–2.1.112)

Resolved 💬 3 comments Opened Apr 17, 2026 by AhmadMasry Closed Apr 18, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

When running an agent team in tmux/iTerm2 split-pane mode, the
lead agent crashes the moment a teammate requests a tool
permission. The permission prompt never renders — instead the lead
throws:

ERROR H.toolUseContext.getAppState is not a function.
(In 'H.toolUseContext.getAppState()',
 'H.toolUseContext.getAppState' is undefined)

Stack trace points into the permission-prompt telemetry hook around
cli.js:8231 — specifically the useEffect in function By that
reads H.toolUseContext.getAppState().toolPermissionContext.mode
when the prompt component mounts. The toolUseContext object is
present but its getAppState method is undefined, consistent with
the context being rehydrated from the filesystem mailbox across
processes (function references lost during serialization).

100% reproducible on 2.1.112 — crashes every single time a teammate
hits any permission prompt.

What Should Happen?

The lead should render the teammate's permission prompt so it can
be approved or denied, as described in the agent-teams docs
("Teammate permission requests bubble up to the lead").

Error Messages/Logs

ERROR H.toolUseContext.getAppState is not a
       function. (In 'H.toolUseContext.getAppState()',
        'H.toolUseContext.getAppState' is undefined)


 /$bunfs/root/src/entrypoints/cli.js:8231:15642

 8228 ${w.map((uH)=>{let
 :   yH=TH[uH.question];if(yH)return`-
     "${uH.question}"
 8229:   Answer: ${yH}`;return`- "${uH.question}"
 8230:   (No answer provided)`}).join(`
 8231 `)}`;if(G)Q("tengu_ask_user_question_finish_plan
 :   _interview",{source:G,questionCount:w.length,isIn
     PlanMode:n,interviewPhaseEnabled:n&&cY()});let
     oH=await xf8(g,i);K(),q.onReject(P_,oH&&oH.length
     >0?oH:void 0)},_[44]=g,_[45]=TH,_[46]=i,_[47]=n,_
     [48]=G,_[49]=K,_[50]=w,_[51]=q,_[52]=vH;else
     vH=_[52];let GH=vH,NH;if(_[53]!==g||_[54]!==i||_[
     55]!==n||_[56]!==G||_[57]!==K||_[58]!==YH||_[59]!
     ==w||_[60]!==q)NH=async(D_)=>{if(G)Q("tengu_ask_u
     ser_question_accepted",{source:G,questionCount:w.
     length,answerCount:Object.keys(D_).length,isInPla
     nMode:n,interviewPhaseEnabled:n&&cY()});let
     P_={};for(let yH of w){let eH=D_[yH.question],V_=
     YH[yH.question]?.textInputValue,QH=(eH?yH.options
     .find((v_)=>v_.label===eH):void 0)?.preview;if(QH
     ||V_?.trim())P_[yH.question]={...QH&&{preview:QH}
     ,...V_?.trim()&&{notes:V_.trim()}}}let
     oH={...q.input,answers:D_,...Object.keys(P_).leng
     th>0&&{annotations:P_}},uH=await
     xf8(g,i);K(),q.onAllow(oH,[],void
     0,uH&&uH.length>0?uH:void
     0)},_[53]=g,_[54]=i,_[55]=n,_[56]=G,_[57]=K,_[58]
     =YH,_[59]=w,_[60]=q,_[61]=NH;else NH=_[61];let
     hH=NH,lH;if(_[62]!==TH||_[63]!==v||_[64]!==w.leng
     th||_[65]!==_H||_[66]!==hH)lH=(D_,P_,oH,uH)=>{let
      yH=uH===void 0?!0:uH,eH,V_=Array.isArray(P_);if(
     V_)eH=P_.join(", ");else if(oH)eH=Object.values(v
     [D_]??{}).filter(bI5).length>0?`${oH} (Image
     attached)`:oH;else if(P_==="__other__")eH=Object.
     values(v[D_]??{}).filter(CI5).length>0?"(Image
     attached)":P_;else eH=P_;let
     bH=w.length===1;if(!V_&&bH&&yH){let
     QH={...TH,[D_]:eH};hH(QH).catch(zH);return}_H(D_,
     eH,yH)},_[62]=TH,_[63]=v,_[64]=w.length,_[65]=_H,
     _[66]=hH,_[67]=lH;else lH=_[67];let
     X_=lH,W_;if(_[68]!==TH||_[69]!==ZH||_[70]!==hH)W_
     =function(P_){if(P_==="cancel"){ZH();return}if(P_
     ==="submit")hH(TH).catch(zH)},_[68]=TH,_[69]=ZH,_
     [70]=hH,_[71]=W_;else W_=_[71];let
     SH=W_,gH=JH?(w?.length||1)-1:w?.length||0,tH;if(_
     [72]!==r||_[73]!==HH)tH=()=>{if(r>0)HH()},_[72]=r
     ,_[73]=HH,_[74]=tH;else tH=_[74];let y_=tH,T_;if(
     _[75]!==r||_[76]!==gH||_[77]!==wH)T_=()=>{if(r<gH
     )wH()},_[75]=r,_[76]=gH,_[77]=wH,_[78]=T_;else
     T_=_[78];let h_=T_,rH;if(_[79]!==h_||_[80]!==y_)r
     H={"tabs:previous":y_,"tabs:next":h_},_[79]=h_,_[
     80]=y_,_[81]=rH;else rH=_[81];let
     M_=!(AH&&!KH),UH;if(_[82]!==M_)UH={context:"Tabs"
     ,isActive:M_},_[82]=M_,_[83]=UH;else
     UH=_[83];if(C8(rH,UH),t){let
     D_;if(_[84]!==t.question||_[85]!==u)D_=(yH,eH,V_,
     bH,QH)=>u(t.question,yH,eH,V_,bH,QH),_[84]=t.ques
     tion,_[85]=u,_[86]=D_;else D_=_[86];let
     P_;if(_[87]!==t.question||_[88]!==v)P_=v[t.questi
     on]??{},_[87]=t.question,_[88]=v,_[89]=P_;else
     P_=_[89];let oH;if(_[90]!==t.question)oH=(yH)=>p(
     t.question,yH),_[90]=t.question,_[91]=oH;else
     oH=_[91];let uH;if(_[92]!==TH||_[93]!==t||_[94]!=
     =r||_[95]!==R||_[96]!==W||_[97]!==ZH||_[98]!==GH|
     |_[99]!==X_||_[100]!==LH||_[101]!==h_||_[102]!==y
     _||_[103]!==JH||_[104]!==wH||_[105]!==OH||_[106]!
     ==YH||_[107]!==w||_[108]!==o||_[109]!==D_||_[110]
     !==P_||_[111]!==oH||_[112]!==a)uH=EP.default.crea
     teElement(EP.default.Fragment,null,EP.default.cre
     ateElement(hQ7,{question:t,questions:w,currentQue
     stionIndex:r,answers:TH,questionStates:YH,hideSub
     mitTab:JH,minContentHeight:R,minContentWidth:W,pl
     anFilePath:OH,onUpdateQuestionState:a,onAnswer:X_
     ,onTextInputFocus:o,onCancel:ZH,onSubmit:wH,onTab
     Prev:y_,onTabNext:h_,onRespondToClaude:LH,onFinis
     hPlanInterview:GH,onImagePaste:D_,pastedContents:
     P_,onRemoveImage:oH})),_[92]=TH,_[93]=t,_[94]=r,_
     [95]=R,_[96]=W,_[97]=ZH,_[98]=GH,_[99]=X_,_[100]=
     LH,_[101]=h_,_[102]=y_,_[103]=JH,_[104]=wH,_[105]
     =OH,_[106]=YH,_[107]=w,_[108]=o,_[109]=D_,_[110]=
     P_,_[111]=oH,_[112]=a,_[113]=uH;else
     uH=_[113];return uH}if(KH){let
     D_;if(_[114]!==jH||_[115]!==TH||_[116]!==r||_[117
     ]!==R||_[118]!==SH||_[119]!==w||_[120]!==q.permis
     sionResult)D_=EP.default.createElement(EP.default
     .Fragment,null,EP.default.createElement(SQ7,{ques
     tions:w,currentQuestionIndex:r,answers:TH,allQues
     tionsAnswered:jH,permissionResult:q.permissionRes
     ult,minContentHeight:R,onFinalResponse:SH})),_[11
     4]=jH,_[115]=TH,_[116]=r,_[117]=R,_[118]=SH,_[119
     ]=w,_[120]=q.permissionResult,_[121]=D_;else
     D_=_[121];return D_}return null}function
     CI5(H){return H.type==="image"}function
     bI5(H){return H.type==="image"}function
     II5(H){return
     H.toolPermissionContext.mode}function
     xI5(H){return H.type==="image"}function
     uI5(H){return Object.values(H)}function
     mI5(H){return H.preview}async function
     xf8(H,_){if(H.length===0)return;return
     Promise.all(H.map(async(q)=>{let{block:K}=await
     ON({data:q.content,mediaType:q.mediaType,limits:_
     });return K}))}var
     G_6,EP,IQ7=12,VI5=40,SI5=15;var uQ7=Z(()=>{fy();T
     N();b9();oK();BH();m8();E_();V8();$i_();BfH();WI(
     );qmH();d_();L9_();bk();d1H();rj();NQ7();EQ7();bQ
     7();G_6=x(iH(),1),EP=x(MH(),1)});function
     mQ7(H){for(let{pattern:_,warning:q}of
     pI5)if(_.test(H))return q;return null}var pI5;var
      pQ7=Z(()=>{pI5=[{pattern:/\bgit\s+reset\s+--hard
     \b/,warning:"Note: may discard uncommitted
     changes"},{pattern:/\bgit\s+push\b[^;&|\n]*[ \t](
     --force|--force-with-lease|-f)\b/,warning:"Note:
     may overwrite remote history"},{pattern:/\bgit\s+
     clean\b(?![^;&|\n]*(?:-[a-zA-Z]*n|--dry-run))[^;&
     |\n]*-[a-zA-Z]*f/,warning:"Note: may permanently
     delete untracked
     files"},{pattern:/\bgit\s+checkout\s+(--\s+)?\.[
     \t]*($|[;&|\n])/,warning:"Note: may discard all
     working tree
     changes"},{pattern:/\bgit\s+restore\s+(--\s+)?\.[
      \t]*($|[;&|\n])/,warning:"Note: may discard all
     working tree changes"},{pattern:/\bgit\s+stash[
     \t]+(drop|clear)\b/,warning:"Note: may
     permanently remove stashed
     changes"},{pattern:/\bgit\s+branch\s+(-D[
     \t]|--delete\s+--force|--force\s+--delete)\b/,war
     ning:"Note: may force-delete a
     branch"},{pattern:/\bgit\s+(commit|push|merge)\b[
     ^;&|\n]*--no-verify\b/,warning:"Note: may skip
     safety hooks"},{pattern:/\bgit\s+commit\b[^;&|\n]
     *--amend\b/,warning:"Note: may rewrite the last
     commit"},{pattern:/(^|[;&|\n]\s*)rm\s+-[a-zA-Z]*[
     rR][a-zA-Z]*f|(^|[;&|\n]\s*)rm\s+-[a-zA-Z]*f[a-zA
     -Z]*[rR]/,warning:"Note: may recursively
     force-remove files"},{pattern:/(^|[;&|\n]\s*)rm\s
     +-[a-zA-Z]*[rR]/,warning:"Note: may recursively
     remove files"},{pattern:/(^|[;&|\n]\s*)rm\s+-[a-z
     A-Z]*f/,warning:"Note: may force-remove
     files"},{pattern:/\b(DROP|TRUNCATE)\s+(TABLE|DATA
     BASE|SCHEMA)\b/i,warning:"Note: may drop or
     truncate database
     objects"},{pattern:/\bDELETE\s+FROM\s+\w+[
     \t]*(;|"|'|\n|$)/i,warning:"Note: may delete all
     rows from a database table"},{pattern:/\bkubectl\
     s+delete\b/,warning:"Note: may delete Kubernetes
     resources"},{pattern:/\bterraform\s+destroy\b/,wa
     rning:"Note: may destroy Terraform
     infrastructure"}]});function
     mf8(H,_){if(!_?.subcommands?.length)return!1;let
     q=H.toLowerCase();return _.subcommands.some((K)=>
     Array.isArray(K.name)?K.name.some((O)=>O.toLowerC
     ase()===q):K.name.toLowerCase()===q)}function
     BQ7(H,_,q){if(q?.options){let
     K=q.options.find((O)=>Array.isArray(O.name)?O.nam
     e.includes(H):O.name===H);if(K)return!!K.args}if(
     q?.subcommands?.length&&_&&!_.startsWith("-"))ret
     urn!mf8(_,q);return!1}function gI5(H,_){for(let
     q=0;q<H.length;q++){let K=H[q];if(!K)continue;if(
     K.startsWith("-")){if(BQ7(K,H[q+1],_))q++;continu
     e}if(!_?.subcommands?.length)return
     K;if(mf8(K,_))return K}return}async function
     Z_6(H,_,q){let K=await FI5(H,_,q),O=[H],T=!!q?.su
     bcommands?.length,$=!1;for(let
     A=0;A<_.length;A++){let
     z=_[A];if(!z||O.length>=K)break;if(z.startsWith("
     -")){if(z==="-c"&&["python","python3"].includes(H
     .toLowerCase()))break;if(q?.options){let
     w=q.options.find((Y)=>Array.isArray(Y.name)?Y.nam
     e.includes(z):Y.name===z);if(w?.args&&TmH(w.args)
     .some((Y)=>Y?.isCommand||Y?.isModule)){O.push(z);
     continue}}if(T&&!$){if(BQ7(z,_[A+1],q))A++;contin
     ue}break}if(await UI5(z,_.slice(0,A),q))break;if(
     T&&!$)$=mf8(z,q);O.push(z)}return O.join("
     ")}async function FI5(H,_,q){let
     K=gI5(_,q),O=H.toLowerCase(),T=K?`${O}
     ${K.toLowerCase()}`:O;if(jPH[T])return
     jPH[T];if(jPH[O])return jPH[O];if(!q)return
     2;if(q.options&&_.some(($)=>$?.startsWith("-")))f
     or(let $ of
     _){if(!$?.startsWith("-"))continue;let
     A=q.options.find((z)=>Array.isArray(z.name)?z.nam
     e.includes($):z.name===$);if(A?.args&&TmH(A.args)
     .some((z)=>z?.isCommand||z?.isModule))return
     3}if(K&&q.subcommands?.length){let $=K.toLowerCas
     e(),A=q.subcommands.find((z)=>Array.isArray(z.nam
     e)?z.name.some((w)=>w.toLowerCase()===$):z.name.t
     oLowerCase()===$);if(A){if(A.args){let
     z=TmH(A.args);if(z.some((w)=>w?.isCommand))return
      3;if(z.some((w)=>w?.isVariadic))return
     2}if(A.subcommands?.length)return
     4;if(!A.args)return 2;return 3}}if(q.args){let
     $=TmH(q.args);if($.some((A)=>A?.isCommand))return
     !Array.isArray(q.args)&&q.args.isCommand?2:Math.m
     in(2+$.findIndex((A)=>A?.isCommand),3);if(!q.subc
     ommands?.length){if($.some((A)=>A?.isVariadic))re
     turn 1;if($[0]&&!$[0].isOptional)return 2}}return
      q.args&&TmH(q.args).some(($)=>$?.isDangerous)?3:
     2}async function
     UI5(H,_,q){if(H.startsWith("-"))return!0;let K=H.
     lastIndexOf("."),O=K>0&&K<H.length-1&&!H.substrin
     g(K+1).includes(":"),T=H.includes("/")||O,$=BI5.s
     ome((A)=>H.startsWith(A));if(!T&&!$)return!1;if(q
     ?.options&&_.length>0&&_[_.length-1]==="-m"){let
     A=q.options.find((z)=>Array.isArray(z.name)?z.nam
     e.includes("-m"):z.name==="-m");if(A?.args&&TmH(A
     .args).some((z)=>z?.isModule))return!1}return!0}v
     ar BI5,jPH,TmH=(H)=>Array.isArray(H)?H:[H];var
     pf8=Z(()=>{BI5=["http://","https://","ftp://"],jP
     H={rg:2,"pre-commit":2,gcloud:4,"gcloud
     compute":6,"gcloud beta":6,aws:4,az:4,kubectl:3,d
     ocker:3,dotnet:3,"git push":2}});var dI5,gQ7;var
     FQ7=Z(()=>{dI5={name:"alias",description:"Create
     or list command aliases",args:{name:"definition",
     description:"Alias definition in the form name=va
     lue",isOptional:!0,isVariadic:!0}},gQ7=dI5});var
     cI5,UQ7;var
     dQ7=Z(()=>{cI5={name:"nohup",description:"Run a
     command immune to hangups",args:{name:"command",d
     escription:"Command to run with
     nohup",isCommand:!0}},UQ7=cI5});var cQ7;var
     QQ7=Z(()=>{cQ7={name:"pyright",description:"Type
     checker for Python",options:[{name:["--help","-h"
     ],description:"Show help
     message"},{name:"--version",description:"Print
     pyright version and exit"},{name:["--watch","-w"]
     ,description:"Continue to run and watch for chang
     es"},{name:["--project","-p"],description:"Use
     the configuration file at this
     location",args:{name:"FILE OR
     DIRECTORY"}},{name:"-",description:"Read file or
     directory list from
     stdin"},{name:"--createstub",description:"Create
     type stub file(s) for import",args:{name:"IMPORT"
     }},{name:["--typeshedpath","-t"],description:"Use
      typeshed type stubs at this
     location",args:{name:"DIRECTORY"}},{name:"--verif
     ytypes",description:"Verify completeness of types
      in py.typed package",args:{name:"IMPORT"}},{name
     :"--ignoreexternal",description:"Ignore external
     imports for --verifytypes"},{name:"--pythonpath",
     description:"Path to the Python
     interpreter",args:{name:"FILE"}},{name:"--pythonp
     latform",description:"Analyze for
     platform",args:{name:"PLATFORM"}},{name:"--python
     version",description:"Analyze for Python
     version",args:{name:"VERSION"}},{name:["--venvpat
     h","-v"],description:"Directory that contains
     virtual environments",args:{name:"DIRECTORY"}},{n
     ame:"--outputjson",description:"Output results in
      JSON
     format"},{name:"--verbose",description:"Emit
     verbose
     diagnostics"},{name:"--stats",description:"Print
     detailed performance
     stats"},{name:"--dependencies",description:"Emit
     import dependency information"},{name:"--level",d
     escription:"Minimum diagnostic
     level",args:{name:"LEVEL"}},{name:"--skipunannota
     ted",description:"Skip type analysis of
     unannotated
     functions"},{name:"--warnings",description:"Use
     exit code of 1 if warnings are
     reported"},{name:"--threads",description:"Use up
     to N threads to parallelize type
     checking",args:{name:"N",isOptional:!0}}],args:{n
     ame:"files",description:"Specify files or
     directories to analyze (overrides config
     file)",isVariadic:!0,isOptional:!0}}});var
     QI5,lQ7;var
     nQ7=Z(()=>{QI5={name:"sleep",description:"Delay
     for a specified amount of
     time",args:{name:"duration",description:"Duration
      to sleep (seconds or with suffix like 5s, 2m,
     1h)",isOptional:!1}},lQ7=QI5});var lI5,iQ7;var
     rQ7=Z(()=>{lI5={name:"srun",description:"Run a
     command on SLURM cluster nodes",options:[{name:["
     -n","--ntasks"],description:"Number of
     tasks",args:{name:"count",description:"Number of
     tasks to
     run"}},{name:["-N","--nodes"],description:"Number
      of nodes",args:{name:"count",description:"Number
      of nodes to allocate"}}],args:{name:"command",de
     scription:"Command to run on the
     cluster",isCommand:!0}},iQ7=lI5});var nI5,oQ7;var
      aQ7=Z(()=>{nI5={name:"time",description:"Time a
     command",args:{name:"command",description:"Comman
     d to time",isCommand:!0}},oQ7=nI5});var
     iI5,sQ7;var
     tQ7=Z(()=>{iI5={name:"timeout",description:"Run a
      command with a time limit",args:[{name:"duration
     ",description:"Duration to wait before timing out
      (e.g., 10, 5s, 2m)",isOptional:!1},{name:"comman
     d",description:"Command to
     run",isCommand:!0}]},sQ7=iI5});var Bf8;var
     eQ7=Z(()=>{FQ7();dQ7();QQ7();nQ7();rQ7();aQ7();tQ
     7();Bf8=[cQ7,sQ7,lQ7,gQ7,UQ7,oQ7,iQ7]});async
     function rI5(H){if(!H||H.includes("/")||H.include
     s("\\"))return null;if(H.includes(".."))return
     null;if(H.startsWith("-")&&H!=="-")return
     null;try{let _=await import(`@withfig/autocomplet
     e/build/${H}.js`);return
     _.default||_}catch{return null}}var $mH;var
     gf8=Z(()=>{vm();eQ7();$mH=hM(async(H)=>{return
     Bf8.find((q)=>q.name===H)||await
     rI5(H)||null},(H)=>H)});function sI5(H,_){if(!_?.
     subcommands?.length)return!1;return
     _.subcommands.some((q)=>Array.isArray(q.name)?q.n
     ame.includes(H):q.name===H)}async function
     L_6(H,_=0,q=0){if(q>2||_>10)return null;let
     K=await AB6(H);if(!K)return
     null;if(!K.commandNode)return{commandPrefix:null}
     ;let{envVars:O,commandNode:T}=K,$=WsH(T),[A,...z]
     =$;if(!A)return{commandPrefix:null};let w=await
     $mH(A),Y=aI5.has(A)||w?.args&&_l7(w.args).some((D
     )=>D?.isCommand);if(Y&&z[0]&&sI5(z[0],w))Y=!1;let
      f=Y?await tI5(A,z,_,q):await
     Z_6(A,z,w);if(f===null&&_===0&&Y)return null;let
     j=O.length?`${O.join(" ")}
     `:"";return{commandPrefix:f?j+f:null}}async
     function tI5(H,_,q,K){let O=await
     $mH(H);if(O?.args){let A=_l7(O.args).findIndex((z
     )=>z?.isCommand);if(A!==-1){let z=[H];for(let
     w=0;w<_.length&&w<=A;w++)if(w===A){let Y=await
     L_6(_.slice(w).join("
     "),q+1,K+1);if(Y?.commandPrefix)return
     z.push(...Y.commandPrefix.split(" ")),z.join("
     ");break}else if(_[w]&&!_[w].startsWith("-")&&!Hl
     7.test(_[w]))z.push(_[w])}}let
     T=_.find((A)=>!A.startsWith("-")&&!oI5.test(A)&&!
     Hl7.test(A));if(!T)return H;let $=await
     L_6(_.slice(_.indexOf(T)).join("
     "),q+1,K+1);return!$?.commandPrefix?null:`${H}
     ${$.commandPrefix}`}async function ql7(H,_){let
     q=R$(H);if(q.length<=1){let $=await L_6(H);return
      $?.commandPrefix?[$.commandPrefix]:[]}let
     K=[];for(let $ of q){let
     A=$.trim();if(_?.(A))continue;let z=await
     L_6(A);if(z?.commandPrefix)K.push(z.commandPrefix
     )}if(K.length===0)return[];let O=new Map;for(let
     $ of K){let A=$.split("
     ")[0],z=O.get(A);if(z)z.push($);else
     O.set(A,[$])}let T=[];for(let[,$]of
     O)T.push(eI5($));return T}function eI5(H){if(H.le
     ngth===0)return"";if(H.length===1)return H[0];let
      q=H[0].split(" "),K=q.length;for(let
     O=1;O<H.length;O++){let T=H[O].split(" "),$=0;whi
     le($<K&&$<T.length&&q[$]===T[$])$++;K=$}return
     q.slice(0,Math.max(1,K)).join(" ")}var
     oI5,Hl7,aI5,_l7=(H)=>Array.isArray(H)?H:[H];var
     Kl7=Z(()=>{pf8();FX();UwH();gf8();oI5=/^\d+$/,Hl7
     =/^[A-Za-z_][A-Za-z0-9_]*=/,aI5=new
     Set(["nice"])});async function
     a0(H){Q("tengu_unary_event",{event:H.event,comple
     tion_type:H.completion_type,language_name:await
     H.metadata.language_name,message_id:H.metadata.me
     ssage_id,platform:H.metadata.platform,...H.metada
     ta.hasFeedback!==void
     0&&{hasFeedback:H.metadata.hasFeedback}})}var
     AmH=Z(()=>{E_()});function By(H,_){let
     q=x8(),K=k_6.useRef(null);k_6.useEffect(()=>{if(K
     .current===H.toolUseID)return;K.current=H.toolUse
     ID,q((T)=>({...T,attribution:{...T.attribution,pe
     rmissionPromptCount:T.attribution.permissionPromp
     tCount+1}}));let
     O=H.toolUseContext.getAppState().toolPermissionCo
     ntext.mode;Q("tengu_tool_use_show_permission_requ
     est",{messageID:H.assistantMessage.message.id,too
     lName:J7(H.tool.name),isMcp:H.tool.isMcp??!1,deci
     sionReasonType:H.permissionResult.decisionReason?
     .type,sandboxEnabled:G8.isSandboxingEnabled(),per
     missionMode:O}),a0({completion_type:_.completion_
     type,event:"response",metadata:{language_name:_.l
     anguage_name,message_id:H.assistantMessage.messag
     e.id,platform:M8.platform}})},[H,_,q])}var
     k_6;var
     G3H=Z(()=>{E_();QA();hW();FX();Sf();DR();SO();V8(
     );v5();e_();AmH();k_6=x(MH(),1)});function
     Ol7(H){if(H.type==="classifier")return`${q_.bold(
     H.classifier)} classifier:
     ${H.reason}`;switch(H.type){case"rule":return`${q
     _.bold(u1(H.rule.ruleValue))} rule from ${Aj_(H.r
     ule.source)}`;case"mode":return`${kr(H.mode)}
     mode`;case"sandboxOverride":return"Requires
     permission to bypass
     sandbox";case"workingDir":return
     H.reason;case"safetyCheck":case"other":return
     H.reason;case"permissionPromptTool":return`${q_.b
     old(H.permissionPromptToolName)} permission
     prompt tool`;case"hook":return
     H.reason?`${q_.bold(H.hookName)} hook:
     ${H.reason}`:`${q_.bold(H.hookName)}
     hook`;case"asyncAgent":return
     H.reason;default:return""}}function _x5(H){let
     _=T3_.c(10),{title:q,decisionReason:K}=H,[O]=Lq()
     ,T;if(_[0]!==K||_[1]!==O)T=function(){switch(K.ty
     pe){case"subcommandResults":return
     C7.default.createElement(m,{flexDirection:"column
     "},Array.from(K.reasons.entries()).map((f)=>{let[
     j,D]=f,M=D.behavior==="allow"?i8("success",O)(sH.
     tick):i8("error",O)(sH.cross);return
     C7.default.createElement(m,{flexDirection:"column
     ",key:j},C7.default.createElement(L,null,M,"
     ",j),D.decisionReason!==void
     0&&D.decisionReason.type!=="subcommandResults"&&C
     7.default.createElement(L,null,C7.default.createE
     lement(L,{dimColor:!0},"  ","\u23BF","  "),C7.def
     ault.createElement(kK,null,Ol7(D.decisionReason))
     ),D.behavior==="ask"&&C7.default.createElement(qx
     5,{suggestions:D.suggestions}))}));default:return
      C7.default.createElement(L,null,C7.default.creat
     eElement(kK,null,Ol7(K)))}},_[0]=K,_[1]=O,_[2]=T;
     else T=_[2];let $=T,A;if(_[3]!==q)A=q&&C7.default
     .createElement(L,null,q),_[3]=q,_[4]=A;else
     A=_[4];let z;if(_[5]!==$)z=$(),_[5]=$,_[6]=z;else
      z=_[6];let w;if(_[7]!==A||_[8]!==z)w=C7.default.
     createElement(m,{flexDirection:"column"},A,z),_[7
     ]=A,_[8]=z,_[9]=w;else w=_[9];return w}function
     qx5(H){let _=T3_.c(18),{suggestions:q}=H,K,O,T,$,
     A,z,w;if(_[0]!==q){w=Symbol.for("react.early_retu
     rn_sentinel");H:{let
     j=Nc(q);if(j.length===0){w=null;break H}if(O=L,_[
     8]===Symbol.for("react.memo_cache_sentinel"))$=C7
     .default.createElement(L,{dimColor:!0},"
     ","\u23BF","  "),_[8]=$;else $=_[8];A="Suggested
     rules:",z=" ",K=kK,T=j.map(Kx5).join(",
     ")}_[0]=q,_[1]=K,_[2]=O,_[3]=T,_[4]=$,_[5]=A,_[6]
     =z,_[7]=w}else K=_[1],O=_[2],T=_[3],$=_[4],A=_[5]
     ,z=_[6],w=_[7];if(w!==Symbol.for("react.early_ret
     urn_sentinel"))return w;let
     Y;if(_[9]!==K||_[10]!==T)Y=C7.default.createEleme
     nt(K,null,T),_[9]=K,_[10]=T,_[11]=Y;else
     Y=_[11];let f;if(_[12]!==O||_[13]!==$||_[14]!==A|
     |_[15]!==z||_[16]!==Y)f=C7.default.createElement(
     O,null,$,A,z,Y),_[12]=O,_[13]=$,_[14]=A,_[15]=z,_
     [16]=Y,_[17]=f;else f=_[17];return f}function
     Kx5(H){return q_.bold(u1(H))}function
     Ox5(H){if(!H)return[];return H.flatMap((_)=>{swit
     ch(_.type){case"addDirectories":return
     _.directories;default:return[]}})}function
     Tx5(H){if(!H)return;let
     _=H.findLast((q)=>q.type==="setMode");return
     _?.type==="setMode"?_.mode:void 0}function
     $x5(H){let _=T3_.c(22),{suggestions:q,width:K}=H;
     if(!q||q.length===0){let $;if(_[0]===Symbol.for("
     react.memo_cache_sentinel"))$=C7.default.createEl
     ement(L,{dimColor:!0},"Suggestions "),_[0]=$;else
      $=_[0];let A;if(_[1]!==K)A=C7.default.createElem
     ent(m,{justifyContent:"flex-end",minWidth:K},$),_
     [1]=K,_[2]=A;else A=_[2];let z;if(_[3]===Symbol.f
     or("react.memo_cache_sentinel"))z=C7.default.crea
     teElement(L,null,"None"),_[3]=z;else z=_[3];let
     w;if(_[4]!==A)w=C7.default.createElement(m,{flexD
     irection:"row"},A,z),_[4]=A,_[5]=w;else
     w=_[5];return w}let O,T;if(_[6]!==q||_[7]!==K){T=
     Symbol.for("react.early_return_sentinel");H:{let
     $=Nc(q),A=Ox5(q),z=Tx5(q);if($.length===0&&A.leng
     th===0&&!z){let D;if(_[10]===Symbol.for("react.me
     mo_cache_sentinel"))D=C7.default.createElement(L,
     {dimColor:!0},"Suggestion "),_[10]=D;else
     D=_[10];let M;if(_[11]!==K)M=C7.default.createEle
     ment(m,{justifyContent:"flex-end",minWidth:K},D),
     _[11]=K,_[12]=M;else M=_[12];let J;if(_[13]===Sym
     bol.for("react.memo_cache_sentinel"))J=C7.default
     .createElement(L,null,"None"),_[13]=J;else
     J=_[13];let
     P;if(_[14]!==M)P=C7.default.createElement(m,{flex
     Direction:"row"},M,J),_[14]=M,_[15]=P;else
     P=_[15];T=P;break H}let w;if(_[16]===Symbol.for("
     react.memo_cache_sentinel"))w=C7.default.createEl
     ement(L,{dimColor:!0},"Suggestions
     "),_[16]=w;else w=_[16];let Y;if(_[17]!==K)Y=C7.d
     efault.createElement(m,{justifyContent:"flex-end"
     ,minWidth:K},w),_[17]=K,_[18]=Y;else Y=_[18];let
     f;if(_[19]===Symbol.for("react.memo_cache_sentine
     l"))f=C7.default.createElement(L,null,"
     "),_[19]=f;else f=_[19];let
     j;if(_[20]!==Y)j=C7.default.createElement(m,{flex
     Direction:"row"},Y,f),_[20]=Y,_[21]=j;else
     j=_[21];O=C7.default.createElement(m,{flexDirecti
     on:"column"},j,$.length>0&&C7.default.createEleme
     nt(m,{flexDirection:"row"},C7.default.createEleme
     nt(m,{justifyContent:"flex-end",minWidth:K},C7.de
     fault.createElement(L,{dimColor:!0}," Rules
     ")),C7.default.createElement(m,{flexDirection:"co
     lumn"},$.map(zx5))),A.length>0&&C7.default.create
     Element(m,{flexDirection:"row"},C7.default.create
     Element(m,{justifyContent:"flex-end",minWidth:K},
     C7.default.createElement(L,{dimColor:!0},"
     Directories ")),C7.default.createElement(m,{flexD
     irection:"column"},A.map(Ax5))),z&&C7.default.cre
     ateElement(m,{flexDirection:"row"},C7.default.cre
     ateElement(m,{justifyContent:"flex-end",minWidth:
     K},C7.default.createElement(L,{dimColor:!0},"
     Mode ")),C7.default.createElement(L,null,kr(z))))
     }_[6]=q,_[7]=K,_[8]=O,_[9]=T}else
     O=_[8],T=_[9];if(T!==Symbol.for("react.early_retu
     rn_sentinel"))return T;return O}function
     Ax5(H,_){return
     C7.default.createElement(L,{key:_},sH.bullet,"
     ",H)}function zx5(H,_){return
     C7.default.createElement(L,{key:_},sH.bullet,"
     ",u1(H))}function v_6(H){let
     _=T3_.c(25),{permissionResult:q,toolName:K}=H,O=f
     _(Yx5),T=q.decisionReason,$="suggestions"in
     q?q.suggestions:void
     0,A;if(_[0]!==$||_[1]!==K||_[2]!==O){H:{let X=G8.
     isSandboxingEnabled()&&G8.isAutoAllowBashIfSandbo
     xedEnabled(),R=XxH(O,{sandboxAutoAllowEnabled:X})
     ,W=Nc($);if(W.length>0){A=R.filter((G)=>W.some((k
     )=>k.toolName===G.rule.ruleValue.toolName&&k.rule
     Content===G.rule.ruleValue.ruleContent));break
     H}if(K){let G;if(_[4]!==K)G=(k)=>k.rule.ruleValue
     .toolName===K,_[4]=K,_[5]=G;else
     G=_[5];A=R.filter(G);break
     H}A=R}_[0]=$,_[1]=K,_[2]=O,_[3]=A}else A=_[3];let
      z=A,w;if(_[6]===Symbol.for("react.memo_cache_sen
     tinel"))w=C7.default.createElement(m,{justifyCont
     ent:"flex-end",minWidth:10},C7.default.createElem
     ent(L,{dimColor:!0},"Behavior ")),_[6]=w;else
     w=_[6];let Y;if(_[7]!==q.behavior)Y=C7.default.cr
     eateElement(m,{flexDirection:"row"},w,C7.default.
     createElement(L,null,q.behavior)),_[7]=q.behavior
     ,_[8]=Y;else Y=_[8];let
     f;if(_[9]!==q.behavior||_[10]!==q.message)f=q.beh
     avior!=="allow"&&C7.default.createElement(m,{flex
     Direction:"row"},C7.default.createElement(m,{just
     ifyContent:"flex-end",minWidth:10},C7.default.cre
     ateElement(L,{dimColor:!0},"Message
     ")),C7.default.createElement(L,null,q.message)),_
     [9]=q.behavior,_[10]=q.message,_[11]=f;else
     f=_[11];let j;if(_[12]===Symbol.for("react.memo_c
     ache_sentinel"))j=C7.default.createElement(m,{jus
     tifyContent:"flex-end",minWidth:10},C7.default.cr
     eateElement(L,{dimColor:!0},"Reason
     ")),_[12]=j;else j=_[12];let
     D;if(_[13]!==T)D=C7.default.createElement(m,{flex
     Direction:"row"},j,T===void 0?C7.default.createEl
     ement(L,null,"undefined"):C7.default.createElemen
     t(_x5,{decisionReason:T})),_[13]=T,_[14]=D;else
     D=_[14];let
     M;if(_[15]!==$)M=C7.default.createElement($x5,{su
     ggestions:$,width:10}),_[15]=$,_[16]=M;else
     M=_[16];let J;if(_[17]!==z)J=z.length>0&&C7.defau
     lt.createElement(m,{flexDirection:"column",margin
     Top:1},C7.default.createElement(L,{color:"warning
     "},sH.warning," Unreachable Rules
     (",z.length,")"),z.map(wx5)),_[17]=z,_[18]=J;else
      J=_[18];let P;if(_[19]!==Y||_[20]!==f||_[21]!==D
     ||_[22]!==M||_[23]!==J)P=C7.default.createElement
     (m,{flexDirection:"column"},Y,f,D,M,J),_[19]=Y,_[
     20]=f,_[21]=D,_[22]=M,_[23]=J,_[24]=P;else
     P=_[24];return P}function wx5(H,_){return
     C7.default.createElement(m,{key:_,flexDirection:"
     column",marginLeft:2},C7.default.createElement(L,
     {color:"warning"},u1(H.rule.ruleValue)),C7.defaul
     t.createElement(L,{dimColor:!0},"  ",H.reason),C7
     .default.createElement(L,{dimColor:!0},"  ","Fix:
      ",H.fix))}function Yx5(H){return
     H.toolPermissionContext}var T3_,C7;var Ff8=Z(()=>
     {$4();cq();BH();V8();EJ();Sf();DR();Ps_();SO();tO
     ();T3_=x(iH(),1),C7=x(MH(),1)});function
     Wx5(H){if(typeof H==="string")return H;try{return
      xH(H,null,2)}catch{return String(H)}}function
     Rx5(H,_=1000){let q=H.filter((T)=>T.type==="assis
     tant").slice(-3),K=[],O=0;for(let T of
     q.reverse()){let $=T.message.content.filter((A)=>
     A.type==="text").map((A)=>("text"in
     A)?A.text:"").join(" ");if($&&O<_){let
     A=_-O,z=$.length>A?$.slice(0,A)+"...":$;K.unshift
     (z),O+=z.length}}return K.join(`











 8232:
 8233 `)}function Uf8(){return
 :   w_().permissionExplainerEnabled!==!1}async
     function Tl7({toolName:H,toolInput:_,toolDescript
     ion:q,messages:K,signal:O}){if(!Uf8())return
     null;let T=Date.now();try{let
     $=Wx5(_),A=K?.length?Rx5(K):"",z=`Tool: ${H}
 8234: ${q?`Description: ${q}

 -<anonymous (/$bunfs/root/src/entrypoints/cli.js:8231
            :15642)
 - qX (/$bunfs/root/src/entrypoints/cli.js:477:63169)
 - sPH (/$bunfs/root/src/entrypoints/cli.js:477:76220)
 - ov (/$bunfs/root/src/entrypoints/cli.js:477:76101)
 - sPH (/$bunfs/root/src/entrypoints/cli.js:477:76199)
 - ov (/$bunfs/root/src/entrypoints/cli.js:477:76101)
 - sPH (/$bunfs/root/src/entrypoints/cli.js:477:76199)
 - ov (/$bunfs/root/src/entrypoints/cli.js:477:76101)
 - sPH (/$bunfs/root/src/entrypoints/cli.js:477:76199)
 - ov (/$bunfs/root/src/entrypoints/cli.js:477:76101)

Steps to Reproduce

  1. On Claude Code 2.1.112, launch inside iTerm2 via

tmux -CC new-session (e.g. using the alias above).

  1. Create an agent team that spawns at least one teammate in a

split pane.

  1. Ask the lead to delegate a task to the teammate that will require

a permission prompt (any Bash command not in permissions.allow,
any Edit/Write, or any MCP tool call).

  1. The moment the teammate reaches the tool call, the lead pane

crashes with the error above. The teammate pane stalls
indefinitely waiting for a response that will never come.

Downgrading to 2.1.92 via the claude-code cask makes the same
reproduction steps work correctly: the teammate's permission prompt
appears on the lead and can be approved or denied normally.

Claude Model

Opus

Is this a regression?

Yes, this worked in a previous version

Last Working Version

2.1.92

Claude Code Version

2.1.112

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

iTerm2

Additional Information

  • Claude Code version: 2.1.112 (installed via Homebrew cask

claude-code@latest)

  • Last known good version: 2.1.92 (installed via Homebrew cask

claude-code)

  • macOS: 26.4.1
  • iTerm2: Build 3.6.9
  • tmux: 3.6a
  • Launch: iTerm2 → tmux -CC new-session (via a shell alias, shown

below)

  • teammateMode: "auto" (default)

Launch alias used:

claude-tmux() {
  local session_name="claude-$(basename "$PWD")"
  if [[ -n "$TMUX" ]]; then
    claude "$@"
    return
  fi
  local cmd="claude"
  (( $# > 0 )) && cmd+=" $(printf '%q ' "$@")"
  tmux -CC new-session -A -s "$session_name" -c "$PWD" "$cmd"
}

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗