Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[Bug]: Agents panel opens at the oldest subagent on every thread switch, never the newest

Aperta Adatta ai principianti
#22,414 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

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
66/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
react, typescript
Ambito
frontend

Direzione di ricerca

Inizia da apps/web/src/components/AgentsPanel.tsx e controlla come viene montato ScrollArea quando cambiano i thread o le schede. Consulta packages/client-runtime/src/state/subagentRuntime.ts per confermare l’ordine dell’elenco. Implementa il comportamento concordato per la posizione iniziale, in modo che un pannello Agents appena aperto mostri l’agente più recente. Poi verificalo con un thread che contiene molti subagents e acquisisci screenshot prima e dopo, come richiesto da CONTRIBUTING.md.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Before submitting
  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.
Area

apps/web

Steps to reproduce
  1. Open a thread that has spawned many subagents. 20+ makes it obvious; I routinely have tens per thread.
  2. Open the right panel's Agents tab. The roster renders oldest-first, so the newest agent is at the very bottom.
  3. Scroll to the bottom to see the agent that is actually running.
  4. Switch to another thread and switch back. The same thing happens when switching the right panel to Files and back, or hiding and showing the right panel.
  5. Look at the Agents roster.
Expected behavior

Opening the Agents panel should land on the newest subagent, at the bottom of the list, because that is the one doing work right now. The oldest agent in a 30-agent roster finished twenty minutes ago and is the least useful thing to show.

A per-thread restored position would be an acceptable alternative for threads I have already visited, but a thread opened for the first time should still start at the newest agent rather than the oldest.

Actual behavior

The roster always mounts at the top, showing the oldest subagent. Every thread switch costs a manual scroll to the bottom to find the live agent. With tens of agents per thread this is constant friction.

Two things combine to produce it on current main:

  • The roster is sorted oldest-first. packages/client-runtime/src/state/subagentRuntime.ts:853 sorts directAgents by ascending firstSeenAt; workflow members sort by phase index then agentIndex (same file, lines 784-824). The newest agent is always last.
  • The panel has no scroll handling at all. apps/web/src/components/AgentsPanel.tsx:548 renders a bare ScrollArea with no initial offset, no bottom anchoring, and no restoration across remounts, so it mounts at scrollTop: 0 every time.
Impact

Minor bug or occasional failure

Version or commit

main @ e67abcf798f8

Environment

macOS

Logs or stack traces

Workaround

Scroll to the bottom of the Agents panel by hand after every thread switch.


Prior art, please read before marking this a duplicate

Three PRs have attempted the neighbouring problem, all closed unmerged:

  • #9637 and #14512 were closed for incomplete UI verification, specifically a missing before capture.
  • #14525 was closed as part of the orchestrator V2 transition (#2829), with the explicit note: "We're closing the current implementation without assuming the underlying request is resolved." That closure also said V2 removed AgentsPanel.tsx; the file is present on current main, so whatever V2 did, the panel is back and still has no scroll handling.

All three solved scroll preservation, restoring the offset you last had on that thread. This issue is a different ask: land on the newest agent, including on a thread opened for the first time, where there is no saved offset to restore. The two could ship together, but preservation alone would not fix this.

Related but distinct: #8759 (right tabs should persist state and scroll position, generic, filed against the diff tab), #11571 (diff tab loses scroll position on thread switch), #17751 (Agents panel horizontal overflow, different axis).

Happy to contribute

I'm glad to pick this up and open the PR if a maintainer confirms the direction, in particular whether you want plain bottom-anchoring on mount or bottom-anchoring plus per-thread position restore. Given that two of the three prior PRs died on verification evidence rather than on the code, I'd rather agree the behavior first and then come with before/after captures that match CONTRIBUTING.md.

Lingua principale
TypeScript
Stelle
24.8k
Fork
6.4k
Merge medio
3h 39m
PR unite (30g)
301

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di pingdotgg/t3code

Tutte le issue di pingdotgg/t3code

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.