feat(sidebar): add conversation management dialog with filtering and bulk actions

This commit is contained in:
xintaofei
2026-04-22 09:31:38 +08:00
parent ae88b2256f
commit 14fb231dcc
13 changed files with 760 additions and 2 deletions

View File

@@ -796,7 +796,29 @@
"removeFolderConfirmTitle": "إزالة المجلد من مساحة العمل؟",
"removeFolderConfirmDescription": "إزالة \"{name}\" من مساحة العمل؟ سيتم إغلاق علامات التبويب والمحطات المرتبطة.",
"folderHeaderMenu": {
"manageConversations": "إدارة المحادثات…",
"removeFromWorkspace": "إزالة من مساحة العمل"
},
"manageConversations": {
"title": "إدارة المحادثات — {name}",
"searchPlaceholder": "البحث بالعنوان…",
"agentFilterAll": "جميع الوكلاء",
"statusFilterAll": "جميع الحالات",
"selectAllVisible": "تحديد الكل",
"deselectAll": "إلغاء التحديد",
"selectedCount": "{count} محدد",
"matchedCount": "{count} مطابق",
"messagesShort": "{count} رسالة",
"untitledConversation": "محادثة بدون عنوان",
"setStatus": "تعيين الحالة…",
"deleteSelected": "حذف",
"noConversations": "لا توجد محادثات في هذا المجلد.",
"noMatchingConversations": "لا توجد محادثات مطابقة للفلاتر.",
"confirmDeleteTitle": "حذف {count} محادثة؟",
"confirmDeleteDescription": "لا يمكن التراجع عن هذا الإجراء.",
"toastDeleted": "تم حذف {count} محادثة",
"toastStatusUpdated": "تم تحديث حالة {count} محادثة",
"toastOpFailed": "فشلت العملية: {message}"
}
},
"conversation": {

View File

@@ -796,7 +796,29 @@
"removeFolderConfirmTitle": "Ordner aus Arbeitsbereich entfernen?",
"removeFolderConfirmDescription": "\"{name}\" aus dem Arbeitsbereich entfernen? Zugehörige Tabs und Terminals werden geschlossen.",
"folderHeaderMenu": {
"manageConversations": "Konversationen verwalten…",
"removeFromWorkspace": "Aus Arbeitsbereich entfernen"
},
"manageConversations": {
"title": "Konversationen verwalten — {name}",
"searchPlaceholder": "Nach Titel suchen…",
"agentFilterAll": "Alle Agenten",
"statusFilterAll": "Alle Status",
"selectAllVisible": "Alle auswählen",
"deselectAll": "Auswahl aufheben",
"selectedCount": "{count} ausgewählt",
"matchedCount": "{count} Treffer",
"messagesShort": "{count} Nachr.",
"untitledConversation": "Unbenannte Konversation",
"setStatus": "Status setzen…",
"deleteSelected": "Löschen",
"noConversations": "Keine Konversationen in diesem Ordner.",
"noMatchingConversations": "Keine Konversationen entsprechen den Filtern.",
"confirmDeleteTitle": "{count} Konversation(en) löschen?",
"confirmDeleteDescription": "Diese Aktion kann nicht rückgängig gemacht werden.",
"toastDeleted": "{count} Konversation(en) gelöscht",
"toastStatusUpdated": "Status von {count} Konversation(en) aktualisiert",
"toastOpFailed": "Aktion fehlgeschlagen: {message}"
}
},
"conversation": {

View File

@@ -796,7 +796,29 @@
"removeFolderConfirmTitle": "Remove folder from workspace?",
"removeFolderConfirmDescription": "Remove \"{name}\" from the workspace? Its tabs and terminals will close.",
"folderHeaderMenu": {
"manageConversations": "Manage conversations…",
"removeFromWorkspace": "Remove from workspace"
},
"manageConversations": {
"title": "Manage conversations — {name}",
"searchPlaceholder": "Search by title…",
"agentFilterAll": "All agents",
"statusFilterAll": "All statuses",
"selectAllVisible": "Select all",
"deselectAll": "Deselect all",
"selectedCount": "{count} selected",
"matchedCount": "{count} matched",
"messagesShort": "{count} msg",
"untitledConversation": "Untitled conversation",
"setStatus": "Set status…",
"deleteSelected": "Delete",
"noConversations": "No conversations in this folder.",
"noMatchingConversations": "No conversations match the filters.",
"confirmDeleteTitle": "Delete {count} conversation(s)?",
"confirmDeleteDescription": "This action cannot be undone.",
"toastDeleted": "Deleted {count} conversation(s)",
"toastStatusUpdated": "Updated status for {count} conversation(s)",
"toastOpFailed": "Operation failed: {message}"
}
},
"conversation": {

View File

@@ -796,7 +796,29 @@
"removeFolderConfirmTitle": "¿Eliminar carpeta del espacio de trabajo?",
"removeFolderConfirmDescription": "¿Eliminar \"{name}\" del espacio de trabajo? Sus pestañas y terminales se cerrarán.",
"folderHeaderMenu": {
"manageConversations": "Gestionar conversaciones…",
"removeFromWorkspace": "Quitar del espacio de trabajo"
},
"manageConversations": {
"title": "Gestionar conversaciones — {name}",
"searchPlaceholder": "Buscar por título…",
"agentFilterAll": "Todos los agentes",
"statusFilterAll": "Todos los estados",
"selectAllVisible": "Seleccionar todo",
"deselectAll": "Deseleccionar todo",
"selectedCount": "{count} seleccionada(s)",
"matchedCount": "{count} coincidencia(s)",
"messagesShort": "{count} msg",
"untitledConversation": "Conversación sin título",
"setStatus": "Cambiar estado…",
"deleteSelected": "Eliminar",
"noConversations": "No hay conversaciones en esta carpeta.",
"noMatchingConversations": "Ninguna conversación coincide con los filtros.",
"confirmDeleteTitle": "¿Eliminar {count} conversación(es)?",
"confirmDeleteDescription": "Esta acción no se puede deshacer.",
"toastDeleted": "Se eliminaron {count} conversación(es)",
"toastStatusUpdated": "Estado actualizado para {count} conversación(es)",
"toastOpFailed": "Error en la operación: {message}"
}
},
"conversation": {

View File

@@ -796,7 +796,29 @@
"removeFolderConfirmTitle": "Retirer le dossier de l'espace de travail ?",
"removeFolderConfirmDescription": "Retirer \"{name}\" de l'espace de travail ? Les onglets et terminaux associés seront fermés.",
"folderHeaderMenu": {
"manageConversations": "Gérer les conversations…",
"removeFromWorkspace": "Retirer de l'espace de travail"
},
"manageConversations": {
"title": "Gérer les conversations — {name}",
"searchPlaceholder": "Rechercher par titre…",
"agentFilterAll": "Tous les agents",
"statusFilterAll": "Tous les statuts",
"selectAllVisible": "Tout sélectionner",
"deselectAll": "Tout désélectionner",
"selectedCount": "{count} sélectionnée(s)",
"matchedCount": "{count} correspondance(s)",
"messagesShort": "{count} msg",
"untitledConversation": "Conversation sans titre",
"setStatus": "Définir le statut…",
"deleteSelected": "Supprimer",
"noConversations": "Aucune conversation dans ce dossier.",
"noMatchingConversations": "Aucune conversation ne correspond aux filtres.",
"confirmDeleteTitle": "Supprimer {count} conversation(s) ?",
"confirmDeleteDescription": "Cette action est irréversible.",
"toastDeleted": "{count} conversation(s) supprimée(s)",
"toastStatusUpdated": "Statut mis à jour pour {count} conversation(s)",
"toastOpFailed": "Échec de l'opération : {message}"
}
},
"conversation": {

View File

@@ -796,7 +796,29 @@
"removeFolderConfirmTitle": "このフォルダをワークスペースから削除しますか?",
"removeFolderConfirmDescription": "\"{name}\" をワークスペースから削除しますか?関連するタブとターミナルが閉じられます。",
"folderHeaderMenu": {
"manageConversations": "会話の管理…",
"removeFromWorkspace": "ワークスペースから削除"
},
"manageConversations": {
"title": "会話の管理 — {name}",
"searchPlaceholder": "タイトルで検索…",
"agentFilterAll": "すべてのエージェント",
"statusFilterAll": "すべてのステータス",
"selectAllVisible": "すべて選択",
"deselectAll": "選択を解除",
"selectedCount": "{count} 件選択中",
"matchedCount": "{count} 件該当",
"messagesShort": "{count} 件",
"untitledConversation": "無題の会話",
"setStatus": "ステータスを変更…",
"deleteSelected": "削除",
"noConversations": "このフォルダには会話がありません。",
"noMatchingConversations": "条件に一致する会話がありません。",
"confirmDeleteTitle": "{count} 件の会話を削除しますか?",
"confirmDeleteDescription": "この操作は元に戻せません。",
"toastDeleted": "{count} 件の会話を削除しました",
"toastStatusUpdated": "{count} 件の会話のステータスを更新しました",
"toastOpFailed": "操作に失敗しました: {message}"
}
},
"conversation": {

View File

@@ -796,7 +796,29 @@
"removeFolderConfirmTitle": "이 폴더를 워크스페이스에서 제거하시겠습니까?",
"removeFolderConfirmDescription": "워크스페이스에서 \"{name}\"을(를) 제거하시겠습니까? 관련 탭과 터미널이 닫힙니다.",
"folderHeaderMenu": {
"manageConversations": "대화 관리…",
"removeFromWorkspace": "워크스페이스에서 제거"
},
"manageConversations": {
"title": "대화 관리 — {name}",
"searchPlaceholder": "제목으로 검색…",
"agentFilterAll": "모든 에이전트",
"statusFilterAll": "모든 상태",
"selectAllVisible": "전체 선택",
"deselectAll": "선택 해제",
"selectedCount": "{count}개 선택됨",
"matchedCount": "{count}개 일치",
"messagesShort": "{count}개",
"untitledConversation": "제목 없는 대화",
"setStatus": "상태 변경…",
"deleteSelected": "삭제",
"noConversations": "이 폴더에 대화가 없습니다.",
"noMatchingConversations": "필터에 일치하는 대화가 없습니다.",
"confirmDeleteTitle": "{count}개 대화를 삭제하시겠습니까?",
"confirmDeleteDescription": "이 작업은 되돌릴 수 없습니다.",
"toastDeleted": "{count}개 대화를 삭제했습니다",
"toastStatusUpdated": "{count}개 대화의 상태를 업데이트했습니다",
"toastOpFailed": "작업 실패: {message}"
}
},
"conversation": {

View File

@@ -796,7 +796,29 @@
"removeFolderConfirmTitle": "Remover pasta do espaço de trabalho?",
"removeFolderConfirmDescription": "Remover \"{name}\" do espaço de trabalho? As abas e terminais relacionados serão fechados.",
"folderHeaderMenu": {
"manageConversations": "Gerenciar conversas…",
"removeFromWorkspace": "Remover do espaço de trabalho"
},
"manageConversations": {
"title": "Gerenciar conversas — {name}",
"searchPlaceholder": "Pesquisar por título…",
"agentFilterAll": "Todos os agentes",
"statusFilterAll": "Todos os status",
"selectAllVisible": "Selecionar tudo",
"deselectAll": "Desmarcar tudo",
"selectedCount": "{count} selecionada(s)",
"matchedCount": "{count} correspondência(s)",
"messagesShort": "{count} msg",
"untitledConversation": "Conversa sem título",
"setStatus": "Definir status…",
"deleteSelected": "Excluir",
"noConversations": "Sem conversas nesta pasta.",
"noMatchingConversations": "Nenhuma conversa corresponde aos filtros.",
"confirmDeleteTitle": "Excluir {count} conversa(s)?",
"confirmDeleteDescription": "Esta ação não pode ser desfeita.",
"toastDeleted": "{count} conversa(s) excluída(s)",
"toastStatusUpdated": "Status atualizado para {count} conversa(s)",
"toastOpFailed": "Falha na operação: {message}"
}
},
"conversation": {

View File

@@ -796,7 +796,29 @@
"removeFolderConfirmTitle": "从工作区移除该文件夹?",
"removeFolderConfirmDescription": "从工作区移除 \"{name}\"?其相关 Tab 与终端将会关闭。",
"folderHeaderMenu": {
"manageConversations": "会话管理…",
"removeFromWorkspace": "从工作区移除"
},
"manageConversations": {
"title": "会话管理 — {name}",
"searchPlaceholder": "按标题搜索…",
"agentFilterAll": "全部智能体",
"statusFilterAll": "全部状态",
"selectAllVisible": "全选",
"deselectAll": "取消全选",
"selectedCount": "已选 {count} 条",
"matchedCount": "匹配 {count} 条",
"messagesShort": "{count} 条",
"untitledConversation": "未命名会话",
"setStatus": "设为状态…",
"deleteSelected": "删除",
"noConversations": "此文件夹暂无会话。",
"noMatchingConversations": "没有匹配过滤条件的会话。",
"confirmDeleteTitle": "删除 {count} 个会话?",
"confirmDeleteDescription": "此操作不可撤销。",
"toastDeleted": "已删除 {count} 个会话",
"toastStatusUpdated": "已更新 {count} 个会话的状态",
"toastOpFailed": "操作失败:{message}"
}
},
"conversation": {

View File

@@ -796,7 +796,29 @@
"removeFolderConfirmTitle": "從工作區移除此資料夾?",
"removeFolderConfirmDescription": "從工作區移除 \"{name}\"?相關分頁與終端機將會關閉。",
"folderHeaderMenu": {
"manageConversations": "會話管理…",
"removeFromWorkspace": "從工作區移除"
},
"manageConversations": {
"title": "會話管理 — {name}",
"searchPlaceholder": "依標題搜尋…",
"agentFilterAll": "全部智能體",
"statusFilterAll": "全部狀態",
"selectAllVisible": "全選",
"deselectAll": "取消全選",
"selectedCount": "已選 {count} 筆",
"matchedCount": "符合 {count} 筆",
"messagesShort": "{count} 則",
"untitledConversation": "未命名會話",
"setStatus": "設為狀態…",
"deleteSelected": "刪除",
"noConversations": "此資料夾暫無會話。",
"noMatchingConversations": "沒有符合過濾條件的會話。",
"confirmDeleteTitle": "刪除 {count} 個會話?",
"confirmDeleteDescription": "此操作無法復原。",
"toastDeleted": "已刪除 {count} 個會話",
"toastStatusUpdated": "已更新 {count} 個會話的狀態",
"toastOpFailed": "操作失敗:{message}"
}
},
"conversation": {