Skip to content

fix(acp-adapter): migrate to the standing server's v2 session API (#4614) - #4698

Merged
dezren39 merged 1 commit into
mainfrom
queue/6571-4614-acp-v2-session-api
Nov 3, 2026
Merged

dezren39 merged 1 commit into
mainfrom
queue/6571-4614-acp-v2-session-api

Conversation

@dezren39

@dezren39 dezren39 commented Nov 3, 2026 •

Copy link
Copy Markdown
Member

What

Migrates bin/opencode-acp-adapter.mjs from the v1 session contract to the standing server's v2 session API (issue #4614), with the contract test re-expressed in v2 shapes. Queue task 6571.

v2 contract (probed live from the standing server, not guessed)

Pinned from the server's own OpenAPI (/openapi.json) plus a live event-stream capture and a full probe prompt cycle against 127.0.0.1:13420:

  • Create: POST /api/session with location.directory in the body; responses carry a {data} envelope (adapter now unwraps it, mirroring pm-stack/dispatch/src/opencode.ts)
  • Prompt: POST /api/session/:id/prompt with {text, files} — there is no parts array in v2; text-bearing ACP blocks concatenate into text, binary/link blocks become files attachments by URI (data: URIs for embedded content)
  • Events: GET /api/event, frames {type, data} — the v2 event model is session.text.delta / session.reasoning.delta for streaming and session.execution.succeeded / session.execution.failed for prompt completion (no message.part.updated / session.idle)
  • Permission: permission.asked event carries a v2 Permission.Request ({id, sessionID, action, resources, metadata}); reply is POST /api/session/:id/permission/:requestID/reply with {decision: once|always|reject}
  • Cancel: POST /api/session/:id/interrupt

Verification

Interaction with PR #4632 (#4617)

PR #4632 (reconnect reconcile) is still open on the v1 routes (/session/status). It is a separate queue task's PR and is not ported here; it will need its reconcile re-based onto the v2 surface (GET /api/session list) after this lands. Flagging rather than silently competing.

Refs #4614


Autofix with [code]smith
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with what you need.

@dezren39
dezren39 requested a review from a team as a code owner November 3, 2026 01:11
@coderabbitai

coderabbitai Bot commented Nov 3, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 23 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: ebe7832a-9f79-4adc-aaac-b1830a392749
Commits

Reviewing files that changed from the base of the PR and between 19d80a6 and 744ced9.

Files selected for processing: 2
  • bin/opencode-acp-adapter.mjs
  • bin/opencode-acp-adapter.test.mjs
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

Share

CodeRabbit Verify

  • Run CodeRabbit Verify to test the changes in this pull request.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-03T01:12:44.625434Z 744ced9 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant