From 3ab583044ab305275f7fbe48b804fa5c60d6088e Mon Sep 17 00:00:00 2001 From: Teknium <127238744+teknium1@users.noreply.github.com> Date: Tue, 28 Jul 2026 21:52:52 -0700 Subject: [PATCH] salvage(#51128): translate new session-filter strings across 17 locales; expose public get_session_rich_row for search hydration --- hermes_cli/web_server.py | 2 +- hermes_state.py | 9 +++++++++ web/src/i18n/af.ts | 12 ++++++------ web/src/i18n/ar.ts | 8 +++++++- web/src/i18n/de.ts | 10 +++++----- web/src/i18n/es.ts | 10 +++++----- web/src/i18n/fr.ts | 12 ++++++------ web/src/i18n/ga.ts | 12 ++++++------ web/src/i18n/hu.ts | 12 ++++++------ web/src/i18n/it.ts | 12 ++++++------ web/src/i18n/ja.ts | 12 ++++++------ web/src/i18n/ko.ts | 12 ++++++------ web/src/i18n/pt.ts | 12 ++++++------ web/src/i18n/ru.ts | 12 ++++++------ web/src/i18n/tr.ts | 12 ++++++------ web/src/i18n/uk.ts | 12 ++++++------ web/src/i18n/zh-hant.ts | 12 ++++++------ web/src/i18n/zh.ts | 12 ++++++------ 18 files changed, 105 insertions(+), 90 deletions(-) diff --git a/hermes_cli/web_server.py b/hermes_cli/web_server.py index b58af30d39c61..55bbd1f1bdbfc 100644 --- a/hermes_cli/web_server.py +++ b/hermes_cli/web_server.py @@ -5366,7 +5366,7 @@ async def search_sessions( payload["session_id"] = sid payload["lineage_root"] = root try: - row = db._get_session_rich_row(sid) + row = db.get_session_rich_row(sid) except Exception: row = None if row: diff --git a/hermes_state.py b/hermes_state.py index a1f5cba8022af..8c3b3079ceba0 100644 --- a/hermes_state.py +++ b/hermes_state.py @@ -6863,6 +6863,15 @@ class SessionDB: s["preview"] = _shape_preview(s.pop("_preview_raw", "")) return s + def get_session_rich_row(self, session_id: str, compact_rows: bool = False) -> Optional[Dict[str, Any]]: + """Public wrapper for :meth:`_get_session_rich_row`. + + Exposes the single-session enriched row (same columns as + ``list_sessions_rich``: preview + last_active) for callers outside + this module, e.g. the web server's session-search hydration. + """ + return self._get_session_rich_row(session_id, compact_rows=compact_rows) + def list_skill_scaffolded_sessions(self, limit: int = 200) -> List[Dict[str, Any]]: """Titled sessions whose first user turn was a ``/skill`` invocation. diff --git a/web/src/i18n/af.ts b/web/src/i18n/af.ts index d7c16c1bd927e..f43e81aea697d 100644 --- a/web/src/i18n/af.ts +++ b/web/src/i18n/af.ts @@ -129,14 +129,14 @@ export const af: Translations = { title: "Sessies", history: "Geskiedenis", overview: "Oorsig", - filterChats: "Chats", - filterAutomation: "Automation", - filterAll: "All", - sourceFilter: "Session source", - anySource: "Any source", + filterChats: "Geselse", + filterAutomation: "Outomatisering", + filterAll: "Alles", + sourceFilter: "Sessiebron", + anySource: "Enige bron", searchPlaceholder: "Soek boodskap-inhoud...", noSessions: "Nog geen sessies nie", - noSessionsInFilter: "No sessions in this filter", + noSessionsInFilter: "Geen sessies in hierdie filter nie", noMatch: "Geen sessies stem ooreen met jou soektog nie", startConversation: "Begin 'n gesprek om dit hier te sien", noMessages: "Geen boodskappe", diff --git a/web/src/i18n/ar.ts b/web/src/i18n/ar.ts index 0d961d9b49ebd..be7a6f06036c5 100644 --- a/web/src/i18n/ar.ts +++ b/web/src/i18n/ar.ts @@ -127,8 +127,14 @@ export const ar = defineLocale({ sessions: { title: "الجلسات", + filterChats: "الدردشات", + filterAutomation: "الأتمتة", + filterAll: "الكل", + sourceFilter: "مصدر الجلسة", + anySource: "أي مصدر", + noSessionsInFilter: "لا توجد جلسات في هذا الفلتر", searchPlaceholder: "بحث في محتوى الرسائل...", - noSessions: "لا توجد جلسات حتى الآن", + noSessions: "لا توجد جلسات حتى الآن", noMatch: "لا توجد جلسات تطابق بحثك", startConversation: "ابدأ محادثة لتظهر هنا", noMessages: "لا توجد رسائل", diff --git a/web/src/i18n/de.ts b/web/src/i18n/de.ts index 5057497fec116..58c8998cf2f44 100644 --- a/web/src/i18n/de.ts +++ b/web/src/i18n/de.ts @@ -130,13 +130,13 @@ export const de: Translations = { history: "Verlauf", overview: "Übersicht", filterChats: "Chats", - filterAutomation: "Automation", - filterAll: "All", - sourceFilter: "Session source", - anySource: "Any source", + filterAutomation: "Automatisierung", + filterAll: "Alle", + sourceFilter: "Sitzungsquelle", + anySource: "Beliebige Quelle", searchPlaceholder: "Nachrichteninhalt suchen...", noSessions: "Noch keine Sitzungen", - noSessionsInFilter: "No sessions in this filter", + noSessionsInFilter: "Keine Sitzungen in diesem Filter", noMatch: "Keine Sitzungen entsprechen deiner Suche", startConversation: "Starte eine Unterhaltung, um sie hier zu sehen", noMessages: "Keine Nachrichten", diff --git a/web/src/i18n/es.ts b/web/src/i18n/es.ts index 6fa3300961ebd..4832e44be9e42 100644 --- a/web/src/i18n/es.ts +++ b/web/src/i18n/es.ts @@ -130,13 +130,13 @@ export const es: Translations = { history: "Historial", overview: "Resumen", filterChats: "Chats", - filterAutomation: "Automation", - filterAll: "All", - sourceFilter: "Session source", - anySource: "Any source", + filterAutomation: "Automatización", + filterAll: "Todas", + sourceFilter: "Origen de la sesión", + anySource: "Cualquier origen", searchPlaceholder: "Buscar contenido de mensajes...", noSessions: "Aún no hay sesiones", - noSessionsInFilter: "No sessions in this filter", + noSessionsInFilter: "No hay sesiones en este filtro", noMatch: "Ninguna sesión coincide con tu búsqueda", startConversation: "Inicia una conversación para verla aquí", noMessages: "Sin mensajes", diff --git a/web/src/i18n/fr.ts b/web/src/i18n/fr.ts index 7900000e42fd9..d882674eed779 100644 --- a/web/src/i18n/fr.ts +++ b/web/src/i18n/fr.ts @@ -129,14 +129,14 @@ export const fr: Translations = { title: "Sessions", history: "Historique", overview: "Aperçu", - filterChats: "Chats", - filterAutomation: "Automation", - filterAll: "All", - sourceFilter: "Session source", - anySource: "Any source", + filterChats: "Discussions", + filterAutomation: "Automatisation", + filterAll: "Toutes", + sourceFilter: "Source de la session", + anySource: "Toute source", searchPlaceholder: "Rechercher dans les messages...", noSessions: "Aucune session pour l'instant", - noSessionsInFilter: "No sessions in this filter", + noSessionsInFilter: "Aucune session dans ce filtre", noMatch: "Aucune session ne correspond à votre recherche", startConversation: "Démarrez une conversation pour la voir ici", noMessages: "Aucun message", diff --git a/web/src/i18n/ga.ts b/web/src/i18n/ga.ts index 8762c8eaf1857..91a1c5858ed63 100644 --- a/web/src/i18n/ga.ts +++ b/web/src/i18n/ga.ts @@ -129,14 +129,14 @@ export const ga: Translations = { title: "Seisiúin", history: "Stair", overview: "Forbhreathnú", - filterChats: "Chats", - filterAutomation: "Automation", - filterAll: "All", - sourceFilter: "Session source", - anySource: "Any source", + filterChats: "Comhráite", + filterAutomation: "Uathoibriú", + filterAll: "Uile", + sourceFilter: "Foinse an tseisiúin", + anySource: "Foinse ar bith", searchPlaceholder: "Cuardaigh ábhar teachtaireachta...", noSessions: "Gan seisiúin go fóill", - noSessionsInFilter: "No sessions in this filter", + noSessionsInFilter: "Níl aon seisiún sa scagaire seo", noMatch: "Níl seisiún ar bith ag teacht le do chuardach", startConversation: "Tosaigh comhrá chun é a fheiceáil anseo", noMessages: "Gan teachtaireachtaí", diff --git a/web/src/i18n/hu.ts b/web/src/i18n/hu.ts index 02f7e16dbb925..b3f7f1b7b7825 100644 --- a/web/src/i18n/hu.ts +++ b/web/src/i18n/hu.ts @@ -129,14 +129,14 @@ export const hu: Translations = { title: "Munkamenetek", history: "Előzmények", overview: "Áttekintés", - filterChats: "Chats", - filterAutomation: "Automation", - filterAll: "All", - sourceFilter: "Session source", - anySource: "Any source", + filterChats: "Csevegések", + filterAutomation: "Automatizálás", + filterAll: "Összes", + sourceFilter: "Munkamenet forrása", + anySource: "Bármely forrás", searchPlaceholder: "Keresés üzenettartalomban...", noSessions: "Még nincsenek munkamenetek", - noSessionsInFilter: "No sessions in this filter", + noSessionsInFilter: "Nincs munkamenet ebben a szűrőben", noMatch: "Nincs a keresésnek megfelelő munkamenet", startConversation: "Indítson egy beszélgetést, hogy itt megjelenjen", noMessages: "Nincsenek üzenetek", diff --git a/web/src/i18n/it.ts b/web/src/i18n/it.ts index 42d90b0193b92..a0b1410a94b3a 100644 --- a/web/src/i18n/it.ts +++ b/web/src/i18n/it.ts @@ -129,14 +129,14 @@ export const it: Translations = { title: "Sessioni", history: "Cronologia", overview: "Panoramica", - filterChats: "Chats", - filterAutomation: "Automation", - filterAll: "All", - sourceFilter: "Session source", - anySource: "Any source", + filterChats: "Chat", + filterAutomation: "Automazione", + filterAll: "Tutte", + sourceFilter: "Origine della sessione", + anySource: "Qualsiasi origine", searchPlaceholder: "Cerca nel contenuto dei messaggi...", noSessions: "Nessuna sessione", - noSessionsInFilter: "No sessions in this filter", + noSessionsInFilter: "Nessuna sessione in questo filtro", noMatch: "Nessuna sessione corrisponde alla ricerca", startConversation: "Avvia una conversazione per vederla qui", noMessages: "Nessun messaggio", diff --git a/web/src/i18n/ja.ts b/web/src/i18n/ja.ts index f0200b4bc09cd..05688d12a3f76 100644 --- a/web/src/i18n/ja.ts +++ b/web/src/i18n/ja.ts @@ -129,14 +129,14 @@ export const ja: Translations = { title: "セッション", history: "履歴", overview: "概要", - filterChats: "Chats", - filterAutomation: "Automation", - filterAll: "All", - sourceFilter: "Session source", - anySource: "Any source", + filterChats: "チャット", + filterAutomation: "自動化", + filterAll: "すべて", + sourceFilter: "セッションのソース", + anySource: "すべてのソース", searchPlaceholder: "メッセージ内容を検索...", noSessions: "まだセッションがありません", - noSessionsInFilter: "No sessions in this filter", + noSessionsInFilter: "このフィルターにセッションはありません", noMatch: "検索条件に一致するセッションはありません", startConversation: "会話を開始するとここに表示されます", noMessages: "メッセージがありません", diff --git a/web/src/i18n/ko.ts b/web/src/i18n/ko.ts index 7d5d96e4e1bd6..a6c3ae11cdb26 100644 --- a/web/src/i18n/ko.ts +++ b/web/src/i18n/ko.ts @@ -129,14 +129,14 @@ export const ko: Translations = { title: "세션", history: "기록", overview: "개요", - filterChats: "Chats", - filterAutomation: "Automation", - filterAll: "All", - sourceFilter: "Session source", - anySource: "Any source", + filterChats: "채팅", + filterAutomation: "자동화", + filterAll: "전체", + sourceFilter: "세션 소스", + anySource: "모든 소스", searchPlaceholder: "메시지 내용 검색...", noSessions: "아직 세션이 없습니다", - noSessionsInFilter: "No sessions in this filter", + noSessionsInFilter: "이 필터에 세션이 없습니다", noMatch: "검색과 일치하는 세션이 없습니다", startConversation: "대화를 시작하면 여기에 표시됩니다", noMessages: "메시지가 없습니다", diff --git a/web/src/i18n/pt.ts b/web/src/i18n/pt.ts index d625c3927d657..7c013dd889485 100644 --- a/web/src/i18n/pt.ts +++ b/web/src/i18n/pt.ts @@ -129,14 +129,14 @@ export const pt: Translations = { title: "Sessões", history: "Histórico", overview: "Visão geral", - filterChats: "Chats", - filterAutomation: "Automation", - filterAll: "All", - sourceFilter: "Session source", - anySource: "Any source", + filterChats: "Conversas", + filterAutomation: "Automação", + filterAll: "Todas", + sourceFilter: "Origem da sessão", + anySource: "Qualquer origem", searchPlaceholder: "Pesquisar conteúdo das mensagens...", noSessions: "Ainda não há sessões", - noSessionsInFilter: "No sessions in this filter", + noSessionsInFilter: "Nenhuma sessão neste filtro", noMatch: "Nenhuma sessão corresponde à pesquisa", startConversation: "Inicie uma conversa para a ver aqui", noMessages: "Sem mensagens", diff --git a/web/src/i18n/ru.ts b/web/src/i18n/ru.ts index 3a4fb049902da..abc7c7bda1b9b 100644 --- a/web/src/i18n/ru.ts +++ b/web/src/i18n/ru.ts @@ -129,14 +129,14 @@ export const ru: Translations = { title: "Сессии", history: "История", overview: "Обзор", - filterChats: "Chats", - filterAutomation: "Automation", - filterAll: "All", - sourceFilter: "Session source", - anySource: "Any source", + filterChats: "Чаты", + filterAutomation: "Автоматизация", + filterAll: "Все", + sourceFilter: "Источник сессии", + anySource: "Любой источник", searchPlaceholder: "Поиск по содержимому сообщений...", noSessions: "Сессий пока нет", - noSessionsInFilter: "No sessions in this filter", + noSessionsInFilter: "В этом фильтре нет сессий", noMatch: "Нет сессий, соответствующих запросу", startConversation: "Начните разговор, чтобы увидеть его здесь", noMessages: "Нет сообщений", diff --git a/web/src/i18n/tr.ts b/web/src/i18n/tr.ts index fc470fb9b64ff..10c332d2a9ffd 100644 --- a/web/src/i18n/tr.ts +++ b/web/src/i18n/tr.ts @@ -129,14 +129,14 @@ export const tr: Translations = { title: "Oturumlar", history: "Geçmiş", overview: "Genel bakış", - filterChats: "Chats", - filterAutomation: "Automation", - filterAll: "All", - sourceFilter: "Session source", - anySource: "Any source", + filterChats: "Sohbetler", + filterAutomation: "Otomasyon", + filterAll: "Tümü", + sourceFilter: "Oturum kaynağı", + anySource: "Herhangi bir kaynak", searchPlaceholder: "Mesaj içeriğinde ara...", noSessions: "Henüz oturum yok", - noSessionsInFilter: "No sessions in this filter", + noSessionsInFilter: "Bu filtrede oturum yok", noMatch: "Aramanızla eşleşen oturum yok", startConversation: "Burada görmek için bir konuşma başlatın", noMessages: "Mesaj yok", diff --git a/web/src/i18n/uk.ts b/web/src/i18n/uk.ts index 1ed996d6c386f..194d0e62928fd 100644 --- a/web/src/i18n/uk.ts +++ b/web/src/i18n/uk.ts @@ -129,14 +129,14 @@ export const uk: Translations = { title: "Сесії", history: "Історія", overview: "Огляд", - filterChats: "Chats", - filterAutomation: "Automation", - filterAll: "All", - sourceFilter: "Session source", - anySource: "Any source", + filterChats: "Чати", + filterAutomation: "Автоматизація", + filterAll: "Усі", + sourceFilter: "Джерело сесії", + anySource: "Будь-яке джерело", searchPlaceholder: "Пошук у вмісті повідомлень...", noSessions: "Поки немає сесій", - noSessionsInFilter: "No sessions in this filter", + noSessionsInFilter: "У цьому фільтрі немає сесій", noMatch: "Жодна сесія не відповідає вашому пошуку", startConversation: "Почніть розмову, щоб побачити її тут", noMessages: "Немає повідомлень", diff --git a/web/src/i18n/zh-hant.ts b/web/src/i18n/zh-hant.ts index 675c4997a4049..49bc2b992b67b 100644 --- a/web/src/i18n/zh-hant.ts +++ b/web/src/i18n/zh-hant.ts @@ -129,14 +129,14 @@ export const zhHant: Translations = { title: "工作階段", history: "歷史", overview: "總覽", - filterChats: "Chats", - filterAutomation: "Automation", - filterAll: "All", - sourceFilter: "Session source", - anySource: "Any source", + filterChats: "聊天", + filterAutomation: "自動化", + filterAll: "全部", + sourceFilter: "工作階段來源", + anySource: "任何來源", searchPlaceholder: "搜尋訊息內容...", noSessions: "尚無工作階段", - noSessionsInFilter: "No sessions in this filter", + noSessionsInFilter: "此篩選條件下沒有工作階段", noMatch: "沒有符合的工作階段", startConversation: "開始對話後將顯示於此", noMessages: "尚無訊息", diff --git a/web/src/i18n/zh.ts b/web/src/i18n/zh.ts index f34a96273e7ef..38a5071a03182 100644 --- a/web/src/i18n/zh.ts +++ b/web/src/i18n/zh.ts @@ -128,14 +128,14 @@ export const zh: Translations = { title: "会话", history: "历史", overview: "概览", - filterChats: "Chats", - filterAutomation: "Automation", - filterAll: "All", - sourceFilter: "Session source", - anySource: "Any source", + filterChats: "聊天", + filterAutomation: "自动化", + filterAll: "全部", + sourceFilter: "会话来源", + anySource: "任意来源", searchPlaceholder: "搜索消息内容...", noSessions: "暂无会话", - noSessionsInFilter: "No sessions in this filter", + noSessionsInFilter: "此筛选条件下暂无会话", noMatch: "没有匹配的会话", startConversation: "开始对话后将显示在此处", noMessages: "暂无消息",