feat: add session export with full and compressed modes (#507)

Add export functionality that allows users to download session data
as JSON or plain text, with optional LLM-based context compression
for long conversations. Includes UI controls in chat panel, session
list, and history view, plus i18n strings for all 8 locales.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
ekko
2026-05-07 13:49:57 +08:00
committed by GitHub
parent c0ad8c907b
commit 173307ef28
18 changed files with 554 additions and 14 deletions
+6
View File
@@ -151,6 +151,12 @@ export default {
monitorRoleUser: 'Benutzer',
monitorRoleAssistant: 'Assistent',
copySessionId: 'Sitzungs-ID kopieren',
export: 'Exportieren',
exportFull: 'Vollständiger Export (JSON)',
exportCompressed: 'Komprimierter Export (TXT)',
exportCompressing: 'Komprimiere Kontext, bitte warten...',
exportSuccess: 'Sitzung exportiert',
exportFailed: 'Export fehlgeschlagen',
renamed: 'Umbenannt',
renameFailed: 'Umbenennung fehlgeschlagen',
renameSession: 'Sitzung umbenennen',
+6
View File
@@ -174,6 +174,12 @@ export default {
monitorRoleUser: 'User',
monitorRoleAssistant: 'Assistant',
copySessionId: 'Copy Session ID',
export: 'Export',
exportFull: 'Full Export (JSON)',
exportCompressed: 'Compressed Export (TXT)',
exportCompressing: 'Compressing context, please wait...',
exportSuccess: 'Session exported',
exportFailed: 'Export failed',
renamed: 'Renamed',
renameFailed: 'Rename failed',
renameSession: 'Rename Session',
+6
View File
@@ -151,6 +151,12 @@ export default {
monitorRoleUser: 'Usuario',
monitorRoleAssistant: 'Asistente',
copySessionId: 'Copiar ID de sesión',
export: 'Exportar',
exportFull: 'Exportación completa (JSON)',
exportCompressed: 'Exportación comprimida (TXT)',
exportCompressing: 'Comprimiendo contexto, espere...',
exportSuccess: 'Sesión exportada',
exportFailed: 'Error al exportar',
renamed: 'Renombrada',
renameFailed: 'Error al renombrar',
renameSession: 'Renombrar sesion',
+6
View File
@@ -151,6 +151,12 @@ export default {
monitorRoleUser: 'Utilisateur',
monitorRoleAssistant: 'Assistant',
copySessionId: "Copier l'ID de session",
export: 'Exporter',
exportFull: 'Export complet (JSON)',
exportCompressed: 'Export compressé (TXT)',
exportCompressing: 'Compression du contexte, veuillez patienter...',
exportSuccess: 'Session exportée',
exportFailed: "Échec de l'export",
renamed: 'Renomme',
renameFailed: 'Echec du renommage',
renameSession: 'Renommer la session',
+6
View File
@@ -151,6 +151,12 @@ export default {
monitorRoleUser: 'ユーザー',
monitorRoleAssistant: 'アシスタント',
copySessionId: 'セッション ID をコピー',
export: 'エクスポート',
exportFull: 'フルエクスポート (JSON)',
exportCompressed: '圧縮エクスポート (TXT)',
exportCompressing: 'コンテキストを圧縮中、お待ちください...',
exportSuccess: 'セッションをエクスポートしました',
exportFailed: 'エクスポートに失敗しました',
renamed: '名前を変更しました',
renameFailed: '名前の変更に失敗しました',
renameSession: 'セッション名の変更',
+6
View File
@@ -151,6 +151,12 @@ export default {
monitorRoleUser: '사용자',
monitorRoleAssistant: '어시스턴트',
copySessionId: '세션 ID 복사',
export: '내보내기',
exportFull: '전체 내보내기 (JSON)',
exportCompressed: '압축 내보내기 (TXT)',
exportCompressing: '컨텍스트 압축 중, 잠시 기다려주세요...',
exportSuccess: '세션을 내보냈습니다',
exportFailed: '내보내기 실패',
renamed: '이름이 변경되었습니다',
renameFailed: '이름 변경 실패',
renameSession: '세션 이름 변경',
+6
View File
@@ -151,6 +151,12 @@ export default {
monitorRoleUser: 'Usuário',
monitorRoleAssistant: 'Assistente',
copySessionId: 'Copiar ID da sessão',
export: 'Exportar',
exportFull: 'Exportação completa (JSON)',
exportCompressed: 'Exportação comprimida (TXT)',
exportCompressing: 'Comprimindo contexto, aguarde...',
exportSuccess: 'Sessão exportada',
exportFailed: 'Falha ao exportar',
renamed: 'Renomeado',
renameFailed: 'Falha ao renomear',
renameSession: 'Renomear sessao',
+6
View File
@@ -174,6 +174,12 @@ export default {
monitorRoleUser: '用户',
monitorRoleAssistant: '助手',
copySessionId: '复制会话 ID',
export: '导出',
exportFull: '全量导出 (JSON)',
exportCompressed: '压缩导出 (TXT)',
exportCompressing: '正在压缩上下文,请稍候...',
exportSuccess: '会话已导出',
exportFailed: '导出失败',
renamed: '已重命名',
renameFailed: '重命名失败',
renameSession: '重命名会话',