Skip to content

feat: return initial ACP v2 session commands - #652

Merged
benbrandt merged 1 commit into
mainfrom
feat/acp-v2-initial-commands
Oct 20, 2026
Merged

benbrandt merged 1 commit into
mainfrom
feat/acp-v2-initial-commands

Conversation

@benbrandt

Copy link
Copy Markdown
Member

Summary

  • Return initial availableCommands in ACP v2 session/new, session/resume (omitted/null/full replay), and session/fork responses instead of sending an initial commands notification.
  • Reuse the existing command builder and a shared v2 input converter. Preserve AIR command-action and skill-path metadata, and leave v1 behavior unchanged.
  • List skills once per setup using that session's cwd and additional directories, including forks. Seed change detection from the response; subsequent command changes still use replacement notifications.
  • Keep initial discovery best-effort: setup succeeds without availableCommands if discovery fails. Preserve newer command snapshots when overlapping reads finish out of order, and reject stale setup when the session closes or is replaced during discovery.
  • Document the v2 client contract and update lifecycle snapshots/fixtures.

System prompts and standard subagent support remain separate work packages; the current AIR subagent contract is untouched.

Validation

  • npm run typecheck — passed, including examples.
  • npm test — 1,821 passed, 36 skipped.
  • npm run build — passed.
  • npm run test:integration — 5 passed against real Codex app-server with a local mock model. V2 coverage verifies initial commands on new, all resume modes, and fork, with no redundant initial command notifications.
  • Focused wire tests cover AIR/non-AIR metadata, fork-specific skill discovery, unchanged and changed command lists, discovery failure/recovery, overlapping reads, and closure during discovery.
  • Live-model smoke test via npm run codex-test — passed.
  • git diff --check — passed.

The full live-model E2E suite was not run.

Specification checked at agent-client-protocol@4034a8cbc99bc48fd4579f70a3407b07907e0eb6, notably docs/protocol/v2/slash-commands.mdx and the unstable v2 setup response schemas.

@benbrandt
benbrandt merged commit 5e9b7c5 into main Oct 20, 2026
6 checks passed
@benbrandt
benbrandt deleted the feat/acp-v2-initial-commands branch October 20, 2026 12:45
Rizzen pushed a commit that referenced this pull request Oct 26, 2026
🤖 I have created a release *beep* *boop*
---


##
[2.3.0](v2.2.2...v2.3.0)
(2026-10-26)


### Features

* add ACP v2 support again
([#620](#620))
([9e1690f](9e1690f))
* mark session list rows of worktrees Codex made (agentWorktree)
([#631](#631))
([aa02d43](aa02d43))
* narrow models to what the providers/set gateway lists
([#627](#627))
([3f555f9](3f555f9))
* report the model of each native subagent session
([#678](#678))
([51005a6](51005a6))
* return initial ACP v2 session commands
([#652](#652))
([5e9b7c5](5e9b7c5))
* support AIR sessionIndex extension
([#590](#590)) v2
([#622](#622))
([2fd758c](2fd758c))
* support append-mode ACP system prompts
([#653](#653))
([5993a12](5993a12))


### Bug Fixes

* disable Codex's Visualize skill, whose output ACP clients show as raw
text
([#667](#667))
([0ba94f5](0ba94f5))
* display the selected wire provider as JetBrains Air Gateway
([#589](#589))
([cc54abf](cc54abf))
* explain Codex config load errors caused by a deleted working directory
([#626](#626))
([a636804](a636804))
* explain invalid_encrypted_content errors after a provider change
([#668](#668))
([a77829f](a77829f))
* hold a fork back from the session list until its session/fork response
is out
([#642](#642))
([59974c7](59974c7))
* include subagent edits in the agent file-change report
([#632](#632))
([7d07123](7d07123))
* leave codex exec runs out of the session list without sessionIndex
([#639](#639))
([df75d2b](df75d2b))
* migrate to ACP SDK 2.0
([#649](#649))
([c8fd166](c8fd166))
* publish the commands when the skills change
([#643](#643))
([a62b568](a62b568))
* report structured ACP v2 failures
([#651](#651))
([5377bfe](5377bfe))
* show a Codex subagent's follow-up turn in a new subagent session
([#634](#634))
([7c761c7](7c761c7))
* synchronize ACP v2 foreground state
([#650](#650))
([986955a](986955a))
* update codex to 0.164.0
([#666](#666))
([e227c0e](e227c0e))
* wait for the compact turn to finish
([#654](#654))
([ced4c34](ced4c34))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: acp-release-bot[bot] <246668977+acp-release-bot[bot]@users.noreply.github.com>
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