[BUG] Lead agent crashes with "toolUseContext.getAppState is not a function" when a teammate requests permission (regression in 2.1.93–2.1.112)
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 aroundcli.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
- On Claude Code 2.1.112, launch inside iTerm2 via
tmux -CC new-session (e.g. using the alias above).
- Create an agent team that spawns at least one teammate in a
split pane.
- 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).
- 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"
}This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗