diff --git a/gateway/run.py b/gateway/run.py index ae2554ae64..5887ffe0ba 100644 --- a/gateway/run.py +++ b/gateway/run.py @@ -20660,6 +20660,15 @@ class GatewayRunner(GatewayAuthorizationMixin, GatewayKanbanWatchersMixin, Gatew if _cancelled is None: await asyncio.sleep(0.025) if not _cancelled: + # NOTE: bounded overshoot by design. + # The turn can be held past + # _hyg_max_turn_hold_seconds by up to the + # commit duration (summary apply + storage + # write). Aborting mid-commit would corrupt + # the message-store transaction — the + # overshoot is the cheaper failure mode. + # Do NOT "fix" this into a mid-commit + # cancellation. _compressed, _ = await _hyg_future else: _hyg_commit_fence.release_cancelled_compression_lock() @@ -20703,10 +20712,8 @@ class GatewayRunner(GatewayAuthorizationMixin, GatewayKanbanWatchersMixin, Gatew session_entry.session_id, time.monotonic() - _hyg_wait_started, ) - _turnhold_msg = ( - "ℹ️ Context compression deferred — " - "summary still streaming. " - "Continuing without compression this turn." + _turnhold_msg = t( + "gateway.compress.turnhold_deferred" ) try: _adapter = self._adapter_for_source(source) diff --git a/locales/af.yaml b/locales/af.yaml index 3fcc466d6c..6e35b39352 100644 --- a/locales/af.yaml +++ b/locales/af.yaml @@ -98,6 +98,7 @@ gateway: summary_failed: "⚠️ Opsomming kon nie gegenereer word nie ({error}). {count} historiese boodskap(pe) is verwyder en met 'n plekhouer vervang; vroeëre konteks kan nie meer herstel word nie. Oorweeg om jou auxiliary.compression-modelopstelling na te gaan." aborted: "⚠️ Kompressie gestaak ({error}). Geen boodskappe is laat val nie — die gesprek is onveranderd. Voer /compress uit om weer te probeer, /reset vir 'n skoon sessie, of kyk na jou auxiliary.compression-modelkonfigurasie." aux_failed: "ℹ️ Opgestelde saamperseringsmodel `{model}` het misluk ({error}). Herstel met jou hoofmodel — konteks is intakt — maar jy mag dalk `auxiliary.compression.model` in config.yaml wil nagaan." + turnhold_deferred: "ℹ️ Kontekskompressie uitgestel — opsomming stroom nog. Gaan hierdie beurt sonder kompressie voort." failed: "Saampersing het misluk: {error}" debug: diff --git a/locales/ar.yaml b/locales/ar.yaml index 029526e8f3..c158ca8e90 100644 --- a/locales/ar.yaml +++ b/locales/ar.yaml @@ -121,6 +121,7 @@ gateway: summary_failed: "⚠️ فشل توليد الملخّص ({error}). أُزيلت {count} رسالة تاريخية واستُبدلت بعنصر نائب؛ لم يعد السياق الأقدم قابلًا للاسترجاع. فكّر في مراجعة إعداد نموذج auxiliary.compression." aborted: "⚠️ أُلغي الضغط ({error}). لم تُسقط أي رسائل — المحادثة كما هي. شغّل /compress للمحاولة مجددًا، أو /reset لجلسة نظيفة، أو راجع إعداد نموذج auxiliary.compression." aux_failed: "ℹ️ فشل نموذج الضغط المُهيّأ `{model}` ({error}). تم التعافي باستخدام نموذجك الرئيسي — السياق سليم — لكن قد ترغب في مراجعة `auxiliary.compression.model` في config.yaml." + turnhold_deferred: "ℹ️ تم تأجيل ضغط السياق — الملخص لا يزال قيد البث. نواصل هذا الدور دون ضغط." failed: "فشل الضغط: {error}" debug: diff --git a/locales/de.yaml b/locales/de.yaml index c81dc601d3..a4b008811b 100644 --- a/locales/de.yaml +++ b/locales/de.yaml @@ -98,6 +98,7 @@ gateway: summary_failed: "⚠️ Zusammenfassungsgenerierung fehlgeschlagen ({error}). {count} historische Nachricht(en) wurden entfernt und durch einen Platzhalter ersetzt; früherer Kontext ist nicht mehr wiederherstellbar. Überprüfen Sie die Konfiguration des auxiliary.compression-Modells." aborted: "⚠️ Komprimierung abgebrochen ({error}). Keine Nachrichten wurden entfernt — die Konversation ist unverändert. Führe /compress aus, um es erneut zu versuchen, /reset für eine neue Sitzung, oder prüfe deine auxiliary.compression-Modellkonfiguration." aux_failed: "ℹ️ Das konfigurierte Komprimierungsmodell `{model}` ist fehlgeschlagen ({error}). Wiederherstellung mit Ihrem Hauptmodell — Kontext ist intakt — Sie sollten jedoch `auxiliary.compression.model` in config.yaml überprüfen." + turnhold_deferred: "ℹ️ Kontextkomprimierung aufgeschoben — die Zusammenfassung streamt noch. Dieser Zug wird ohne Komprimierung fortgesetzt." failed: "Komprimierung fehlgeschlagen: {error}" debug: diff --git a/locales/en.yaml b/locales/en.yaml index a636a23c27..6cd29ad63e 100644 --- a/locales/en.yaml +++ b/locales/en.yaml @@ -113,6 +113,7 @@ gateway: summary_failed: "⚠️ Summary generation failed ({error}). {count} historical message(s) were removed and replaced with a placeholder; earlier context is no longer recoverable. Consider checking your auxiliary.compression model configuration." aborted: "⚠️ Compression aborted ({error}). No messages were dropped — conversation is unchanged. Run /compress to retry, /reset for a clean session, or check your auxiliary.compression model configuration." aux_failed: "ℹ️ Configured compression model `{model}` failed ({error}). Recovered using your main model — context is intact — but you may want to check `auxiliary.compression.model` in config.yaml." + turnhold_deferred: "ℹ️ Context compression deferred — summary still streaming. Continuing without compression this turn." failed: "Compression failed: {error}" debug: diff --git a/locales/es.yaml b/locales/es.yaml index 4cc6a3c73b..59d7232e80 100644 --- a/locales/es.yaml +++ b/locales/es.yaml @@ -98,6 +98,7 @@ gateway: summary_failed: "⚠️ Falló la generación del resumen ({error}). Se eliminaron {count} mensaje(s) históricos y se reemplazaron por un marcador; el contexto anterior ya no se puede recuperar. Considera revisar la configuración del modelo auxiliary.compression." aborted: "⚠️ Compresión abortada ({error}). No se eliminó ningún mensaje — la conversación está intacta. Ejecuta /compress para reintentar, /reset para una sesión limpia, o revisa la configuración de tu modelo auxiliary.compression." aux_failed: "ℹ️ El modelo de compresión configurado `{model}` falló ({error}). Recuperado con tu modelo principal — el contexto está intacto — pero quizá quieras revisar `auxiliary.compression.model` en config.yaml." + turnhold_deferred: "ℹ️ Compresión de contexto aplazada — el resumen aún se está transmitiendo. Se continúa sin compresión en este turno." failed: "Compresión fallida: {error}" debug: diff --git a/locales/fr.yaml b/locales/fr.yaml index 56c8c3ab98..477d3f3146 100644 --- a/locales/fr.yaml +++ b/locales/fr.yaml @@ -98,6 +98,7 @@ gateway: summary_failed: "⚠️ Échec de la génération du résumé ({error}). {count} message(s) historique(s) ont été supprimés et remplacés par un espace réservé ; le contexte antérieur n'est plus récupérable. Vérifiez la configuration du modèle auxiliary.compression." aborted: "⚠️ Compression interrompue ({error}). Aucun message n'a été supprimé — la conversation est inchangée. Lancez /compress pour réessayer, /reset pour une nouvelle session, ou vérifiez la configuration de votre modèle auxiliary.compression." aux_failed: "ℹ️ Le modèle de compression configuré `{model}` a échoué ({error}). Récupéré avec votre modèle principal — le contexte est intact — mais vous pouvez vérifier `auxiliary.compression.model` dans config.yaml." + turnhold_deferred: "ℹ️ Compression du contexte différée — le résumé est encore en cours de diffusion. Poursuite sans compression pour ce tour." failed: "Échec de la compression : {error}" debug: diff --git a/locales/ga.yaml b/locales/ga.yaml index ec9ce2bac2..3734823226 100644 --- a/locales/ga.yaml +++ b/locales/ga.yaml @@ -102,6 +102,7 @@ gateway: summary_failed: "⚠️ Theip ar ghiniúint achoimre ({error}). Baineadh {count} teachtaireacht stairiúil agus cuireadh ionadaí ina n-áit; níl an comhthéacs roimhe seo in-aisghabhála a thuilleadh. Smaoinigh ar an gcumraíocht auxiliary.compression a sheiceáil." aborted: "⚠️ Cuireadh deireadh leis an dlúthú ({error}). Níor baineadh aon teachtaireacht — tá an comhrá gan athrú. Rith /compress chun é a thriail arís, /reset le haghaidh seisiún glan, nó seiceáil do chumraíocht samhla auxiliary.compression." aux_failed: "ℹ️ Theip ar an tsamhail dlúthúcháin chumraithe `{model}` ({error}). Aisghafa ag baint úsáide as do phríomhshamhail — tá an comhthéacs slán — ach b'fhéidir gur mhaith leat `auxiliary.compression.model` i config.yaml a sheiceáil." + turnhold_deferred: "ℹ️ Cuireadh comhbhrú comhthéacs siar — tá an achoimre fós á sruthú. Ag leanúint ar aghaidh gan chomhbhrú don seal seo." failed: "Theip ar dhlúthú: {error}" debug: diff --git a/locales/hu.yaml b/locales/hu.yaml index 571f91c014..e529dfe3b4 100644 --- a/locales/hu.yaml +++ b/locales/hu.yaml @@ -98,6 +98,7 @@ gateway: summary_failed: "⚠️ Az összefoglaló generálása sikertelen ({error}). {count} korábbi üzenet eltávolítva és helykitöltővel helyettesítve; a korábbi kontextus már nem helyreállítható. Érdemes ellenőrizni az auxiliary.compression modell konfigurációját." aborted: "⚠️ Tömörítés megszakítva ({error}). Egyetlen üzenet sem lett eldobva — a beszélgetés változatlan. Futtass /compress parancsot az újrapróbálkozáshoz, /reset egy új munkamenethez, vagy ellenőrizd az auxiliary.compression modell konfigurációt." aux_failed: "ℹ️ A beállított tömörítőmodell (`{model}`) hibát adott ({error}). A főmodellel helyreállítva — a kontextus érintetlen — de érdemes ellenőrizni az `auxiliary.compression.model` beállítást a config.yaml fájlban." + turnhold_deferred: "ℹ️ A kontextustömörítés elhalasztva — az összefoglaló még streamel. Ebben a körben tömörítés nélkül folytatjuk." failed: "Tömörítés sikertelen: {error}" debug: diff --git a/locales/it.yaml b/locales/it.yaml index d925d1648d..5ceef400f1 100644 --- a/locales/it.yaml +++ b/locales/it.yaml @@ -98,6 +98,7 @@ gateway: summary_failed: "⚠️ Generazione del riepilogo non riuscita ({error}). {count} messaggio/i storico/i sono stati rimossi e sostituiti con un segnaposto; il contesto precedente non è più recuperabile. Considera di controllare la configurazione del modello auxiliary.compression." aborted: "⚠️ Compressione interrotta ({error}). Nessun messaggio è stato eliminato — la conversazione è invariata. Esegui /compress per riprovare, /reset per una nuova sessione, o controlla la configurazione del modello auxiliary.compression." aux_failed: "ℹ️ Il modello di compressione configurato `{model}` non è riuscito ({error}). Recupero effettuato usando il modello principale — il contesto è intatto — ma potresti voler controllare `auxiliary.compression.model` in config.yaml." + turnhold_deferred: "ℹ️ Compressione del contesto rinviata — il riepilogo è ancora in streaming. Si continua senza compressione per questo turno." failed: "Compressione non riuscita: {error}" debug: diff --git a/locales/ja.yaml b/locales/ja.yaml index 3ff3dc1fd0..5d252d17ee 100644 --- a/locales/ja.yaml +++ b/locales/ja.yaml @@ -98,6 +98,7 @@ gateway: summary_failed: "⚠️ 要約の生成に失敗しました ({error})。{count} 件の履歴メッセージが削除され、プレースホルダーに置き換えられました。以前のコンテキストは復元できません。auxiliary.compression モデルの設定を確認してください。" aborted: "⚠️ 圧縮が中止されました ({error})。メッセージは削除されていません — 会話はそのままです。再試行するには /compress、新しいセッションを開始するには /reset を実行するか、auxiliary.compression モデル設定を確認してください。" aux_failed: "ℹ️ 構成された圧縮モデル `{model}` が失敗しました ({error})。メインモデルで復旧しました — コンテキストは無傷です — config.yaml の `auxiliary.compression.model` を確認するとよいでしょう。" + turnhold_deferred: "ℹ️ コンテキスト圧縮を延期しました — 要約はまだストリーミング中です。このターンは圧縮せずに続行します。" failed: "圧縮に失敗しました: {error}" debug: diff --git a/locales/ko.yaml b/locales/ko.yaml index 9fab32a9a6..efdbb75469 100644 --- a/locales/ko.yaml +++ b/locales/ko.yaml @@ -98,6 +98,7 @@ gateway: summary_failed: "⚠️ 요약 생성에 실패했습니다 ({error}). 과거 메시지 {count}개가 제거되어 자리표시자로 대체되었으며, 이전 컨텍스트는 더 이상 복구할 수 없습니다. auxiliary.compression 모델 설정을 확인해 보세요." aborted: "⚠️ 압축이 중단되었습니다 ({error}). 메시지가 삭제되지 않았으며 대화는 그대로 유지됩니다. 다시 시도하려면 /compress를 실행하거나, 새 세션을 시작하려면 /reset을 사용하거나, auxiliary.compression 모델 설정을 확인하세요." aux_failed: "ℹ️ 구성된 압축 모델 `{model}`이(가) 실패했습니다 ({error}). 메인 모델로 복구되어 컨텍스트는 보존되었지만, config.yaml의 `auxiliary.compression.model` 설정을 확인하는 것이 좋습니다." + turnhold_deferred: "ℹ️ 컨텍스트 압축이 연기되었습니다 — 요약이 아직 스트리밍 중입니다. 이번 턴은 압축 없이 계속합니다." failed: "압축 실패: {error}" debug: diff --git a/locales/pt.yaml b/locales/pt.yaml index acd32ba95d..3a45b18f4a 100644 --- a/locales/pt.yaml +++ b/locales/pt.yaml @@ -98,6 +98,7 @@ gateway: summary_failed: "⚠️ Falha ao gerar o resumo ({error}). {count} mensagem(ns) histórica(s) foram removidas e substituídas por um marcador; o contexto anterior já não pode ser recuperado. Considera verificar a configuração do modelo auxiliary.compression." aborted: "⚠️ Compressão abortada ({error}). Nenhuma mensagem foi removida — a conversa está inalterada. Executa /compress para tentar de novo, /reset para uma sessão nova, ou verifica a configuração do modelo auxiliary.compression." aux_failed: "ℹ️ O modelo de compressão configurado `{model}` falhou ({error}). Recuperado com o teu modelo principal — o contexto está intacto — mas talvez queiras verificar `auxiliary.compression.model` em config.yaml." + turnhold_deferred: "ℹ️ Compressão de contexto adiada — o resumo ainda está em transmissão. Continuando sem compressão neste turno." failed: "Compressão falhou: {error}" debug: diff --git a/locales/ru.yaml b/locales/ru.yaml index d3de815195..0e7d011908 100644 --- a/locales/ru.yaml +++ b/locales/ru.yaml @@ -98,6 +98,7 @@ gateway: summary_failed: "⚠️ Не удалось сгенерировать сводку ({error}). {count} историч. сообщений было удалено и заменено заполнителем; предыдущий контекст больше нельзя восстановить. Проверьте конфигурацию модели auxiliary.compression." aborted: "⚠️ Сжатие прервано ({error}). Сообщения не были удалены — разговор не изменился. Запустите /compress для повторной попытки, /reset для новой сессии или проверьте конфигурацию модели auxiliary.compression." aux_failed: "ℹ️ Настроенная модель сжатия `{model}` дала сбой ({error}). Восстановлено с помощью основной модели — контекст не повреждён — но рекомендуется проверить `auxiliary.compression.model` в config.yaml." + turnhold_deferred: "ℹ️ Сжатие контекста отложено — сводка ещё передаётся. Продолжаем этот ход без сжатия." failed: "Сжатие не удалось: {error}" debug: diff --git a/locales/tr.yaml b/locales/tr.yaml index 62456fe642..55101e49fc 100644 --- a/locales/tr.yaml +++ b/locales/tr.yaml @@ -98,6 +98,7 @@ gateway: summary_failed: "⚠️ Özet oluşturma başarısız ({error}). {count} geçmiş mesaj kaldırılıp yer tutucuyla değiştirildi; önceki bağlam artık kurtarılamaz. auxiliary.compression model yapılandırmanızı kontrol edin." aborted: "⚠️ Sıkıştırma iptal edildi ({error}). Hiçbir mesaj silinmedi — konuşma değişmedi. Tekrar denemek için /compress, temiz bir oturum için /reset komutunu çalıştırın veya auxiliary.compression model yapılandırmanızı kontrol edin." aux_failed: "ℹ️ Yapılandırılmış sıkıştırma modeli `{model}` başarısız oldu ({error}). Ana modelinizle kurtarıldı — bağlam sağlam — ancak config.yaml içindeki `auxiliary.compression.model` öğesini kontrol etmek isteyebilirsiniz." + turnhold_deferred: "ℹ️ Bağlam sıkıştırma ertelendi — özet hâlâ akışta. Bu tur sıkıştırma olmadan devam ediliyor." failed: "Sıkıştırma başarısız: {error}" debug: diff --git a/locales/uk.yaml b/locales/uk.yaml index dc08b6781e..44b0639040 100644 --- a/locales/uk.yaml +++ b/locales/uk.yaml @@ -98,6 +98,7 @@ gateway: summary_failed: "⚠️ Не вдалося згенерувати зведення ({error}). {count} історичних повідомлень було видалено та замінено заповнювачем; попередній контекст більше не можна відновити. Перевірте конфігурацію моделі auxiliary.compression." aborted: "⚠️ Стиснення скасовано ({error}). Жодне повідомлення не було видалено — розмова не змінилася. Виконайте /compress, щоб повторити спробу, /reset для нової сесії, або перевірте конфігурацію моделі auxiliary.compression." aux_failed: "ℹ️ Налаштована модель стиснення `{model}` зазнала збою ({error}). Відновлено за допомогою основної моделі — контекст не пошкоджений — але варто перевірити `auxiliary.compression.model` у config.yaml." + turnhold_deferred: "ℹ️ Стиснення контексту відкладено — підсумок ще передається. Продовжуємо цей хід без стиснення." failed: "Стиснення не вдалося: {error}" debug: diff --git a/locales/zh-hant.yaml b/locales/zh-hant.yaml index 2187a7ecab..8d9dc19fa7 100644 --- a/locales/zh-hant.yaml +++ b/locales/zh-hant.yaml @@ -98,6 +98,7 @@ gateway: summary_failed: "⚠️ 摘要產生失敗({error})。{count} 則歷史訊息已被移除並以佔位符取代;先前的上下文已無法復原。建議檢查 auxiliary.compression 模型設定。" aborted: "⚠️ 壓縮已中止 ({error})。未刪除任何訊息 — 對話保持不變。執行 /compress 重試,執行 /reset 開始新工作階段,或檢查你的 auxiliary.compression 模型設定。" aux_failed: "ℹ️ 設定的壓縮模型 `{model}` 失敗({error})。已使用主要模型復原 — 上下文完整 — 但您可能想檢查 config.yaml 中的 `auxiliary.compression.model`。" + turnhold_deferred: "ℹ️ 上下文壓縮已延後 — 摘要仍在產生中。本回合將不壓縮繼續。" failed: "壓縮失敗:{error}" debug: diff --git a/locales/zh.yaml b/locales/zh.yaml index 7a830bf1b7..b991506ced 100644 --- a/locales/zh.yaml +++ b/locales/zh.yaml @@ -98,6 +98,7 @@ gateway: summary_failed: "⚠️ 摘要生成失败({error})。{count} 条历史消息已被移除并替换为占位符;之前的上下文已无法恢复。建议检查 auxiliary.compression 模型配置。" aborted: "⚠️ 压缩已中止 ({error})。未删除任何消息 — 对话保持不变。运行 /compress 重试,运行 /reset 开始新会话,或检查你的 auxiliary.compression 模型配置。" aux_failed: "ℹ️ 配置的压缩模型 `{model}` 失败({error})。已使用主模型恢复 — 上下文完好 — 但您可能想检查 config.yaml 中的 `auxiliary.compression.model`。" + turnhold_deferred: "ℹ️ 上下文压缩已推迟 — 摘要仍在生成中。本回合将不压缩继续。" failed: "压缩失败:{error}" debug: