mirror of
https://github.com/nesquena/hermes-webui.git
synced 2026-05-24 18:50:15 +00:00
fix(i18n+tests): complete locale parity + bump test windows for new menu action
PR #2294 added the show_previous_messaging_sessions setting and a "Hide from list" menu action for external sessions, but tripped 8 tests: - 4 locale-parity tests (tests/test_{japanese,russian,spanish,chinese}_locale.py) demand every en key be defined in ja/ru/es/zh blocks. The contributor only added the 5 new keys to en + ko, leaving ja/ru/es/zh/it/de/zh-TW/pt/fr missing them. tests/test_provider_quota_status.py also requires the two settings_{label,desc}_previous_messaging_sessions keys in ALL 11 locales. - tests/test_1466_sidebar_cancel_clarify.py read the first 5200 chars of _openSessionActionMenu to find cancelSessionStream/delete actions; the new "Hide from list" branch (17 lines for external sessions) pushed those past the read window. - tests/test_issue1611_session_profile_filtering.py grep'd for the literal string `_keep_latest_messaging_session_per_source(scoped)`, which no longer exists after the call was rewritten as a multi-line keyword-arg form. Fixes: 1. Translations for the 5 new i18n keys added to all 9 missing locales (it, ja, ru, es, de, zh-CN, zh-TW, pt, fr): - session_hide_external - session_hide_external_desc - session_hidden - settings_label_previous_messaging_sessions - settings_desc_previous_messaging_sessions Where the locale already used the English fallback for related keys (ru/es/de session_archive), I provided localized translations for the new keys to match the project's general direction. Native-script quality, not machine-translation. 2. test_1466 window bumped 5200 → 6400 with a comment explaining the bump (mirrors the existing 3200→4400→5200 history annotations). 3. test_1611 dedupe-position check loosened to match the function name without the `(scoped)` suffix so it tolerates both single-line and keyword-arg call shapes. Tests: full suite 5828 passed / 63 skipped / 0 failed (was 8 failed). Behavioral harness verifies the toggle's claimed behavior — off (default) hides reset/compression segments, on shows all rows in timestamp order. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1648,12 +1648,15 @@ const LOCALES = {
|
||||
session_move_project_desc_has: 'Cambia il progetto per questa conversazione',
|
||||
session_move_project_desc_none: 'Assegna un progetto a questa conversazione',
|
||||
session_archive: 'Archivia conversazione',
|
||||
session_hide_external: 'Nascondi dalla lista',
|
||||
session_restore: 'Ripristina conversazione',
|
||||
session_archive_desc: 'Nascondi questa conversazione fino a mostrare archiviate',
|
||||
session_archive_worktree_desc: 'Nascondi questa conversazione; mantieni il suo worktree su disco',
|
||||
session_hide_external_desc: 'Nascondi questa sessione importata dalla WebUI senza eliminare lo storico originale.',
|
||||
session_restore_desc: 'Riporta questa conversazione nella lista principale',
|
||||
session_archived: 'Sessione archiviata',
|
||||
session_archived_worktree: 'Sessione archiviata. Il worktree rimane su disco.',
|
||||
session_hidden: 'Sessione nascosta dalla lista',
|
||||
session_restored: 'Sessione ripristinata',
|
||||
session_archive_failed: 'Archiviazione fallita: ',
|
||||
session_duplicate: 'Duplica conversazione',
|
||||
@@ -1764,6 +1767,7 @@ const LOCALES = {
|
||||
settings_label_sidebar_density: 'Densità sidebar',
|
||||
cmd_reasoning: 'Mostra/nascondi ragionamento, imposta livello sforzo o controlla stato attuale',
|
||||
settings_label_external_sessions: 'Mostra sessioni non-WebUI',
|
||||
settings_label_previous_messaging_sessions: 'Mostra sessioni di messaggistica precedenti',
|
||||
settings_label_sync_insights: 'Sincronizza con insights',
|
||||
settings_label_check_updates: 'Verifica aggiornamenti',
|
||||
settings_label_whats_new_summary: "Summarize What's New with AI",
|
||||
@@ -1994,6 +1998,7 @@ const LOCALES = {
|
||||
settings_auto_title_refresh_20: 'Ogni 20 scambi',
|
||||
settings_desc_auto_title_refresh: 'Rigenera automaticamente il titolo della sessione in base all\'ultimo scambio, mantenendolo pertinente mentre la conversazione evolve. Richiede un modello LLM per la generazione titoli.',
|
||||
settings_desc_external_sessions: 'Mostra conversazioni da CLI, Telegram, Discord, Slack e altri canali nella lista sessioni. Clicca per importare e continuare.',
|
||||
settings_desc_previous_messaging_sessions: 'Mostra sessioni Discord, Telegram, Slack e Weixin più vecchie sostituite da reset o compressione.',
|
||||
settings_desc_sync_insights: 'Rispecchia l\'uso token WebUI su state.db così hermes /insights include i dati delle sessioni browser. Disattivato per impostazione predefinita.',
|
||||
settings_desc_check_updates: 'Mostra un banner quando sono disponibili versioni più recenti della WebUI o dell\'Agente. Esegue un git fetch in background periodicamente.',
|
||||
settings_desc_whats_new_summary: "Changes the What's New action from opening the raw diff first to generating a short, human-readable summary. The regular diff comparison stays available after the summary.",
|
||||
@@ -2853,12 +2858,15 @@ const LOCALES = {
|
||||
session_move_project_desc_has: 'この会話のプロジェクトを変更',
|
||||
session_move_project_desc_none: 'この会話にプロジェクトを割り当て',
|
||||
session_archive: '会話をアーカイブ',
|
||||
session_hide_external: 'リストから非表示',
|
||||
session_restore: '会話を復元',
|
||||
session_archive_desc: 'アーカイブを表示するまでこの会話を非表示にする',
|
||||
session_archive_worktree_desc: 'この会話を非表示にし、worktree はディスク上に残します',
|
||||
session_hide_external_desc: '元の履歴を削除せずに、この取り込んだセッションを WebUI のリストから非表示にします。',
|
||||
session_restore_desc: 'この会話をメイン一覧に戻す',
|
||||
session_archived: 'セッションをアーカイブしました',
|
||||
session_archived_worktree: 'セッションをアーカイブしました。Worktree はディスク上に残ります。',
|
||||
session_hidden: 'セッションをリストから非表示にしました',
|
||||
session_restored: 'セッションを復元しました',
|
||||
session_archive_failed: 'アーカイブ失敗: ',
|
||||
session_duplicate: '会話を複製',
|
||||
@@ -2969,6 +2977,7 @@ const LOCALES = {
|
||||
settings_label_sidebar_density: 'サイドバー密度',
|
||||
cmd_reasoning: '思考表示の切り替え (表示/非表示)、努力レベル設定、現在状態の確認',
|
||||
settings_label_external_sessions: '非WebUIセッションを表示',
|
||||
settings_label_previous_messaging_sessions: '以前のメッセージングセッションを表示',
|
||||
settings_label_sync_insights: 'インサイトに同期',
|
||||
settings_label_check_updates: 'アップデートを確認',
|
||||
settings_label_whats_new_summary: "Summarize What's New with AI",
|
||||
@@ -3204,6 +3213,7 @@ const LOCALES = {
|
||||
settings_auto_title_refresh_20: '20 回ごと',
|
||||
settings_desc_auto_title_refresh: '最新のやり取りに基づいてセッションタイトルを自動再生成し、会話の進行に合わせて適切に保ちます。LLM タイトル生成モデルの設定が必要です。',
|
||||
settings_desc_external_sessions: 'CLI、Telegram、Discord、Slack その他のチャネルからの会話をセッション一覧に表示します。クリックでインポートして続行できます。',
|
||||
settings_desc_previous_messaging_sessions: 'reset または compression によって置き換えられた以前の Discord、Telegram、Slack、Weixin セッションを表示します。',
|
||||
settings_desc_sync_insights: 'WebUI のトークン使用量を state.db にミラーし、hermes /insights にブラウザセッションのデータを含めます。デフォルトはオフ。',
|
||||
settings_desc_check_updates: 'WebUI または Agent の新しいバージョンが利用可能な時にバナーを表示します。バックグラウンドで定期的に git fetch を実行します。',
|
||||
settings_desc_whats_new_summary: "Changes the What's New action from opening the raw diff first to generating a short, human-readable summary. The regular diff comparison stays available after the summary.",
|
||||
@@ -3988,6 +3998,7 @@ const LOCALES = {
|
||||
settings_label_sidebar_density: 'Плотность боковой панели',
|
||||
cmd_reasoning: 'Toggle thinking visibility (show/hide), set effort level, or check current status',
|
||||
settings_label_external_sessions: 'Показывать внешние сеансы',
|
||||
settings_label_previous_messaging_sessions: 'Показывать предыдущие сеансы обмена сообщениями',
|
||||
settings_label_sync_insights: 'Синхронизировать с Insights',
|
||||
settings_label_check_updates: 'Проверять обновления',
|
||||
settings_label_whats_new_summary: "Summarize What's New with AI",
|
||||
@@ -4172,6 +4183,7 @@ const LOCALES = {
|
||||
settings_auto_title_refresh_20: 'Каждые 20 обменов',
|
||||
settings_desc_auto_title_refresh: 'Автоматически переформулирует заголовок сессии на основе последнего обмена, чтобы он оставался актуальным по мере развития беседы. Требует настроенную модель генерации заголовков.',
|
||||
settings_desc_external_sessions: 'Показать беседы из CLI, Telegram, Discord, Slack и других каналов в списке сеансов. Нажмите для импорта и продолжения.',
|
||||
settings_desc_previous_messaging_sessions: 'Показывать предыдущие сеансы Discord, Telegram, Slack и Weixin, замененные сбросом или сжатием.',
|
||||
settings_desc_sync_insights: 'Синхронизирует использование токенов WebUI в state.db, чтобы Hermes /insights включал данные браузерных сеансов. Выключено по умолчанию.',
|
||||
settings_desc_check_updates: 'Показывает баннер, когда доступны более новые версии WebUI или Agent. Периодически выполняет git fetch в фоне.',
|
||||
settings_desc_whats_new_summary: "Changes the What's New action from opening the raw diff first to generating a short, human-readable summary. The regular diff comparison stays available after the summary.",
|
||||
@@ -4566,11 +4578,14 @@ const LOCALES = {
|
||||
|
||||
// Session management and settings keys (en fallback — pending translation)
|
||||
session_archive: 'Archive conversation',
|
||||
session_hide_external: 'Скрыть из списка',
|
||||
session_archive_desc: 'Hide this conversation until archived is shown',
|
||||
session_archive_worktree_desc: 'Hide this conversation; keep its worktree on disk',
|
||||
session_hide_external_desc: 'Скрыть эту импортированную сессию из WebUI без удаления исходной истории.',
|
||||
session_archive_failed: 'Archive failed: ',
|
||||
session_archived: 'Session archived',
|
||||
session_archived_worktree: 'Session archived. Worktree remains on disk.',
|
||||
session_hidden: 'Сессия скрыта из списка',
|
||||
session_delete: 'Delete conversation',
|
||||
session_delete_desc: 'Permanently remove this conversation',
|
||||
session_delete_confirm: 'Delete this conversation?',
|
||||
@@ -5122,6 +5137,7 @@ const LOCALES = {
|
||||
settings_label_sidebar_density: 'Densidad de la barra lateral',
|
||||
cmd_reasoning: 'Toggle thinking visibility (show/hide), set effort level, or check current status',
|
||||
settings_label_external_sessions: 'Mostrar sesiones externas',
|
||||
settings_label_previous_messaging_sessions: 'Mostrar sesiones de mensajería anteriores',
|
||||
settings_label_sync_insights: 'Sincronizar con insights',
|
||||
settings_label_check_updates: 'Buscar actualizaciones',
|
||||
settings_label_whats_new_summary: "Summarize What's New with AI",
|
||||
@@ -5317,6 +5333,7 @@ const LOCALES = {
|
||||
settings_auto_title_refresh_20: 'Cada 20 intercambios',
|
||||
settings_desc_auto_title_refresh: 'Regenera automáticamente el título de la sesión basándose en el último intercambio, manteniéndolo relevante a medida que evoluciona la conversación. Requiere un modelo LLM de generación de títulos configurado.',
|
||||
settings_desc_external_sessions: 'Mostrar conversaciones de CLI, Telegram, Discord, Slack y otros canales en la lista de sesiones. Haz clic para importar y continuar.',
|
||||
settings_desc_previous_messaging_sessions: 'Mostrar sesiones antiguas de Discord, Telegram, Slack y Weixin reemplazadas por reset o compresión.',
|
||||
settings_desc_sync_insights: 'Refleja el uso de tokens de la WebUI en state.db para que hermes /insights incluya datos de sesiones del navegador. Desactivado por defecto.',
|
||||
settings_desc_check_updates: 'Muestra un banner cuando haya versiones más nuevas de la WebUI o del Agent. Ejecuta periódicamente un git fetch en segundo plano.',
|
||||
settings_desc_whats_new_summary: "Changes the What's New action from opening the raw diff first to generating a short, human-readable summary. The regular diff comparison stays available after the summary.",
|
||||
@@ -5698,11 +5715,14 @@ const LOCALES = {
|
||||
cmd_status: 'Show session info',
|
||||
// Session management and settings keys (en fallback — pending translation)
|
||||
session_archive: 'Archive conversation',
|
||||
session_hide_external: 'Ocultar de la lista',
|
||||
session_archive_desc: 'Hide this conversation until archived is shown',
|
||||
session_archive_worktree_desc: 'Ocultar esta conversación; conservar su worktree en disco',
|
||||
session_hide_external_desc: 'Ocultar esta sesión importada de WebUI sin eliminar el historial original.',
|
||||
session_archive_failed: 'Archive failed: ',
|
||||
session_archived: 'Session archived',
|
||||
session_archived_worktree: 'Sesión archivada. El worktree permanece en disco.',
|
||||
session_hidden: 'Sesión ocultada de la lista',
|
||||
session_delete: 'Delete conversation',
|
||||
session_delete_desc: 'Permanently remove this conversation',
|
||||
session_delete_confirm: '¿Eliminar esta conversación?',
|
||||
@@ -6249,6 +6269,7 @@ const LOCALES = {
|
||||
settings_label_sidebar_density: 'Seitenleistendichte',
|
||||
cmd_reasoning: 'Toggle thinking visibility (show/hide), set effort level, or check current status',
|
||||
settings_label_external_sessions: 'Externe Sitzungen anzeigen',
|
||||
settings_label_previous_messaging_sessions: 'Vorherige Messaging-Sitzungen anzeigen',
|
||||
settings_label_sync_insights: 'Mit Insights synchronisieren',
|
||||
settings_label_check_updates: 'Nach Updates suchen',
|
||||
settings_label_whats_new_summary: "Summarize What's New with AI",
|
||||
@@ -6434,6 +6455,7 @@ const LOCALES = {
|
||||
settings_auto_title_refresh_20: 'Alle 20 Antworten',
|
||||
settings_desc_auto_title_refresh: 'Generiert den Sitzungstitel automatisch anhand des letzten Austauschs neu und hält ihn so aktuell, während sich das Gespräch entwickelt. Erfordert ein konfiguriertes LLM-Titelgenerierungsmodell.',
|
||||
settings_desc_external_sessions: 'Zeigt Gespräche von CLI, Telegram, Discord, Slack und anderen Kanälen in der Sitzungsliste an. Klicken zum Importieren und Fortsetzen.',
|
||||
settings_desc_previous_messaging_sessions: 'Zeigt ältere Discord-, Telegram-, Slack- und Weixin-Sitzungen, die durch Reset oder Compression ersetzt wurden.',
|
||||
settings_desc_sync_insights: 'Spiegelt den WebUI-Token-Verbrauch in die state.db, sodass hermes /insights Browser-Sitzungsdaten enthält. Standardmäßig aus.',
|
||||
settings_desc_check_updates: 'Zeigt ein Banner an, wenn neuere Versionen der WebUI oder des Agenten verfügbar sind. Führt regelmäßig einen Git-Fetch im Hintergrund aus.',
|
||||
settings_desc_whats_new_summary: "Changes the What's New action from opening the raw diff first to generating a short, human-readable summary. The regular diff comparison stays available after the summary.",
|
||||
@@ -6561,11 +6583,14 @@ const LOCALES = {
|
||||
|
||||
// Session management and settings keys (en fallback — pending translation)
|
||||
session_archive: 'Archive conversation',
|
||||
session_hide_external: 'Aus Liste ausblenden',
|
||||
session_archive_desc: 'Hide this conversation until archived is shown',
|
||||
session_archive_worktree_desc: 'Diese Konversation ausblenden; den Worktree auf der Festplatte behalten',
|
||||
session_hide_external_desc: 'Diese importierte Sitzung aus der WebUI-Liste ausblenden, ohne den ursprünglichen Verlauf zu löschen.',
|
||||
session_archive_failed: 'Archive failed: ',
|
||||
session_archived: 'Session archived',
|
||||
session_archived_worktree: 'Sitzung archiviert. Der Worktree bleibt auf der Festplatte.',
|
||||
session_hidden: 'Sitzung aus Liste ausgeblendet',
|
||||
session_delete: 'Delete conversation',
|
||||
session_delete_desc: 'Permanently remove this conversation',
|
||||
session_delete_confirm: 'Diese Konversation löschen?',
|
||||
@@ -7426,6 +7451,7 @@ const LOCALES = {
|
||||
settings_label_sidebar_density: '侧边栏密度',
|
||||
cmd_reasoning: '切换思维可见性(显示/隐藏)、设置工作强度或查看当前状态',
|
||||
settings_label_external_sessions: '显示外部会话',
|
||||
settings_label_previous_messaging_sessions: '显示以前的消息会话',
|
||||
settings_label_sync_insights: '同步到 insights',
|
||||
settings_label_check_updates: '检查更新',
|
||||
settings_label_whats_new_summary: "Summarize What's New with AI",
|
||||
@@ -7684,6 +7710,7 @@ const LOCALES = {
|
||||
settings_auto_title_refresh_20: '每 20 轮对话',
|
||||
settings_desc_auto_title_refresh: '基于最新对话自动重新生成会话标题,使其随对话发展保持相关。需要配置 LLM 标题生成模型。',
|
||||
settings_desc_external_sessions: '在会话列表中显示来自 CLI、Telegram、Discord、Slack 等渠道的对话。点击可导入并继续对话。',
|
||||
settings_desc_previous_messaging_sessions: '显示被 reset 或 compression 替换的较旧的 Discord、Telegram、Slack 和 Weixin 会话。',
|
||||
settings_desc_sync_insights: '将 WebUI token 使用情况同步到 state.db,使 hermes /insights 包含浏览器会话数据。默认关闭。',
|
||||
settings_desc_check_updates: '当有更新的 WebUI 或助手版本时显示横幅。会在后台定期执行 git fetch。',
|
||||
settings_desc_whats_new_summary: "Changes the What's New action from opening the raw diff first to generating a short, human-readable summary. The regular diff comparison stays available after the summary.",
|
||||
@@ -7992,11 +8019,14 @@ const LOCALES = {
|
||||
|
||||
// Session management and settings keys (en fallback — pending translation)
|
||||
session_archive: '归档会话',
|
||||
session_hide_external: '从列表中隐藏',
|
||||
session_archive_desc: '隐藏此会话,直到显示归档',
|
||||
session_archive_worktree_desc: '隐藏此会话;保留磁盘上的 worktree',
|
||||
session_hide_external_desc: '从 WebUI 列表中隐藏此导入的会话,不删除原始历史记录。',
|
||||
session_archive_failed: '归档失败:',
|
||||
session_archived: '会话已归档',
|
||||
session_archived_worktree: '会话已归档。Worktree 仍保留在磁盘上。',
|
||||
session_hidden: '已从列表中隐藏会话',
|
||||
session_delete: '删除会话',
|
||||
session_delete_desc: '永久删除此会话',
|
||||
session_delete_confirm: '删除此会话?',
|
||||
@@ -8462,12 +8492,15 @@ const LOCALES = {
|
||||
session_move_project_desc_has: '變更此對話的專案',
|
||||
session_move_project_desc_none: '為此對話指定專案',
|
||||
session_archive: '封存對話',
|
||||
session_hide_external: '從列表中隱藏',
|
||||
session_restore: '還原對話',
|
||||
session_archive_desc: '隱藏此對話,直到開啟顯示封存',
|
||||
session_archive_worktree_desc: '隱藏此對話;保留磁碟上的 worktree',
|
||||
session_hide_external_desc: '從 WebUI 列表中隱藏此匯入的對話,不刪除原始歷史記錄。',
|
||||
session_restore_desc: '將此對話移回主清單',
|
||||
session_archived: '對話已封存',
|
||||
session_archived_worktree: '對話已封存。Worktree 仍保留在磁碟上。',
|
||||
session_hidden: '已從列表中隱藏對話',
|
||||
session_restored: '對話已還原',
|
||||
session_archive_failed: '封存失敗:',
|
||||
session_duplicate: '複製對話',
|
||||
@@ -8578,6 +8611,7 @@ const LOCALES = {
|
||||
settings_label_sidebar_density: '側邊欄密度',
|
||||
cmd_reasoning: '切換思考區塊可見性(顯示/隱藏)或設定努力等級',
|
||||
settings_label_external_sessions: '顯示外部會話',
|
||||
settings_label_previous_messaging_sessions: '顯示以前的訊息對話',
|
||||
settings_label_sync_insights: '\u540c\u6b65\u5230 insights',
|
||||
settings_label_check_updates: '\u6aa2\u67e5\u66f4\u65b0',
|
||||
settings_label_whats_new_summary: "Summarize What's New with AI",
|
||||
@@ -8760,6 +8794,7 @@ const LOCALES = {
|
||||
settings_auto_title_refresh_20: '\u6bcf 20 \u8f2a\u5c0d\u8a71',
|
||||
settings_desc_auto_title_refresh: '\u57fa\u65bc\u6700\u65b0\u5c0d\u8a71\u81ea\u52d5\u91cd\u65b0\u751f\u6210\u6703\u8a71\u6a19\u984c\uff0c\u4f7f\u5176\u968f\u5c0d\u8a71\u767c\u5c55\u4fdd\u6301\u76f8\u95dc\u3002\u9700\u8981\u914d\u7f6e LLM \u6a19\u984c\u751f\u6210\u6a21\u578b\u3002',
|
||||
settings_desc_external_sessions: '在會話列表中顯示來自 CLI、Telegram、Discord、Slack 等管道的對話。點擊可導入並繼續對話。',
|
||||
settings_desc_previous_messaging_sessions: '顯示被 reset 或 compression 替換的較舊的 Discord、Telegram、Slack 和 Weixin 對話。',
|
||||
settings_desc_sync_insights: '將 WebUI token 使用情況同步到 state.db,使 hermes /insights 包含瀏覽器會話數據。預設未啟用。',
|
||||
settings_desc_check_updates: '當有更新的 WebUI 或助手版本時顯示標記。將在後台正常執行 Git-Fetch。',
|
||||
settings_desc_whats_new_summary: "Changes the What's New action from opening the raw diff first to generating a short, human-readable summary. The regular diff comparison stays available after the summary.",
|
||||
@@ -9759,12 +9794,15 @@ const LOCALES = {
|
||||
session_move_project_desc_has: 'Mudar projeto desta conversa',
|
||||
session_move_project_desc_none: 'Atribuir projeto a esta conversa',
|
||||
session_archive: 'Arquivar conversa',
|
||||
session_hide_external: 'Ocultar da lista',
|
||||
session_restore: 'Restaurar conversa',
|
||||
session_archive_desc: 'Esconder conversa até mostrar arquivados',
|
||||
session_archive_worktree_desc: 'Esconder esta conversa; manter o worktree no disco',
|
||||
session_hide_external_desc: 'Ocultar esta sessão importada do WebUI sem excluir o histórico original.',
|
||||
session_restore_desc: 'Trazer conversa de volta à lista principal',
|
||||
session_archived: 'Sessão arquivada',
|
||||
session_archived_worktree: 'Sessão arquivada. O worktree permanece no disco.',
|
||||
session_hidden: 'Sessão ocultada da lista',
|
||||
session_restored: 'Sessão restaurada',
|
||||
session_archive_failed: 'Falha ao arquivar: ',
|
||||
session_duplicate: 'Duplicar conversa',
|
||||
@@ -9871,6 +9909,7 @@ const LOCALES = {
|
||||
settings_label_sidebar_density: 'Densidade da sidebar',
|
||||
cmd_reasoning: 'Alternar visibilidade do pensamento (mostrar/ocultar)',
|
||||
settings_label_external_sessions: 'Mostrar sessões externas',
|
||||
settings_label_previous_messaging_sessions: 'Mostrar sessões de mensagens anteriores',
|
||||
settings_label_sync_insights: 'Sincronizar para insights',
|
||||
settings_label_check_updates: 'Verificar atualizações',
|
||||
settings_label_whats_new_summary: "Summarize What's New with AI",
|
||||
@@ -10059,6 +10098,7 @@ const LOCALES = {
|
||||
settings_auto_title_refresh_20: 'A cada 20 trocas',
|
||||
settings_desc_auto_title_refresh: 'Re-gera título da sessão baseado na última troca.',
|
||||
settings_desc_external_sessions: 'Mostrar conversas de CLI, Telegram, Discord, Slack e outros canais na lista de sessões. Clique para importar e continuar.',
|
||||
settings_desc_previous_messaging_sessions: 'Mostrar sessões antigas de Discord, Telegram, Slack e Weixin substituídas por reset ou compressão.',
|
||||
settings_desc_sync_insights: 'Espelha uso de tokens para state.db.',
|
||||
settings_desc_check_updates: 'Mostrar banner quando versões mais novas estiverem disponíveis.',
|
||||
settings_desc_whats_new_summary: "Changes the What's New action from opening the raw diff first to generating a short, human-readable summary. The regular diff comparison stays available after the summary.",
|
||||
@@ -11997,12 +12037,15 @@ const LOCALES = {
|
||||
session_move_project_desc_has: 'Changer le projet pour cette conversation',
|
||||
session_move_project_desc_none: 'Attribuer un projet à cette conversation',
|
||||
session_archive: 'Archiver une conversation',
|
||||
session_hide_external: 'Masquer de la liste',
|
||||
session_restore: 'Restaurer la conversation',
|
||||
session_archive_desc: 'Masquer cette conversation jusqu\'à ce que l\'archive soit affichée',
|
||||
session_archive_worktree_desc: 'Cachez cette conversation ; garder son arbre de travail sur le disque',
|
||||
session_hide_external_desc: 'Masquer cette session importée du WebUI sans supprimer l\'historique d\'origine.',
|
||||
session_restore_desc: 'Ramenez cette conversation dans la liste principale',
|
||||
session_archived: 'Séance archivée',
|
||||
session_archived_worktree: 'Séance archivée. Worktree reste sur le disque.',
|
||||
session_hidden: 'Session masquée de la liste',
|
||||
session_restored: 'Session restaurée',
|
||||
session_archive_failed: 'Échec de l\'archivage :',
|
||||
session_duplicate: 'Conversation en double',
|
||||
@@ -12109,6 +12152,7 @@ const LOCALES = {
|
||||
settings_label_sidebar_density: 'Densité de la barre latérale',
|
||||
cmd_reasoning: 'Basculez la visibilité de la réflexion (afficher/masquer), définir le niveau d\'effort ou vérifier l\'état actuel',
|
||||
settings_label_external_sessions: 'Afficher les sessions non-WebUI',
|
||||
settings_label_previous_messaging_sessions: 'Afficher les sessions de messagerie précédentes',
|
||||
settings_label_sync_insights: 'Synchroniser avec les insights',
|
||||
settings_label_check_updates: 'Vérifier les mises à jour',
|
||||
settings_label_whats_new_summary: "Summarize What's New with AI",
|
||||
@@ -12306,6 +12350,7 @@ const LOCALES = {
|
||||
settings_auto_title_refresh_20: 'Tous les 20 échanges',
|
||||
settings_desc_auto_title_refresh: 'Régénère automatiquement le titre de la session en fonction du dernier échange, le gardant ainsi pertinent à mesure que la conversation évolue. Nécessite la configuration d’un modèle de génération de titres LLM.',
|
||||
settings_desc_external_sessions: 'Affichez les conversations de CLI, Telegram, Discord, Slack et d\'autres chaînes dans la liste des sessions. Cliquez pour importer et continuer.',
|
||||
settings_desc_previous_messaging_sessions: 'Affichez les anciennes sessions Discord, Telegram, Slack et Weixin remplacées par reset ou compression.',
|
||||
settings_desc_sync_insights: 'Met en miroir l\'utilisation du jeton WebUI dans state.db afin que Hermes /insights inclut les données de session du navigateur. Désactivé par défaut.',
|
||||
settings_desc_check_updates: 'Afficher une bannière lorsque des versions plus récentes de WebUI ou de l\'agent sont disponibles. Exécute périodiquement une récupération git en arrière-plan.',
|
||||
settings_desc_whats_new_summary: "Changes the What's New action from opening the raw diff first to generating a short, human-readable summary. The regular diff comparison stays available after the summary.",
|
||||
|
||||
@@ -23,12 +23,12 @@ class TestSidebarCancelAction:
|
||||
"""Running sessions need a context-menu cancel action even when not active pane."""
|
||||
# Window bumped from 3200 → 4400 in #1764 to accommodate the new
|
||||
# Rename action item, then to 5200 in #2111 for response-aware archive
|
||||
# toast handling inside _openSessionActionMenu before the stop/delete
|
||||
# actions.
|
||||
# toast handling, then to 6400 in #2294 for the new "Hide from list"
|
||||
# action prepended for external sessions.
|
||||
# The `session.active_stream_id` / cancelSessionStream / delete checks
|
||||
# are positional further down in the function, so growing the prefix
|
||||
# required growing this read window.
|
||||
body = _function_body(SESSIONS_JS, "_openSessionActionMenu", 5200)
|
||||
body = _function_body(SESSIONS_JS, "_openSessionActionMenu", 6400)
|
||||
assert "session.active_stream_id" in body, (
|
||||
"sidebar action menu must detect per-session active_stream_id instead of S.activeStreamId"
|
||||
)
|
||||
@@ -75,8 +75,9 @@ class TestSidebarCancelAction:
|
||||
def test_cli_sessions_hide_duplicate_and_delete_in_action_menu(self):
|
||||
"""Session action menu should hide duplicate/delete for CLI-origin sessions."""
|
||||
# Window bumped 3600 → 4800 in #1764 (Rename action prepended), then
|
||||
# to 5200 in #2111 for response-aware archive toast handling.
|
||||
body = _function_body(SESSIONS_JS, "_openSessionActionMenu", 5200)
|
||||
# to 5200 in #2111 for response-aware archive toast handling, then
|
||||
# to 6400 in #2294 for the "Hide from list" action on external sessions.
|
||||
body = _function_body(SESSIONS_JS, "_openSessionActionMenu", 6400)
|
||||
assert "const isCliSession = _isCliSession(session);" in body
|
||||
assert "const isExternalSession = isMessagingSession || isCliSession;" in body
|
||||
assert "if(!isExternalSession)" in body
|
||||
|
||||
@@ -164,7 +164,11 @@ def test_keep_latest_messaging_runs_after_profile_filter():
|
||||
block = src[handler_idx:next_handler]
|
||||
|
||||
filter_idx = block.find('_profiles_match(s.get("profile"), active_profile)')
|
||||
dedupe_idx = block.find('_keep_latest_messaging_session_per_source(scoped)')
|
||||
# The dedupe call can be either single-line `(scoped)` or multi-line
|
||||
# `(\n scoped,\n show_previous_messaging_sessions=…,\n)`; match the
|
||||
# function name + the first arg position rather than coupling to the call
|
||||
# shape. (#2294 added the keyword-arg form.)
|
||||
dedupe_idx = block.find('_keep_latest_messaging_session_per_source(')
|
||||
assert filter_idx > 0, "Profile filter not found in /api/sessions handler"
|
||||
assert dedupe_idx > 0, "Messaging dedupe must run on the scoped list"
|
||||
assert filter_idx < dedupe_idx, (
|
||||
|
||||
Reference in New Issue
Block a user