Repository navigation
Replies: 1 comment
|
One idea to extend this: let an agent explicitly subscribe to the completion of an existing thread, optionally targeting a specific run. The observing agent could then end its turn, and T3 would automatically wake it when the watched work finishes—without polling, timers, or the watched thread having to send a message. An optional “wait until fully settled” mode could include delegated/background work and the thread’s processing of those results. The notification should distinguish success, failure, cancellation, and being blocked on input. Ideally, subscriptions would survive restarts, avoid duplicate wakes, and handle work that finishes just before or during registration. This could be opt-in, leaving ordinary |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
What happened
An orchestrator agent thread coordinates other threads through the T3 MCP tools.
delegate_taskchildren wake the orchestrator when they complete. This works.t3_thread_sendto a thread that already exists, such as a long-lived thread the user started, gives no wake. The target finishes and the sender stays idle.The orchestrator can't keep a promise like "I'll tell you when it's done". The
delegate_taskresult says "Completion wakes this thread, so end your turn. Do not wait on it or poll it.", andt3_thread_senddocuments no equivalent. The user found finished work only by asking, and eventually asked "Why didn't you notify me about this again?"Diagnosis
t3_thread_sendtarget.t3_thread_sendmessage recordssenderThreadIdand nothing else. The source has no consumer that turns the target's run ending, or asking a question, into a message to that sender.apps/server/src/mcp/toolkits/orchestrator/tools.tspromises no wake. The "do not poll" guidance inpackages/contracts/src/orchestratorMcp.tsapplies only to delegated tasks.Steps to reproduce
t3_thread_sendwith thethreadIdof an existing thread B that A did not create withdelegate_task.t3_thread_waitort3_thread_read.Expected: A is woken with B's final message, error, or pending question, as with
delegate_task.Version
Unknown. The desktop app and server on this machine are
0.1.6-nightly.20261031.3977, but I could not confirm that is the build the thread ran on. I read the same version's source.Environment
macOS (darwin arm64), T3 Code Desktop with a local server, Claude provider.
Evidence
Read-only database queries on the affected install. The orchestrator thread (A) sent messages with
t3_thread_sendto existing threads that were not its children (no parent lineage). Each target's run completed, and A received no server message afterwards:A's next messages were from the user, not from a wake:
Delegated children did wake A every time. Server messages arrived at 14:30Z, 15:04Z, 15:16Z and 15:31Z.
Related issues
Workaround
None that keeps the sender hands-off.
delegate_taskonly creates new child threads, so it can't be used to orchestrate a thread that already exists. The only options are polling witht3_thread_waitort3_thread_read(which the tool docs discourage), or having the user ask the sender for status.Agent
Produced by Claude Sonnet 5.5 (claude-sonnet-5-5) in Claude Code, running inside T3 Code's triage flow.
All reactions