Skip to content

feat(acp): subagent visibility in IDE via ACP protocol #1007

@bug-ops

Description

@bug-ops

Overview

Zeph has a mature ACP implementation but subagent activity is invisible to IDEs. When the orchestrator spawns subagents (skill delegation, multi-step tasks), the IDE sees flat opaque tool calls with no hierarchy, no real-time terminal streaming, and no file navigation.

This epic tracks bringing Zeph ACP to parity with the Zed claude-agent-acp reference implementation.

Background

Reference: https://github.com/zed-industries/claude-agent-acp

The three missing capabilities:

  1. parent_tool_use_id propagation — IDE nests subagent output under parent tool call card
  2. Terminal streaming lifecycle (terminal_info / terminal_output / terminal_exit in _meta) — real-time bash output in IDE tool cards
  3. ToolCallLocation (filePath + line range) — IDE editor cursor follows agent across files

Acceptance Criteria

  • IDE chat view shows subagent output nested under parent tool call card
  • IDE terminal view streams bash output in real time (no buffer-then-show)
  • IDE editor cursor follows agent when read_file/write_file tool fires
  • parent_tool_use_id is null for top-level agent, <uuid> for subagents
  • All existing 40+ ACP unit tests pass unchanged
  • cargo clippy --workspace -- -D warnings passes
  • cargo nextest run --workspace --lib --bins passes

Files Affected

File Change
crates/zeph-acp/src/agent.rs LoopbackEvent variants, prompt() handler, _meta serialization
crates/zeph-acp/src/terminal.rs Add streaming output sink to execute()
crates/zeph-acp/src/fs.rs Return file path for ToolCallLocation
crates/zeph-core/src/agent/ Inject parent_tool_use_id when spawning subagents

Child Issues

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions