feat: nested subagent tree — parent-tagged lifecycle events + Agents tab UI - #8
Conversation
… Agents tab UI Workstream A (buzz-acp): SubagentTracker correlating delegation tool calls to subagent lifecycle events (spawned/running/complete/failed) with parent tag from the harness's own agent pubkey; hooks in ACP session-update handler; 8 unit tests. Workstream B (desktop): SubagentTree component (default-collapsed, live count badge, status dots), grouping by parent pubkey first; 41 tests. Wiring: observerRelayStore ingests subagent_lifecycle events into subagentsByParent via pure lib/subagentLifecycleIngest (alias-free, node --test, 5 tests); useSubagents hook; AgentsView passes live records. Merge-regression fixes: un-awaited async handle_switch_model_control call in observer_channel_controls test path (sync artifact); AgentIdentityCard JSX malformed by conflict resolution (restored modelLabel line + de-duped subtitle prop); UnifiedAgentsSection restored fork's modelLabel prop; removed unused imports. Gates: cargo check --workspace --all-targets 0 errors; cargo test -p buzz-acp 953/953; desktop tsc clean; pnpm test 6059/6059. Signed-off-by: Michael Fethe <mfethe1@gmail.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Team Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…e transport, version subagent cache - subagent.rs/kind.rs: 20003 documented as RESERVED (observer frames are the transport; frame agent tag = parent identity) — review #1/#2 - observerRelayStore: subagentsVersion bump on every real fold + reset, cache keyed on version not length — review #3 (stale-tree UI bug) - SPEC wire contract section updated to as-built Signed-off-by: Michael Feth <mfethe1@gmail.com>
|
Review fixes landed ( |
…pair overlap) # Conflicts: # desktop/src/features/agents/ui/AgentIdentityCard.tsx # desktop/src/features/agents/ui/UnifiedAgentsSection.tsx
Signed-off-by: Michael Feth <mfethe1@gmail.com>
…e transport, version subagent cache - subagent.rs/kind.rs: 20003 documented as RESERVED (observer frames are the transport; frame agent tag = parent identity) — review #1/#2 - observerRelayStore: subagentsVersion bump on every real fold + reset, cache keyed on version not length — review #3 (stale-tree UI bug) - SPEC wire contract section updated to as-built Signed-off-by: Michael Feth <mfethe1@gmail.com>
What
buzz-acp: SubagentTracker (toolCallId→subagent correlation), emits kind:20003subagent_lifecycleobserver events with["parent", <parent-pubkey>]tag; payload{subagent_name, status, summary?}(280-char summary cap). 8 unit tests.SubagentTree.tsxnested rows under agent cards (expand/collapse, default-collapsed); pure ingestion modulelib/subagentLifecycleIngest.ts+ store wiring (observerRelayStore.tssubagentsByParent);useSubagentshook.~/buzz-program/SPEC-nested-subagents.md.Sync-merge regressions fixed (found by this branch's gates)
buzz-acp/src/lib.rs: un-awaitedhandle_switch_model_controlcall (dropped future, nocontrol_resultemit — compiler-invisible)AgentIdentityCard.tsx/UnifiedAgentsSection.tsx: modelLabel/subtitle JSX collision breaking typecheck AND 3 'pre-existing' UnifiedAgentsSectionCardTarget test failuresAgentsView.tsx: unused merge-leftover importsEvidence
cargo test -p buzz-acp: 953/953cargo check --workspace --all-targets: 0 errorstsc: clean;pnpm test: 6,059/6,059 (3 prior fails fixed by this branch)