fix(web): remote subagents no longer split from the lineage list#29285

merged1
main
t3/fix-subagent-ui-split
opened7d agobyTtheo
View on GitHubTwo-way sync enabledPR last imported 3d ago

In the thread Lineage panel, subagents running on a linked machine ("on BeeBox") showed in their own list below "Previous agents", whatever their status. Running ones looked finished, and finished ones sat outside the group. Confusing split.

Now remote subagents go into the same groups as local ones, using the same rule: running with the active agents, finished under "Previous agents". The Lineage heading also shows when the only active agents are remote. Mobile already showed one list.

Proof: the existing remote-agent browser test now checks that a finished remote agent sits inside "Previous agents". It fails on main and passes here. vp run check:changed passes. Screenshots are from the real web app (dev server, copy of a real thread with BeeBox subagents; 3 of them set to running for the capture).

BeforeAfterAfter, Previous agents expanded
beforeafterafter expanded
Full window

Before: before full

After: after full

Reviewed with sol-loop: 1 pass with GPT-6.1 Sol. Sol verdict: approved

Created with Claude Opus 5.5 in Claude Code, running in T3 Code.

🤖 Generated with Claude Code

Checks

23 successful · 17 skipped
All checks passed
15fa5e7
Synced from GitHub

Approvability

Verdict: Needs Human Approval

Macroscope's review found this PR requires human approval — Remote subagents now share lineage grouping and pagination with local agents. Human confirmation is needed for the changed initial visibility: finished remote agents are collapsed, and active remote agents may require Show more.

No code changes detected at 15fa5e7. Prior analysis still applies.

You can add or adjust custom eligibility rules. Learn more.

Synced from GitHub

Explain Change →

No actionable comments were generated in the recent review.

Walkthrough

Remote subagents now join active or previous lineage groups based on status. The groups render remote rows alongside thread rows and include them in existing pagination. The browser test checks that a finished remote task appears after opening “Previous agents.”

Changes: Remote subagent lineage

Layer / File(s)Summary
Shared lineage row status
apps/web/src/components/chat/ThreadRelationshipsControl.tsx
Lineage groups accept thread and remote rows. Failure counts use the status from either row type.
Group and render remote rows
apps/web/src/components/chat/ThreadRelationshipsControl.tsx, apps/web/src/components/chat/ThreadRelationshipsControl.browser.test.tsx
Remote rows join the active or previous group based on status and render within the groups. Remote rows also affect lineage and heading visibility. The test opens “Previous agents” before checking a finished remote task.

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Possibly related issues

  • pingdotgg/t3code#26883: The change places finished remote dispatches inside the collapsed “Previous agents” group.
  • pingdotgg/t3code#26411: The change applies status-based grouping to remote subagents, but does not change the recency policy.
  • pingdotgg/t3code#29485: The change groups running remote subagents separately from finished ones, but does not add status ordering for other lineage rows.

Possibly related PRs

  • pingdotgg/t3code#28423: This PR adds the remote-subagent tooltip test, which this change updates to open “Previous agents” before checking the finished subagent.
  • pingdotgg/t3code#30249: Both changes update remote subagent row handling; this PR groups those rows by status.
  • pingdotgg/t3code#26576: Both changes group remote subagents with active and previous lineage rows and include them in status-based counts.

Suggested labels: bugfix

Suggested reviewers: juliusmarminge, fatihozdil

Merge Risk: External image Minimal · up to 15fa5

Remote agents can be grouped with the lineage rows as intended; no identified issue remains to block merging after normal checks.

Pre-merge checks: Passed 4

Check nameStatusExplanation
Title checkPassedThe title clearly describes the remote subagent grouping fix.
Description checkPassedThe description explains the problem, fix, verification, and UI evidence. It does not include the required headings, scope approval or exemption rationale, or GitHub-hosted screenshots.
Linked Issues checkPassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes checkPassedCheck skipped because no linked issues were found for this pull request.
Finishing Touches

Generate docstrings

  • Commit to this branch
  • Create a new PR
Generate unit tests (beta)

  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Usage-based review receipt

Note

This review was completed with usage-based billing: files reviewed beyond your plan's included limits are billed at $0.25/file. View usage-based billing.

External image Recent review info

External image Run configuration

External image Commits

Reviewing files that changed from the base of the PR and between dc287a4d502af3653847007e6cb21ea0ed2f527c and 15fa5e7fb9a53b7d471e66124417da3e7c10c3ad.

External image Files selected for processing: 2

  • apps/web/src/components/chat/ThreadRelationshipsControl.browser.test.tsx
  • apps/web/src/components/chat/ThreadRelationshipsControl.tsx

Limit details: You’ve used all 10 included reviews currently available.

Added 1 commit

  • fix(web): remote subagents no longer split from the lineage list15fa5e7