Repository navigation
[Bug]: Remote Agents panel shows 9 subagents while host shows 17 for the same thread #12131
Description
Activity
- addedbugSomething is broken or behaving incorrectly.Something is broken or behaving incorrectly.needs-triageIssue needs maintainer review and initial categorization.Issue needs maintainer review and initial categorization.
on Sep 16, 2026 Triage
This looks like a real consistency bug, not a nine-agent UI cap and not a relay/tunnel drop.
The Agents panel is not a server roster. Web/desktop fold
task.*rows from whateverthread.activitiesthat client currently holds (ChatView→foldSubagentActivities→deriveAgentPanelModel→AgentsPanel). There is no9limit (ROSTER_LIMITis 100). An agent appears only if at least one of its rows is in that array.Those two clients are not holding the same array:
- The host has been live-subscribed. The client reducer appends activity rows with no 500 cap, then can resume that fat cache via
afterSequence. Reloading the host app can still show all 17. - The remote is a fresh load. Initial HTTP/WS snapshot is the last 10 user-anchored turns (
INITIAL_THREAD_USER_TURN_LIMIT) and at most the last 500 activities in that window (THREAD_DETAIL_ACTIVITY_LIMIT), with a 150 raw-turn page ceiling. The panel has no “load earlier” of its own.
So the remote 9-idle / 12.8M footer is the fold over a truncated window. The host 17-idle / 62.3M footer is the fold over the accumulated live cache. The eight missing names (
workflow_contract,daemon_catchup,delivery_performance,catchup_health_order,unfetched_next_step,durable_blocker_next_step,guidance_handoff,incoming_example) are the children whose last retained row sits outside that window. That also matches the token gap: the omitted agents are the older/heavier ones.This will show up as “host vs remote” in practice (host ran the thread; remote just opened it). The same split should appear with a second fresh client on the host machine. It is provider-agnostic; Codex just produced a chatty direct-spawn fleet.
Not the main line
- Codex v2 status mapping (#11164, #11996) — wrong status, not missing idle rows.
- Host-only Codex files — children are already persisted as
task.*on the shared server.
Related
- #5493 turn windows
- #6153 500-activity hydration cap
- #8309 cached-turn resume
- #4779 v2 subagent projection (
v2Projectionis still unused)
Surfaces
Web + desktop share this fold. Mobile has no Agents panel; chat spawn-summary rows use the same windowed activities and can under-count. Not macOS-specific.
Suggested fix
Stop deriving the fleet from the chat pagination window. Give the panel a thread-level agent projection (the v2 path already sketched in
subagentRuntime.ts) or a query of agent-kindtask.*rows that is independent ofturnLimit/ the 500-row chat cap. Until that exists, a partial window must not be presented as the complete idle count or token total.Capping the host to match the remote would hide agents everywhere. Wrong direction.
Optional confirmation
- Fresh profile / empty cache on the host — expect the remote 9, not 17.
- Remote “load earlier” in chat — some missing names may return if older SQL pages still have their rows.
- User-turn count and roughly how many
task.*rows that thread has.
Accepting. No duplicate found.
- The host has been live-subscribed. The client reducer appends activity rows with no 500 cap, then can resume that fat cache via
- addedacceptedfeature request acceptedfeature request acceptedvia-triageFiled through npx t3 triageFiled through npx t3 triageand removedneeds-triageIssue needs maintainer review and initial categorization.Issue needs maintainer review and initial categorization.
on Sep 16, 2026
Before submitting
Area
apps/web
Steps to reproduce
Observed in the supplied screenshots: the host panel shows 17 idle direct spawns, while the remote panel shows only 9. The exact trigger for the omission has not been isolated; these are observations from an existing session, not a deterministic minimal reproduction.
Expected behavior
The host and remote clients viewing the same thread should expose the same complete direct-spawn roster and consistent aggregate counts once synchronized.
Actual behavior
The remote client shows 9 idle agents and a 12.8M token total. The host client shows 17 idle agents and a 62.3M token total. All 9 entries visible remotely also appear on the host.
The 8 entries absent remotely are:
workflow_contract,daemon_catchup,delivery_performance,catchup_health_order,unfetched_next_step,durable_blocker_next_step,guidance_handoff, andincoming_example.The screenshots were taken at different moments, so elapsed times are not directly comparable. The missing roster entries and different counts are the reported failure; no root cause or fixed nine-agent limit has been established.
Impact
Minor bug or occasional failure
Version or commit
T3 Code (Nightly)
0.0.43-nightly.20260916.1811on both machines: the MacBook Pro host and the Mac Studio remote client.Environment
macOS; T3 Code host on MacBook Pro and remote client on Mac Studio; Codex provider.
Logs or stack traces
Screenshots, recordings, or supporting files
SCR-20260916-kkjk.png
download.png
Workaround
No response