Skip to content

feat(cli): port ACP to V2#37907

Merged
nexxeln merged 18 commits into
v2from
nxl-acp-v2
Jul 21, 2026
Merged

feat(cli): port ACP to V2#37907
nexxeln merged 18 commits into
v2from
nxl-acp-v2

Conversation

@nexxeln

@nexxeln nexxeln commented Jul 20, 2026

Copy link
Copy Markdown
Member

summary

  • add a lazy opencode acp command backed by a private authenticated V2 server and generated client
  • port session lifecycle, config options, MCP registration, content/replay, tools, permissions, usage, and slash commands
  • correlate each prompt by its durable input ID and resolve only after ordered ACP updates reach the terminal execution event
  • migrate the applicable V1 ACP parity suite, including all five subprocess areas
  • preserve rich permission context, edit and patch previews, final file synchronization, clean read output, and completed edit diffs

testing

  • 85 focused ACP tests across mapping, lifecycle, MCP, replay, usage, events, permissions, config, prompt content, skills, and subprocess behavior
  • OTEL_EXPORTER_OTLP_ENDPOINT= OTEL_EXPORTER_OTLP_HEADERS= bun test from packages/cli (149 pass)
  • bun typecheck and bun run build from packages/cli
  • full pre-push monorepo typecheck (32 packages)
  • scoped oxlint, ast-grep, prettier, and git diff --check

Closes #35457

@nexxeln
nexxeln merged commit cf651bc into v2 Jul 21, 2026
7 checks passed
@nexxeln
nexxeln deleted the nxl-acp-v2 branch July 21, 2026 15:43
github-actions Bot pushed a commit to ReStranger/opencode that referenced this pull request Jul 21, 2026
* upstream/v2: (24 commits)
  feat(cli): port ACP to V2 (anomalyco#37907)
  refactor(codemode): simplify model-facing wording (anomalyco#38042)
  fix(core): enforce patch EOF anchors (anomalyco#38039)
  fix(tui): prevent autocomplete search flicker (anomalyco#38128)
  refactor(core): break plugin host cycle (anomalyco#38120)
  refactor: extract shared util package (anomalyco#37828)
  fix: preserve runtime option defaults (anomalyco#38118)
  refactor(tui): simplify mini footer status line (anomalyco#38112)
  mini: settle on wait and durable pending (anomalyco#37984)
  test(app): stabilize offset observer test (anomalyco#38044)
  feat(codemode): support bounded async iteration (anomalyco#38040)
  fix(core): normalize CRLF patch lines (anomalyco#38038)
  fix(core): accept padded patch markers (anomalyco#38036)
  fix(core): compose successive patch updates (anomalyco#38034)
  feat(codemode): support labeled control flow (anomalyco#38035)
  fix(core): improve patch errors (anomalyco#38016)
  fix(server): allow authenticated CORS preflight (anomalyco#38026)
  feat(codemode): support JSON callbacks (anomalyco#38006)
  fix: remove legacy sdk from ci builds
  removed packages/opencode
  ...
github-actions Bot pushed a commit to ReStranger/opencode that referenced this pull request Jul 21, 2026
* upstream/v2: (24 commits)
  feat(cli): port ACP to V2 (anomalyco#37907)
  refactor(codemode): simplify model-facing wording (anomalyco#38042)
  fix(core): enforce patch EOF anchors (anomalyco#38039)
  fix(tui): prevent autocomplete search flicker (anomalyco#38128)
  refactor(core): break plugin host cycle (anomalyco#38120)
  refactor: extract shared util package (anomalyco#37828)
  fix: preserve runtime option defaults (anomalyco#38118)
  refactor(tui): simplify mini footer status line (anomalyco#38112)
  mini: settle on wait and durable pending (anomalyco#37984)
  test(app): stabilize offset observer test (anomalyco#38044)
  feat(codemode): support bounded async iteration (anomalyco#38040)
  fix(core): normalize CRLF patch lines (anomalyco#38038)
  fix(core): accept padded patch markers (anomalyco#38036)
  fix(core): compose successive patch updates (anomalyco#38034)
  feat(codemode): support labeled control flow (anomalyco#38035)
  fix(core): improve patch errors (anomalyco#38016)
  fix(server): allow authenticated CORS preflight (anomalyco#38026)
  feat(codemode): support JSON callbacks (anomalyco#38006)
  fix: remove legacy sdk from ci builds
  removed packages/opencode
  ...
github-actions Bot pushed a commit to ReStranger/opencode that referenced this pull request Jul 21, 2026
* upstream/v2: (26 commits)
  fix(core): refresh model catalog every five minutes (anomalyco#38142)
  feat(util): configure package publishing (anomalyco#38129)
  feat(cli): port ACP to V2 (anomalyco#37907)
  refactor(codemode): simplify model-facing wording (anomalyco#38042)
  fix(core): enforce patch EOF anchors (anomalyco#38039)
  fix(tui): prevent autocomplete search flicker (anomalyco#38128)
  refactor(core): break plugin host cycle (anomalyco#38120)
  refactor: extract shared util package (anomalyco#37828)
  fix: preserve runtime option defaults (anomalyco#38118)
  refactor(tui): simplify mini footer status line (anomalyco#38112)
  mini: settle on wait and durable pending (anomalyco#37984)
  test(app): stabilize offset observer test (anomalyco#38044)
  feat(codemode): support bounded async iteration (anomalyco#38040)
  fix(core): normalize CRLF patch lines (anomalyco#38038)
  fix(core): accept padded patch markers (anomalyco#38036)
  fix(core): compose successive patch updates (anomalyco#38034)
  feat(codemode): support labeled control flow (anomalyco#38035)
  fix(core): improve patch errors (anomalyco#38016)
  fix(server): allow authenticated CORS preflight (anomalyco#38026)
  feat(codemode): support JSON callbacks (anomalyco#38006)
  ...
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