t3_thread_send agents pick mode "queue" for running threads since the tool copy cut, so messages queue instead of steering
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 68/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
- Ambito
- developer-experience
Direzione di ricerca
Trova la descrizione dello strumento t3_thread_send e lo schema di OrchestratorMcpThreadSendInput.mode; l’issue non specifica i relativi percorsi dei file. Leggi la copia e lo schema attuali, poi aggiornali in modo che auto sia l’impostazione predefinita normale e queue serva per un turno successivo deliberatamente separato. Il lavoro è concluso quando entrambe le descrizioni indirizzano l’agente verso auto, a meno che queue non sia esplicitamente previsto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What happened
The t3 orchestrator in nightly seems to almost always send messages as queued messages instead of mid session steers. This used to be the other way around.
An orchestrating agent thread used t3_thread_send to message another thread that was mid-turn. The message showed up in the target thread's queue instead of being steered into the running turn, so the user had to promote it to a steer manually. The user reports this started a few days ago on nightly and does not depend on the provider.
Diagnosis
The server's delivery logic is working as designed. The agent explicitly passed mode: "queue":
mcp__t3-code__t3_thread_send { threadId: "ccd69e8e-…", mode: "queue", message: "FYI from another thread (no action needed): …" }
→ { runId: "…:ordinal:4", status: "queued", delivery: "queued" }
With mode omitted or set to "auto", ThreadManagementService.sendToThread would have picked steer_active. The target's run 3 was running and its provider turn was running (it was in the middle of a long tool call), so latestSteerableRun() would have matched.
What changed is the agent's choice of mode. In this user's history, every t3_thread_send call before 2026-10-25 passed mode: "auto" (11/11, which resulted in started or steered). The first call after updating passed mode: "queue". The likely trigger is #24850 ("cut T3's agent instructions and tool copy by 60%", 2026-10-25), which rewrote the t3_thread_send description:
- Before: "…mode='auto' starts an idle thread, steers a fully active turn, or queues behind a turn that is not yet steerable. Use queue for a separate follow-up turn, steer for an in-flight update, or restart to interrupt-and-restart the active turn. …"
- After (still on
main): "mode:'auto'starts an idle thread, steers a running turn, or queues.queue: new turn.steer: mid-turn update.restart: interrupt and restart. …"
The new copy lists the four modes as equal options. Neither the description nor the schema (OrchestratorMcpThreadSendInput.mode is a bare optional literal with no description) tells the agent that auto is the default and the normal choice. For an informational "no action needed" message, queue: new turn looks like a reasonable pick to the model. But that delays the message until the target's current turn ends and adds a whole extra turn just to read an FYI.
The evidence is thin: there is one call after the change, and mode selection is a model decision rather than a deterministic code path. Still, the switch from consistent auto to queue lines up with the copy change.
Suggested direction: state in the tool description and/or the mode schema description that auto is the default and should normally be omitted or used, and that queue is only for deliberately separate follow-up turns.
Steps to reproduce
- On nightly
0.1.3-nightly.20261025.3682, start a long-running turn in thread B (for example, a tool call that takes a minute or more). - In thread A (Claude), ask the agent to send thread B an informational update via
t3_thread_send. - Look at the tool call input: the agent may pass
mode: "queue". The message lands in B's queue (delivery: "queued") instead of being steered into the running turn. - Compare with a build from before #24850, where agents in the same situation passed
mode: "auto"and the message was steered.
This is not deterministic, because it depends on which mode the model picks.
Version
0.1.3-nightly.20261025.3682 (desktop app, T3 Code (Nightly), local server). The triage CLI was 0.1.2.
Environment
macOS 26 (Darwin 25.6.0, arm64), Node v26.12.1. Desktop Nightly app against its local server. The orchestrator thread runs Claude; the user reports the same behavior regardless of provider.
Evidence
# Target thread ccd69e8e-… (UTC), from statev2.sqlite projections
run 3 running 10:15:13 → 10:17:53 (provider turn 3 running throughout)
10:17:16 t3_thread_send from thread 9403dd35-… with mode:"queue" → new run 4, status queued, delivery "queued"
10:17:44 user promotes queued message → run 4 cancelled, turn item inputIntent "promoted_queued_to_steer" in run 3
# t3_thread_send calls by the agent in this install (mode → delivery)
2026-10-20 auto → started ×6, steered ×1
2026-10-21 auto → started ×2 (+1 unknown)
2026-10-23 auto → started ×1
2026-10-26 queue → queued ×1 # first after #24850
Related issues
#24711 and #24667 are also about agent-to-agent t3_thread_send, but they cover how the receiver interprets the message, not which delivery mode is chosen. I didn't find an existing issue for this.
Fix applied or workaround
Nothing changed on the machine. Possible workaround: tell orchestrating agents in their instructions to omit mode (or use auto) for t3_thread_send unless they're asked to queue.
Filed by
Claude Code (claude-opus-5-5) via t3 triage
- Lingua principale
- TypeScript
- Stelle
- 24.8k
- Fork
- 6.4k
- Merge medio
- 2h 54m
- PR unite (30g)
- 350
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di pingdotgg/t3code
-
[Bug]: Pen taps on sidebar rows start a drag and lose their clickForse già presa @makhnatkin l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: Guest messages near the 4,000-char limit fail with 400 "The request was not valid." because multipart turns \n into \r\nForse già presa @juliusmarminge l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: Server preview browser is laggy: always launched with --disable-gpu and device scale 2Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
pingdotgg/t3code#26523 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: preview_evaluate forbids WebMCP write tools even when the user explicitly asks for the changeForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertabug needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di pingdotgg/t3code
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
vekexasia/pi-extensible-workflows#374 ·
I maintainer di solito rispondono entro 2 giorni
-
documentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
I maintainer di solito rispondono entro 1 giorno
-
help wanted linux
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
GiuseppeBellamacina/downtime#19 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
scaleway/ultraviolet#7089 ·
I maintainer di solito rispondono entro 2 giorni
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
Get-Concord-AI/concord-mcp#296 ·
I maintainer di solito rispondono entro 1 giorno