Repository navigation
ACP: /rename reports success but doesn't rename the session #5115
Description
Describe the bug
In ACP mode (copilot --acp --stdio), /rename <name> reports success but doesn't rename the session. Copilot advertises the command in available_commands_update, and sending it as a session/prompt ends end_turn in about 1 ms, with no model call, with the reply Session renamed to: <name>. But nothing is saved: the session's workspace.yaml keeps its old name and user_named: false, and session/list keeps returning the old title, from the same process and from a new one. /session rename <name> behaves the same.
ACP has no client method to set a session's title (titles are agent-owned and reported with session_info_update), so /rename is the only way for an ACP client to rename a Copilot session.
Affected version
GitHub Copilot CLI 1.0.95
Steps to reproduce the behavior
- Start
copilot --acp --stdioandinitialize. session/newwith acwd, and send one ordinary prompt, so the session is saved and listed (its title is the first message).- Send a
session/promptwith the text/rename My new name. - The reply is
Session renamed to: My new name, withstopReason: end_turn. - Call
session/listwith thatcwd, in the same process or a new one: the session'stitleis still the first message. - Open
~/.copilot/session-state/<id>/workspace.yaml: still the oldname, anduser_named: false. Nosession_info_updateis sent with the new title.
Expected behavior
/rename <name> over ACP renames the session as it does in the interactive CLI: it saves the name (name, user_named: true), session/list returns it, and Copilot sends a session_info_update with the new title, so the client can update its view.
Additional context
- Windows 11, x86_64. Driven from a Node ACP client (
@agentclientprotocol/sdk). - Writing
nameanduser_named: trueintoworkspace.yamlby hand does change the title insession/list, so the listing side works. Only the command doesn't save. - In the 1.0.95 bundle, one session implementation's
renameSession()calls the nativesession.name.set, and another's is an empty stub (async renameSession(t){}, next togetWorkspace(){return null}). The ACP session seems to get the stub. The success message is printed either way. - Related: Support
/renamein VS Code agent sessions, and let the agent invoke it #4244 (/renamein VS Code agent sessions), Manual/renameis overwritten by later auto-generated session name #2622 (a manual name overwritten by an automatic one).
Activity
rishidevcli54-mcp commentedon Oct 11, 2026