Issue Checklist
Platform
Windows
Version
2.0.7
Is your feature request related to an existing issue?
No
Desired Solution
Feature: Message Editing, Branching, and Regeneration for Conversations
Problem
The current chat interface makes it difficult to recover from a conversation that has gone in the wrong direction.
In a long conversation, a user may realize that:
- An earlier instruction was incorrect or incomplete.
- The user wants to change an earlier request and see how the conversation would develop from that point.
- The model misunderstood an instruction and started going in the wrong direction.
- The model began hallucinating or drifting away from the original task.
- The latest assistant response is poor and the user wants to retry it without manually starting a new conversation.
Currently, users have limited ability to go back to a specific point in the conversation, modify the message, and continue from that point while preserving the original conversation.
This is particularly important for agentic workflows, where an error several messages earlier can affect every subsequent response.
Desired Solution
Add message-level Edit, Regenerate, and Branch functionality similar to the interaction model available in ChatGPT and Claude.
1. Edit any previous user message
Users should be able to select an existing user message and edit its content.
For example:
User: Research the top 10 SEO tools and compare their pricing.
Assistant: ...
User: Now recommend the best one for a small agency.
Assistant: ...
If the user later realizes that the first instruction should have been:
Research the top 10 SEO tools specifically for enterprise agencies.
they should be able to edit that historical message and regenerate the conversation from that point.
The edited message should not destroy the original conversation.
Instead, it should create a new branch:
Original conversation
|
+---- Original path
|
+---- Edited message
|
+---- New regenerated path
The user should be able to switch between the original and new paths.
2. Regenerate / Retry an assistant response
Every assistant response should have a clear Regenerate / Retry action.
If the user does not like a response, they should not have to send another message such as:
"Try again."
Instead, they should be able to click Regenerate and have Cherry Studio generate another response using the same conversation context and user instruction.
Ideally, multiple generated responses should be navigable, for example:
Response 1 of 3
< Previous 1 / 3 Next >
This allows users to compare different generations without losing the previous response.
3. Regenerate from a historical point
The user should also be able to select an earlier message and choose something such as:
- Edit & Regenerate
- Regenerate from here
- Branch from here
This would allow users to recover from conversation drift without starting an entirely new topic.
For example:
Message 1
Message 2
Message 3 ← Model started drifting here
Message 4
Message 5
Message 6
The user could select Message 3, modify it, and create:
Original Branch
Message 1 → Message 2 → Message 3 → Message 4 → Message 5 → Message 6
New Branch
Message 1 → Message 2 → Edited Message 3 → New Response → New Response
Important Requirement: Preserve Original History
Editing a historical message should not overwrite or delete the original conversation.
The original branch should remain accessible.
This is important because users may want to compare:
- What happened with the original instruction
- What happens after correcting the instruction
- Which approach produced the better result
This also prevents users from accidentally losing useful conversation history.
User Experience
Each user message could expose actions such as:
- Edit
- Branch from here
- Regenerate from here
Each assistant message could expose:
- Regenerate
- Branch from here
- Copy
- Existing available actions
The exact UI can follow Cherry Studio's existing design language.
Example Use Case
A user is working with an AI agent to create a technical implementation plan.
After 15 messages, the agent starts producing irrelevant recommendations.
The user realizes that the problem originated from an instruction given 6 messages earlier.
Instead of starting a completely new conversation, the user should be able to:
- Find the problematic historical message.
- Click Edit.
- Correct the instruction.
- Select Regenerate.
- Cherry Studio creates a new branch from that point.
- The original conversation remains intact.
- The user can switch between the original and corrected branches.
This would make long-running AI conversations much easier to recover, experiment with, and iterate on.
Why This Matters
AI conversations are iterative. Users frequently discover that an earlier instruction was wrong only after seeing several subsequent responses.
Without message editing and branching, the practical solution is often to start over or manually reconstruct the conversation.
A proper message branching system would make Cherry Studio much more suitable for:
- Long-running conversations
- Prompt iteration
- Agent workflows
- Debugging AI behavior
- Comparing different instructions
- Recovering from hallucination or model drift
- Experimenting with alternative conversation paths
Related Issue
This request appears closely related to #14561, which proposes preserving the original conversation when editing a historical message and creating a new branch from that point.
This feature request expands that concept to also include assistant-response regeneration/retry and a more complete conversation branching workflow.
Acceptance Criteria
Alternative Solutions
No response
Additional Information
No response
Issue Checklist
Platform
Windows
Version
2.0.7
Is your feature request related to an existing issue?
No
Desired Solution
Feature: Message Editing, Branching, and Regeneration for Conversations
Problem
The current chat interface makes it difficult to recover from a conversation that has gone in the wrong direction.
In a long conversation, a user may realize that:
Currently, users have limited ability to go back to a specific point in the conversation, modify the message, and continue from that point while preserving the original conversation.
This is particularly important for agentic workflows, where an error several messages earlier can affect every subsequent response.
Desired Solution
Add message-level Edit, Regenerate, and Branch functionality similar to the interaction model available in ChatGPT and Claude.
1. Edit any previous user message
Users should be able to select an existing user message and edit its content.
For example:
If the user later realizes that the first instruction should have been:
they should be able to edit that historical message and regenerate the conversation from that point.
The edited message should not destroy the original conversation.
Instead, it should create a new branch:
The user should be able to switch between the original and new paths.
2. Regenerate / Retry an assistant response
Every assistant response should have a clear Regenerate / Retry action.
If the user does not like a response, they should not have to send another message such as:
Instead, they should be able to click Regenerate and have Cherry Studio generate another response using the same conversation context and user instruction.
Ideally, multiple generated responses should be navigable, for example:
This allows users to compare different generations without losing the previous response.
3. Regenerate from a historical point
The user should also be able to select an earlier message and choose something such as:
This would allow users to recover from conversation drift without starting an entirely new topic.
For example:
The user could select Message 3, modify it, and create:
Important Requirement: Preserve Original History
Editing a historical message should not overwrite or delete the original conversation.
The original branch should remain accessible.
This is important because users may want to compare:
This also prevents users from accidentally losing useful conversation history.
User Experience
Each user message could expose actions such as:
Each assistant message could expose:
The exact UI can follow Cherry Studio's existing design language.
Example Use Case
A user is working with an AI agent to create a technical implementation plan.
After 15 messages, the agent starts producing irrelevant recommendations.
The user realizes that the problem originated from an instruction given 6 messages earlier.
Instead of starting a completely new conversation, the user should be able to:
This would make long-running AI conversations much easier to recover, experiment with, and iterate on.
Why This Matters
AI conversations are iterative. Users frequently discover that an earlier instruction was wrong only after seeing several subsequent responses.
Without message editing and branching, the practical solution is often to start over or manually reconstruct the conversation.
A proper message branching system would make Cherry Studio much more suitable for:
Related Issue
This request appears closely related to #14561, which proposes preserving the original conversation when editing a historical message and creating a new branch from that point.
This feature request expands that concept to also include assistant-response regeneration/retry and a more complete conversation branching workflow.
Acceptance Criteria
Alternative Solutions
No response
Additional Information
No response