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
The Copilot CLI's ACP mode (agency copilot --acp, wrapping copilot 1.0.45) does not advertise a fork capability in its InitializeResponse.agentCapabilities.sessionCapabilities, even though the v1.0.45 PTY UI does ship a working /fork slash command (release notes; #3252).
This blocks ACP-only clients from using the SDK's unstable_forkSession() to do things like generate summaries off a fork without polluting the original session.
Downstream context: copilot-ide generates session summaries by shelling out to agency copilot -p "...", which spawns a one-shot session, gets a response, and exits. We then have to:
Snapshot ~/.copilot/session-state/ before the spawn
Diff after to find the scratch session(s) the CLI created
rm -rf them so they don't pollute the user's SessionList
That's ~60 lines of cleanup ceremony in summaryService.ts plus a SCRATCH_PREFIXES filter elsewhere. With session.fork exposed in ACP, the entire dance collapses to:
— no on-disk pollution, no snapshot/diff, no scratch sessions ever appearing in the user's list.
The SDK side already has it: @agentclientprotocol/sdk v0.21.0 ships unstable_forkSession() documented as "allowing operations like generating summaries without affecting the original session's history." We just need the agent (Copilot CLI) to advertise the capability and respond to the corresponding ACP method.
Ask
Add fork to sessionCapabilities in the ACP InitializeResponse (and implement the corresponding session.fork / session/fork ACP method, following the SDK's unstable_forkSession shape).
If there's a stability/timeline concern (the SDK still flags it unstable_), it'd be useful to know what's blocking stabilization.
Confirm whether the existing v1.0.45 /fork slash command can be wired to the same backend, or whether the ACP path needs a separate implementation.
Summary
The Copilot CLI's ACP mode (
agency copilot --acp, wrapping copilot 1.0.45) does not advertise aforkcapability in itsInitializeResponse.agentCapabilities.sessionCapabilities, even though the v1.0.45 PTY UI does ship a working/forkslash command (release notes; #3252).This blocks ACP-only clients from using the SDK's
unstable_forkSession()to do things like generate summaries off a fork without polluting the original session.Probe result
Sending an
initializeJSON-RPC over stdio:returns:
{ "jsonrpc": "2.0", "id": 1, "result": { "protocolVersion": 1, "agentCapabilities": { "loadSession": true, "mcpCapabilities": { "http": true, "sse": true }, "promptCapabilities": { "image": true, "audio": false, "embeddedContext": true }, "sessionCapabilities": { "list": {} } }, "agentInfo": { "name": "Copilot", "title": "Copilot", "version": "1.0.45" }, ... } }sessionCapabilitiesonly containslist. Nofork.Why we want it
Downstream context: copilot-ide generates session summaries by shelling out to
agency copilot -p "...", which spawns a one-shot session, gets a response, and exits. We then have to:~/.copilot/session-state/before the spawnrm -rfthem so they don't pollute the user's SessionListThat's ~60 lines of cleanup ceremony in
summaryService.tsplus aSCRATCH_PREFIXESfilter elsewhere. Withsession.forkexposed in ACP, the entire dance collapses to:— no on-disk pollution, no snapshot/diff, no scratch sessions ever appearing in the user's list.
The SDK side already has it:
@agentclientprotocol/sdkv0.21.0 shipsunstable_forkSession()documented as "allowing operations like generating summaries without affecting the original session's history." We just need the agent (Copilot CLI) to advertise the capability and respond to the corresponding ACP method.Ask
forktosessionCapabilitiesin the ACPInitializeResponse(and implement the correspondingsession.fork/session/forkACP method, following the SDK'sunstable_forkSessionshape).unstable_), it'd be useful to know what's blocking stabilization./forkslash command can be wired to the same backend, or whether the ACP path needs a separate implementation.Environment
Related
/forkshipped in v1.0.45)