[Bug]: A child run started with `t3 thread send` from a shell never notifies the parent
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 74/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- typescript
- 领域
- backend
调研方向
从 apps/server/src/orchestration-v2/Orchestrator.ts 中的 recordSubagentFollowup 开始,然后阅读 DelegatedCompletionDelivery.test.ts 中相关的用例和测试。Issue 描述了一个针对条件判断的单行修改提议,以及一个复现后续跟进缺失问题的测试。完成标准是:回归测试在修改前失败、修改后通过,同时来自其他线程的发送仍被排除。
由索引模型根据 Issue 内容生成。
描述
Before submitting
- 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
- In thread P, call
delegate_taskto start child C. Let its first run finish. - With P idle, run
t3 thread send <C thread id> -from a shell with a short prompt. - Wait for C's new run to finish.
Expected behavior
P gets a completion notice and a new run, as it does for a later run that P sends itself with t3_thread_send.
Actual behavior
P gets no notice and no run until something else wakes it. From T3's state DB (read-only), 2026-10-25 to 2026-11-09 13:44 UTC: 731 completed child runs were started this way, and 420 ended with the parent idle and no parent run within 10 s. Of 433 idle-parent runs that did get a delegated task, 2 had no parent run within 10 s.
Root cause: recordSubagentFollowup (apps/server/src/orchestration-v2/Orchestrator.ts) creates the follow-up task, which carries the notice, when the send is a notification, has createdBy: user, continues a usage-limit stop, or has senderThreadId equal to the parent. t3 thread send signs in as an MCP client with no thread, so its send is createdBy: agent with no senderThreadId and matches none of those. The gate is the same in 0.1.8-nightly.20261109.4399 and main (4f0b74e). #31707 reports the same symptom for remote children.
Proposed fix: count a send with no sender thread like a user send: (command.senderThreadId ?? parentThreadId) !== parentThreadId in that gate. A send from a different thread stays excluded. A patch is ready: one line plus a test in DelegatedCompletionDelivery.test.ts that fails before and passes after. Sending T3CODE_THREAD_ID from the CLI would hit assertLiveCaller, which refuses a thread with no active run, and the parent is idle by then.
Impact
Major degradation or frequent failure
Version or commit
0.1.8-nightly.20261105.4218
Environment
macOS 26.6.1 arm64, Claude provider. Checked with the new unit test and with t3_thread_send through the MCP toolkit with no thread scope against a replayed Codex provider (no follow-up task before, one after). The t3 binary and a live provider were not run.
- 主要语言
- TypeScript
- 星标
- 24.8k
- 派生
- 6.4k
- 平均合并
- 8 小时 26 分钟
- 30 天内合并 PR
- 133
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
pingdotgg/t3code 的其他 Issue
-
bug needs-triage
难度 2/5 1-3 小时 新手友好度 62/100
维护者通常 1 天内回复
-
via-triage
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 83/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 67/100
pingdotgg/t3code#33044 · 1 条评论 ·
维护者通常 1 天内回复
-
via-triage
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 82/100
prime-radiant-inc/evener#5901 ·
维护者通常 1 天内回复
-
Bug: Batcher binds the texture that opens a new batch twice (one draw call per element with maxBatchableTextures = 1)可能已有人在做 @darzarzycki 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 77/100
维护者通常 2 天内回复
-
area:study-data p2-high ready-for-agent type:chore
难度 2/5 1-3 小时 新手友好度 78/100
fderuiter/deruiter.dev#3706 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 62/100
nicobailon/pi-subagents#3242 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 74/100
awslabs/visual-asset-management-system#1234 ·
维护者通常 1 天内回复