Skip to content

Added a way to duplicate a chat - #990

Closed
j-erler wants to merge 1 commit into
MindWorkAI:mainfrom
j-erler:feature/fork-chat
Closed

j-erler wants to merge 1 commit into
MindWorkAI:mainfrom
j-erler:feature/fork-chat

Conversation

@j-erler

@j-erler j-erler commented Sep 20, 2026

Copy link
Copy Markdown
Contributor

A chat can now be copied into a second one of its own, from the workspace tree next to renaming and deleting, and from the chat toolbar. AI Studio asks what the copy should be called and suggests the original's name with "(copy)" behind it, then opens the copy while the original stays as it was.

WorkspaceBehaviour.DuplicateChatAsync writes the chat out and reads it back instead of naming every field, so what survives a restart survives being duplicated. The files a chat owns are copied with it, because the transcripts of attached media live below the chat's own directory, and the attachment paths of the copy are rewritten to point there. Sharing those files would cost the copy its transcripts the day the original is deleted. Documents attached from elsewhere keep pointing at where they are.

The two entry points differ in one respect. From the tree, the stored chat is copied, and the usual question about unsaved changes comes first, because the copy is opened afterwards. From the toolbar, the chat is copied as it stands on the screen, including a message typed but not sent, so nothing is at risk and nothing is asked.

Tested manually: both entry points, the suggested name, the copy opening, and that writing in the copy leaves the original untouched. Untested for lack of such a chat: copying one with transcribed audio or video and then deleting the original.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@SommerEngineering

Copy link
Copy Markdown
Member

Hi @j-erler, thank you very much for this PR! Since #992 by @peerschuett also adds copying chats, we decided to continue with #992 and close this one.

Your work still shaped the result: #992 now takes over two of your ideas. One is the copy button in the chat toolbar, which also keeps what you have typed so far. The other is asking for the name of the copy. The changelog credits you for both.

We built on #992 because it also handles audio transcripts that were not sent yet, refuses to copy while a transcription is still running, and cleans up when the copy cannot be stored. The name question now lives in one shared place, so both ways of copying ask it the same way.

Thanks again for your contribution! 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants