Skip to content

ACP client runtime: host vibe-acp from the fork (lifecycle, streaming, session mapping) #1710

Closed

Description

@dezren39

Part of the Vibe-embedding epic (ACP-hosted vibe-acp as successor to the vibe-direct wire emulation).

Scope

Build the fork's ACP client runtime for vibe-acp:

  • Spawn and supervise the vibe-acp process (stdio, JSON-RPC 2.0, ACP protocol v1) per host/workspace, with lifecycle management (start on demand, reap on idle/exit, restart on crash with session state preserved by the agent under ~/.vibe).
  • Implement the client side of: initialize, session/new, session/prompt, session/cancel, session/load (agent advertises loadSession: true), session/list / session/fork / session/close.
  • Map fork sessions ↔ ACP sessions 1:1; stream session/update notifications (agent message/thought chunks, tool calls and their updates) into the fork's session event model.
  • Prompt capabilities the agent advertises: text, image, embeddedContext.

Spike proof this builds on

2026-11-05, laptop amd-6: a 211-line stdlib Python host drove a real turn end-to-end (session 48475654-f48c-f816-04aa-56fd06364bd4, tool call executed, usage in the prompt response). Artifacts: ~/work/spikes/vibe-acp-embed-2026-11-05/ on the laptop.

Acceptance

  • A fork session can be created against the runtime and driven through a multi-step tool-using turn with streaming output visible in the fork, indistinguishable in shape from a native provider session.
  • Killing the vibe-acp process mid-session and restarting it loses no conversation state (session/load resumes).
  • Runtime never touches the vibe-direct path; both coexist.

Activity

  1. dezren39 commented on Nov 5, 2026

    @dezren39
    Author

    CLOSED with parent epic #1709 — direction corrected by Drew (2026-11-05): *-direct providers emulate the first-party wire; no ACP embedding. See doctrine issue #1717. The auth/usage concerns that remain valid (keyring credential lifecycle, call_source attribution) are carried in #1717's status and audit sections.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions