Fork assistant turns into new drafts (#1788)
* feat(chat): fork assistant turns into new drafts Builds chat-history attachments on the daemon and routes them into draft composers so users can continue an assistant turn in an existing workspace tab or New Workspace. * fix(chat): clean up fork draft handling * fix(chat): address fork draft review feedback * fix(server): build fork context from bounded timeline * fix(app): restore assistant turn footer in streams * fix(app): preserve fork draft setup * fix(app): tighten assistant fork footers * fix(app): lock active fork draft handoff * fix(app): preserve attachment-only draft retries * fix(app): unify composer attachment scopes * fix(app): align chat history attachment labels * fix(app): centralize attachment pill content * fix(app): trim fork context for workspace naming
This commit is contained in:
@@ -245,6 +245,12 @@ export const ar: TranslationResources = {
|
||||
copyCode: "نسخ الرمز",
|
||||
copyTurn: "نسخ بدوره",
|
||||
copyMessage: "انسخ الرسالة",
|
||||
forkMenu: "تفريع الرسالة",
|
||||
forkInNewTab: "تفريع في تبويب جديد",
|
||||
forkInNewWorkspace: "تفريع في مساحة عمل جديدة",
|
||||
forkUnavailable: "حدّث المضيف لاستخدام هذا.",
|
||||
forkMissingWorkspace: "هذا الوكيل ليس في مساحة عمل.",
|
||||
forkFailed: "فشل تفريع المحادثة",
|
||||
openFile: "افتح الملف",
|
||||
copied: "منقول",
|
||||
},
|
||||
|
||||
@@ -244,6 +244,12 @@ export const en = {
|
||||
copyCode: "Copy code",
|
||||
copyTurn: "Copy turn",
|
||||
copyMessage: "Copy message",
|
||||
forkMenu: "Fork message",
|
||||
forkInNewTab: "Fork in a new tab",
|
||||
forkInNewWorkspace: "Fork in a new workspace",
|
||||
forkUnavailable: "Update the host to use this.",
|
||||
forkMissingWorkspace: "This agent is not in a workspace.",
|
||||
forkFailed: "Failed to fork chat",
|
||||
openFile: "Open file",
|
||||
copied: "Copied",
|
||||
},
|
||||
|
||||
@@ -248,6 +248,12 @@ export const es: TranslationResources = {
|
||||
copyCode: "Copiar código",
|
||||
copyTurn: "Copiar turno",
|
||||
copyMessage: "Copiar mensaje",
|
||||
forkMenu: "Bifurcar mensaje",
|
||||
forkInNewTab: "Bifurcar en una pestaña nueva",
|
||||
forkInNewWorkspace: "Bifurcar en un espacio de trabajo nuevo",
|
||||
forkUnavailable: "Actualiza el host para usar esto.",
|
||||
forkMissingWorkspace: "Este agente no está en un espacio de trabajo.",
|
||||
forkFailed: "No se pudo bifurcar el chat",
|
||||
openFile: "Abrir archivo",
|
||||
copied: "Copiado",
|
||||
},
|
||||
|
||||
@@ -248,6 +248,12 @@ export const fr: TranslationResources = {
|
||||
copyCode: "Copier le code",
|
||||
copyTurn: "Copier le tour",
|
||||
copyMessage: "Copier le message",
|
||||
forkMenu: "Dupliquer le message",
|
||||
forkInNewTab: "Dupliquer dans un nouvel onglet",
|
||||
forkInNewWorkspace: "Dupliquer dans un nouvel espace de travail",
|
||||
forkUnavailable: "Mettez l'hôte à jour pour utiliser ceci.",
|
||||
forkMissingWorkspace: "Cet agent n'est pas dans un espace de travail.",
|
||||
forkFailed: "Impossible de dupliquer le chat",
|
||||
openFile: "Ouvrir le fichier",
|
||||
copied: "Copié",
|
||||
},
|
||||
|
||||
@@ -248,6 +248,12 @@ export const ja: TranslationResources = {
|
||||
copyCode: "コードをコピー",
|
||||
copyTurn: "ターンをコピー",
|
||||
copyMessage: "メッセージをコピー",
|
||||
forkMenu: "メッセージをフォーク",
|
||||
forkInNewTab: "新しいタブにフォーク",
|
||||
forkInNewWorkspace: "新しいワークスペースにフォーク",
|
||||
forkUnavailable: "これを使用するにはホストを更新してください。",
|
||||
forkMissingWorkspace: "このエージェントはワークスペース内にありません。",
|
||||
forkFailed: "チャットのフォークに失敗しました",
|
||||
openFile: "ファイルを開く",
|
||||
copied: "コピーしました",
|
||||
},
|
||||
|
||||
@@ -248,6 +248,12 @@ export const ptBR: TranslationResources = {
|
||||
copyCode: "Copiar código",
|
||||
copyTurn: "Copiar turno",
|
||||
copyMessage: "Copiar mensagem",
|
||||
forkMenu: "Bifurcar mensagem",
|
||||
forkInNewTab: "Bifurcar em uma nova aba",
|
||||
forkInNewWorkspace: "Bifurcar em um novo workspace",
|
||||
forkUnavailable: "Atualize o host para usar isto.",
|
||||
forkMissingWorkspace: "Este agente não está em um workspace.",
|
||||
forkFailed: "Falha ao bifurcar o chat",
|
||||
openFile: "Abrir arquivo",
|
||||
copied: "Copiado",
|
||||
},
|
||||
|
||||
@@ -247,6 +247,12 @@ export const ru: TranslationResources = {
|
||||
copyCode: "Скопировать код",
|
||||
copyTurn: "Копировать ход",
|
||||
copyMessage: "Копировать сообщение",
|
||||
forkMenu: "Форкнуть сообщение",
|
||||
forkInNewTab: "Форкнуть в новой вкладке",
|
||||
forkInNewWorkspace: "Форкнуть в новом рабочем пространстве",
|
||||
forkUnavailable: "Обновите хост, чтобы использовать это.",
|
||||
forkMissingWorkspace: "Этот агент не находится в рабочем пространстве.",
|
||||
forkFailed: "Не удалось форкнуть чат",
|
||||
openFile: "Открыть файл",
|
||||
copied: "Скопировано",
|
||||
},
|
||||
|
||||
@@ -245,6 +245,12 @@ export const zhCN: TranslationResources = {
|
||||
copyCode: "复制代码",
|
||||
copyTurn: "复制回合",
|
||||
copyMessage: "复制消息",
|
||||
forkMenu: "分叉消息",
|
||||
forkInNewTab: "分叉到新标签页",
|
||||
forkInNewWorkspace: "分叉到新工作区",
|
||||
forkUnavailable: "请更新主机以使用此功能。",
|
||||
forkMissingWorkspace: "此 Agent 不在工作区中。",
|
||||
forkFailed: "分叉聊天失败",
|
||||
openFile: "打开文件",
|
||||
copied: "已复制",
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user