OpenHands / OpenHands/software-agent-sdk
[PRD] MVP - Clone a Conversation
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.1k
- Forks
- 539
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 137
Description
As an OpenHands user, I want the ability to clone a conversation's trajectory and workspace into a new conversation. This is because I may have been working on something but want to start a new derivative conversation based on previous work.
User Scenarios
User Scenario: Creating feature variants
In some cases, I may want to work on different variations of the same project. Perhaps I create a conversation that builds a feature in a certain way; then I want to clone that conversation (and the trajectory context + workspace), and prompt OpenHands to build it another way, just so I can compare.
User Scenario: Prime agent with context - Create multiple conversations from a single trajectory containing relevant context
In some cases, I may create a single conversation with the goal of "priming" the agent with repo context and/or context around the task I want it to perform. Then, I may clone that conversation multiple times to help with different feature variants or executing additional tasks. This helps me avoid having to re-prompt the agent each time with upfront context.
How is this different from the parent issue?
The motivation of this ticket is to start with an minimally viable approach. We can expand the feature later to include additional requirements like the ones described in OpenHands/OpenHands#8560 (such as forking from any point within a convo).
Questions for discussion...
- Once you click Clone, should the app bring you to that new conversation + start the runtime?
- Should we prompt the user if they'd like the new conversation to re-use the existing runtime?
AC:
- Verify in the Conversation GUI I have the ability to click a "Clone" button, or use a
/cloneslash command. This should copy the trajectory and workspace contents from the last git commit into a new conversation.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Review the Conversation GUI and the /clone slash-command entry point first, then trace how trajectory and workspace contents are represented. Done means a user can clone from the GUI or command, creating a new conversation with the trajectory and workspace from the last git commit; resolve the runtime behavior questions with maintainers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- full-stack
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100