You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug]: A task delegated to a linked environment never shows its question or approval on the parent #26527
I searched existing issues and did not find a duplicate.
I included enough detail to reproduce or investigate the problem.
Area
apps/server
Steps to reproduce
Turn on Linked environments (Settings → Labs) on two T3 Code servers, a "laptop" and a "box", and link the laptop to the box with approval-required access.
In a laptop thread, have the agent call delegate_task with target.environmentId set to the box, mode: "wait", and a task that asks the user a question or runs a command that needs approval.
The task on the box stops on the question or the approval.
Expected behavior
The parent on the laptop shows the remote task's question or approval the way #15082 made it show a local task's, says which environment asks, and sends an answer given on the parent to the task. delegate_task and task_status report hasPendingQuestion / pendingApproval, and mode: "wait" ends on them.
Actual behavior
Nothing reaches the laptop. The sidebar, web, and mobile clients connected to the laptop show no request, and delegate_task / task_status report hasPendingQuestion: false and pendingApproval: null, so the wait call runs until it times out. The task only moves on if someone opens the box and answers there.
Reproduced on T3 Code 0.1.5 (macOS desktop and headless t3 serve on macOS), Linked environments on, link access auto.
Parent thread on Mac A started delegate_task with target.environmentId set to linked Mac B, mode: "async".
The task on Mac B asked the user a question with the question tool and blocked.
Nothing reached the parent: it was woken only when the task later completed, and its last delegate_task result still said hasPendingQuestion: false.
The child thread appears only in the parent's details panel (Lineage). It is not in the sidebar or inbox on either machine, so the user found the blocked question only by opening Lineage and clicking the child.
A second check: a minimal delegate_task on the linked machine that asks one question also produced no phone notification (separate from this issue; noting it in case the two share a cause).
Expected, as the issue says: the remote child's pending question surfaces on the parent and in the inbox, and task_status/delegate_task report it.
Still reproduces on 0.1.7-nightly.20261101.4048 (88f6113), macOS arm64.
The parent thread is on linked environment A. Its delegated Codex child is on environment B, and the child asked a question (AskUserQuestion).
The parent's timeline banner did show "Subagent needs input … Open question". But the sidebar row for the parent stayed "Waiting" and never switched to Input, so nothing in the thread list showed that a person was needed.
Same here with password prompts. A task I delegated to my Linux box asked for my sudo password and two NAS logins through the secret prompt. The prompts showed only in the task's own thread. My parent thread on this machine never showed that it needed me, so the task sat blocked until I opened it myself.
Still reproduces with a newer build and a different child provider.
Setup
Parent: T3 Code desktop 0.1.9-nightly.20261111.4501, macOS arm64.
Linked environment: headless t3 serve0.1.6 on Ubuntu 22.04 (linux x64). It's linked over https through an nginx TLS proxy with full-access access.
Child: delegate_task with target.environmentId = the linked box, mode: "async", provider pi (github-copilot/claude-opus-5.5).
What happened
The child on the box asked a question with pi's ask_user tool. It shows in the child's timeline as a user_input_request item.
On the parent, the sidebar and banner stayed "Waiting" and never showed Input. Nothing pointed to the question.
The only way to see it was to open the child thread on the box. I answered it there, and the request completed at 2026-11-11T07:44:07Z.
On the parent, delegate_task / task_status report remoteChild set, with childThreadId: null, childRunId: null, workState: "working", hasPendingQuestion: false, pendingApproval: null. I read these after the question was answered, so they don't show the state while it was open. On the box, the child thread has parentThreadId: null.
This matches the original report and @EtanHey's comment: the remote child's question never reaches the parent, and the parent row stays "Waiting".
Still reproduces on 0.1.9-nightly.20261111.4501, Linux, both servers linked with full-access. A task on the linked box blocked on a question for 8 hours with no signal anywhere on the parent's side. Since #26367, four separate paths skip it:
The sidebar hides the task under its parent, because the parent is open (threadShell.ts#L667).
The parent row drops the question, since only approvals roll up now (threadShell.ts#L118).
The parent agent is never told. DelegatedTaskQuestionReactor returns when the child has no local parent (L108), and the parent's task_status reports hasPendingQuestion: false (OrchestratorMcpService.ts#L1769).
#26367 assumes the coordinator answers child questions. That holds for local tasks, but no agent ever sees a remote task's question.
Proposed scope, much smaller than #26344: for a task delegated across environments, roll a live question up to the parent row as Awaiting Input, the same way approvals roll up today. The user answers in the task's own thread. That's client-only: no new cross-environment contract and no answer relay. Happy to send that PR if this direction works for you.
Still reproduces on 0.1.8 (headless t3 serve, Linux) with the parent on Linux and the child on a linked macOS machine (delegate_task, target.environmentId, Claude child, full-access).
The child asked a question with AskUserQuestion. The parent's timeline showed "Subagent needs input … Open question", but the parent's sidebar row stayed "Waiting" under Working, so the thread list never showed that a person was needed.
Our setup gates every cross-machine task on a Go/Stop question, so each of these tasks blocks until someone happens to open the parent. +1 for rolling a remote child's live question up to the parent row as Input, as proposed above.
Still reproduces on 0.1.10-nightly.20261113.4643, with a headless server on the remote side and a full-access link.
Parent: desktop 0.1.10-nightly.20261113.4643, Linux x64.
Remote: t3 serve --host 127.0.0.1 --port 3773 from the t3-0.1.10-nightly.20261113.4643-linux-x64 release, in an Ubuntu container, reached over an SSH forward to a loopback port. Linked with t3 environment link http://127.0.0.1:<port> --pairing-code <code> --access full-access.
Child: delegate_task with target.environmentId set to the remote, mode: "wait", timeoutMs: 90000, Claude (claude-sonnet-5-5). The task asked one question with AskUserQuestion.
The wait ran the full 90 s and returned waitTimedOut: true, hasPendingQuestion: false, pendingApproval: null.
One thing that does work from the parent, in case it helps others until this is fixed: the parent's agent can see and answer the question through the link with t3_pending_request. It needs environmentId set to the remote and threadId set to remoteChild.threadId from the delegate_task result. action: "list" returned the request id, read returned the question, and respond with {"<question id>": "B"} unblocked it. The child then completed, and task_status on the parent showed its result ("B").
Activity
kukitch commentedon Oct 31, 2026
Reproduced on T3 Code 0.1.5 (macOS desktop and headless
t3 serveon macOS), Linked environments on, link accessauto.delegate_taskwithtarget.environmentIdset to linked Mac B,mode: "async".delegate_taskresult still saidhasPendingQuestion: false.delegate_taskon the linked machine that asks one question also produced no phone notification (separate from this issue; noting it in case the two share a cause).Expected, as the issue says: the remote child's pending question surfaces on the parent and in the inbox, and
task_status/delegate_taskreport it.EtanHey commentedon Nov 2, 2026
Still reproduces on
0.1.7-nightly.20261101.4048(88f6113), macOS arm64.The fix PR here (#26344) was closed without merging, so as far as I can tell there's no open fix for the sidebar side.
Posted from a T3 Code triage session (Claude Opus 5.5 in Claude Code).
Gavin-Key commentedon Nov 8, 2026
Same here with password prompts. A task I delegated to my Linux box asked for my sudo password and two NAS logins through the secret prompt. The prompts showed only in the task's own thread. My parent thread on this machine never showed that it needed me, so the task sat blocked until I opened it myself.
Windows 11 desktop, Linux box, Claude threads.
pWoLiAn commentedon Nov 11, 2026
Still reproduces with a newer build and a different child provider.
Setup
0.1.9-nightly.20261111.4501, macOS arm64.t3 serve0.1.6on Ubuntu 22.04 (linux x64). It's linked over https through an nginx TLS proxy withfull-accessaccess.delegate_taskwithtarget.environmentId= the linked box,mode: "async", providerpi(github-copilot/claude-opus-5.5).What happened
ask_usertool. It shows in the child's timeline as auser_input_requestitem.2026-11-11T07:44:07Z.delegate_task/task_statusreportremoteChildset, withchildThreadId: null,childRunId: null,workState: "working",hasPendingQuestion: false,pendingApproval: null. I read these after the question was answered, so they don't show the state while it was open. On the box, the child thread hasparentThreadId: null.This matches the original report and @EtanHey's comment: the remote child's question never reaches the parent, and the parent row stays "Waiting".
Silthus commentedon Nov 11, 2026
Note
🤖 Claude Opus 5.5 responding on behalf of Michael
Still reproduces on
0.1.9-nightly.20261111.4501, Linux, both servers linked withfull-access. A task on the linked box blocked on a question for 8 hours with no signal anywhere on the parent's side. Since #26367, four separate paths skip it:DelegatedTaskQuestionReactorreturns when the child has no local parent (L108), and the parent'stask_statusreportshasPendingQuestion: false(OrchestratorMcpService.ts#L1769).#26367 assumes the coordinator answers child questions. That holds for local tasks, but no agent ever sees a remote task's question.
Proposed scope, much smaller than #26344: for a task delegated across environments, roll a live question up to the parent row as Awaiting Input, the same way approvals roll up today. The user answers in the task's own thread. That's client-only: no new cross-environment contract and no answer relay. Happy to send that PR if this direction works for you.
Abdullah97128 commentedon Nov 14, 2026
Still reproduces on
0.1.8(headlesst3 serve, Linux) with the parent on Linux and the child on a linked macOS machine (delegate_task,target.environmentId, Claude child,full-access).t3-thread://link worked.Our setup gates every cross-machine task on a Go/Stop question, so each of these tasks blocks until someone happens to open the parent. +1 for rolling a remote child's live question up to the parent row as Input, as proposed above.
cyppe commentedon Nov 15, 2026
Still reproduces on
0.1.10-nightly.20261113.4643, with a headless server on the remote side and afull-accesslink.0.1.10-nightly.20261113.4643, Linux x64.t3 serve --host 127.0.0.1 --port 3773from thet3-0.1.10-nightly.20261113.4643-linux-x64release, in an Ubuntu container, reached over an SSH forward to a loopback port. Linked witht3 environment link http://127.0.0.1:<port> --pairing-code <code> --access full-access.delegate_taskwithtarget.environmentIdset to the remote,mode: "wait",timeoutMs: 90000, Claude (claude-sonnet-5-5). The task asked one question with AskUserQuestion.waitTimedOut: true,hasPendingQuestion: false,pendingApproval: null.One thing that does work from the parent, in case it helps others until this is fixed: the parent's agent can see and answer the question through the link with
t3_pending_request. It needsenvironmentIdset to the remote andthreadIdset toremoteChild.threadIdfrom thedelegate_taskresult.action: "list"returned the request id,readreturned the question, andrespondwith{"<question id>": "B"}unblocked it. The child then completed, andtask_statuson the parent showed its result ("B").Checked by Claude Opus 5.5, in Claude Code.