Repository navigation
Description
Problem
The Agents list puts every live agent of every PC in one list. On a PC where an orchestrator starts background workers and subagents, the few sessions a person talks to are lost among them.
Measured on v0.4.12 (herdr 0.9.5, one PC): 94 agents in herdr agent list. 84 of them are background workers that run one task and exit; 10 are sessions a person talks to. The 10 sit between the workers, and their order changes as the workers change state.
In v0.4.12 the list has one split only: pinned rows first, then the rest (src/components/AgentSidebar.tsx:90-95, splitPinnedRows). A pin is keyed by pane id (sidebarPinKey), so it does not follow a session into a new pane, and it cannot keep the next new worker out of the main list.
Proposal
Show the Agents list in two parts: sessions a person drives, and background agents (workers, subagents). The background part starts folded and shows its count, as the section toggle already does for the whole list (AgentSidebar.tsx:180-184).
Take the split from herdr, not from a guess. herdr already lets a launcher tag a pane: herdr pane report-metadata <pane_id> --source <id> --token <name>=<value>, and since #1209 (97a4803 on main) the bridge reads pane tokens into the snapshot (shared/pane-tokens.ts). One documented token, for example role=background, set by whatever starts the worker, would put that pane in the background part. Panes without the token stay where they are today, so nothing changes for users who do not set it.
Pinned rows keep their card above both parts. A background agent that is blocked could still show in the main part until it is answered, so a question is never hidden in a folded group.
Where
Sidebar and navigation
Where it exists today
- The Codex desktop app keeps background and subagent work out of the main thread list, in a separate "background agents" box at the bottom of the sidebar. Source: a user report, not official docs: Always show subagents in the left sidebar openai/codex#19106 ("to see the output of a subagent i have to expand the background agents at the bottom").
- Codex's own expected behavior for child threads is "should not be surfaced as top-level recent conversations by default, or should be grouped under the parent thread": Subagent child threads are counted as top-level recent conversations and can leave stale open spawn edges openai/codex#25341 (open issue, not official docs).
- herdr's own sidebar has the tagging half: custom
$namepane tokens and per-tokenhiderules ([ui.sidebar.agents]rows). It has no grouping of agent rows by token; I checked herdr 0.9.5's config reference and found none.
Workarounds and alternatives
- Pin each interactive agent. This works until its pane changes, and every new worker still lands in the main list.
- Settings → Agents order → Activity. This moves recent work up but mixes workers and interactive sessions.
- Fold the whole Agents section. This hides the interactive sessions too.
- Related: Keep user workspaces separate from worker and worktree workspaces #770 (workspace list, same split for workspaces), Show a PC to workspace to worker tree in the sidebar #773 (PC > workspace > worker tree), Notify only for interactive sessions, not codex exec workers #769 (alerts only for interactive sessions). This request is the Agents-list part only and could share the same herdr signal.
Activity
evidence: #1369 screenshots after review fixes
feat(sidebar): show background agents apart from the people's session…
feat(sidebar): set background workspaces apart, behind a setting (par…