Context
#121 added parentId and role to every session and taught the terminal agents pane (plugin/mods/agents/pane.ts) to draw a real dispatch tree. Each worker now hangs from the session that started it. For example, a reviewer started by a general worker appears under that worker, not under the run root.
The canvas in the web console (codedeck web) still draws a run as a flat list under the root.
Proposal
- Use
parentId to nest each worker under its dispatcher in the web canvas. Fall back to the root when the parent is missing from the run, or for a legacy row that has none.
- Label the root with its
role instead of a fixed "Orchestrator", and show role on worker cards.
- Keep a finished worker visible while any of its descendants is live, matching the terminal pane.
session.list already returns both fields, so no daemon change should be needed.
Reference: .specs/features/worker-lineage/spec.md (AC5–AC7).
Generated by Claude Code
Context
#121 added
parentIdandroleto every session and taught the terminal agents pane (plugin/mods/agents/pane.ts) to draw a real dispatch tree. Each worker now hangs from the session that started it. For example, a reviewer started by ageneralworker appears under that worker, not under the run root.The canvas in the web console (
codedeck web) still draws a run as a flat list under the root.Proposal
parentIdto nest each worker under its dispatcher in the web canvas. Fall back to the root when the parent is missing from the run, or for a legacy row that has none.roleinstead of a fixed "Orchestrator", and showroleon worker cards.session.listalready returns both fields, so no daemon change should be needed.Reference:
.specs/features/worker-lineage/spec.md(AC5–AC7).Generated by Claude Code