Skip to content

Clone chat: Support easily branching/cloning sessions #171

Description

@noctuid

Sometimes I find myself wanting to go down a separate path and ask questions or make changes unrelated to the main session before coming back to it, but when I come back I don't want to pollute the context with that tangent. Right now you can kind of do this by rewinding, but I'd actually like to keep the history as two separate sessions, so I could come back to either.

Basically I would like these commands:

  • Start a new session/chat but with the context/messages from the current session (e.g. eca-clone-chat)
  • It would also be nice to have a command for resuming a session with Emacs minibuffer completion instead of needing to use /resume

Activity

  1. ericdallo commented on Mar 3, 2026

    @ericdallo
    Member

    Hum, there is editor-code-assistant/eca#28 which would make possible to @My-Chat somehow, but a clone chat sounds interesting although would require changes on server as well.

    It would also be nice to have a command for resuming a session with Emacs minibuffer completion instead of needing to use /resume

    Can you elaborate how this would look like for user step by step to make sure I got that?

  2. noctuid commented on Mar 3, 2026

    @noctuid
    Author

    Maybe it could be called eca-chat-resume. It would be similar to running eca-chat-new and then manually using the /resume command. You could press a key anywhere (in a project file or existing eca buffer), and you would see the chat ids/information to select from.

    I use vertico, so e.g. each of these would be a line I could select. Then it would open the eca buffer and resume that chat.

    1 - 21/02/2026 19:17 -  Analyzing codebase AGENTS.md
    2 - 22/02/2026 20:00 -  Using error-message-string
    3 - 24/02/2026 23:56 -  Running make test
    

    Maybe with a prefix argument, it would resume latest instead of requiring selection.

    The way the whole process might work is that I could use the clone command to start a new chat, ask some questions or make changes in that chat. When done, I could then return to the initial chat with eca-chat-select, or if I had closed both chats or closed Emacs I could return to either chat by calling eca-chat-resume.

  3. ericdallo commented on Mar 3, 2026

    @ericdallo
    Member

    eca-chat-resume

    The thing is: some things are centralized in server, like the /resume so it works for every editor/client, to do that we would need to change the ECA protocol to support this data flow so eca client side (editors plugins) can have custom code to call that.
    It's possible, but a amount of work I'm not sure it's worth it since /resume in chat already solves everything.

    eca-chat-clone

    This is more likely to have/prioritize, since it's something that it's not possible to achieve right now, would require probably a new chat/clone message in the protocol but easy to impl, and then create the client side of the command

  4. added theissue type on Mar 3, 2026
  5. changed the title [-]Support easily branching/cloning sessions[/-] [+]Clone chat: Support easily branching/cloning sessions[/+] on Mar 3, 2026
  6. moved this to Ready in ECA roadmapon Mar 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions