Repository navigation
Closed
Labels
enhancementRequested improvement or new capability.Requested improvement or new capability.
Milestone
Description
Goal
Give every thread a visible role with an icon, cut the roles down to five, and make the difference between kinds of subagents obvious.
Owner request (2026-10-12):
- Role icons for each thread.
- Standard roles: Orchestrator, Implementor, Reviewer, Investigator, Checker.
- An easy way to tell native subagents (which "run on their own, open parent") apart from real threads you can type into.
- Split subagents into two groups:
- native subagents working in the same place as their orchestrator;
- child threads working in their own worktree, which are essentially issue agents.
What exists today
- Two unrelated role lists, neither stored on threads.
- Model-role ids in settings (
DEFAULT_MODEL_ROLES,settings.ts~1248–1327): orchestrator, fast-builder, checker, thorough-builder, bounded-worker, evidence-gatherer, quick-claude, strong-reviewer. These only feed agent prompts. delegate_task'srole: implementation, research, review, design, test, general (orchestratorMcp.ts~145). It only prefixes the prompt and picks the default workspace.- Neither is saved on the child thread (
OrchestrationV2AppThreadhas no role field), and sidebar rows show no role.
- Model-role ids in settings (
- Issue-work roots and workers are inferred from
repositoryOrchestrationandlinkedIssue. - Native versus app-owned.
isProviderNativeSubagentThread(relationshipToParent === "subagent" && creationSource === "provider") is used byProviderSubagentBar.tsx("Runs on its own" / "Open parent").- The sidebar nesting, the timeline divider and the header breadcrumb treat both kinds the same.
- Own worktree versus shared. This is known only by comparing
worktreePathwith the parent's (childWorktreeLabel).
Proposed
- Five roles. Make the five roles the one list used for both model roles and
delegate_task'srole, with a mapping from the old ids so saved settings keep working.- Model choices per role stay user-configurable, and stay ranked by usage (Subagents ask their orchestrator; fix t3_request_user_input; usage-weighted model choice #12).
- Open decision: how fast/thorough builder variants fit. For example Implementor could have a fast and a thorough model choice.
- Store the role on the thread when it is created: delegated children from
delegate_task, issue roots as Orchestrator, issue workers as Implementor. Top-level user threads have no role, or Orchestrator if they delegate. - Show a role icon in the sidebar row, as a column (Sidebar rows in fixed columns: location, role, provider, model, effort, name, time, work, usage #19), and in the chat header.
- Mark the two subagent kinds clearly:
- Native subagents: read-only, same workspace, "runs on its own". A distinct icon or style, no input affordance.
- Child threads: own thread you can type into, usually its own worktree, often issue agents. They look like normal threads, nested under their orchestrator.
Mobile is out of scope. Related: #12 (roles ranked by usage), #8 (issue agents).
Metadata
Metadata
Assignees
Labels
enhancementRequested improvement or new capability.Requested improvement or new capability.
Activity
tannerpolley commentedon Oct 13, 2026
Owner decisions (2026-10-13):
tannerpolley commentedon Oct 14, 2026
Merged to main in 10b8b90 (branch t3/18-20-role-location-icons, 5 commits).
Ships in v2.12.1.