You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ACP client runtime: host vibe-acp from the fork (lifecycle, streaming, session mapping) #1710
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.
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.
Activity
dezren39 commentedon Nov 5, 2026
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.