Skip to content

Releases: Yumash/BabelChat

BabelChat v3.1.1

25 Mar 09:28

Choose a tag to compare

Changed / Изменено / Cambiado

  • Code cleanup: removed 235 lines of dead pointer-chasing code from memory reader
  • Extracted DeduplicationBuffer into standalone class with safety cap (10k entries)
  • Replaced 40+ magic numbers with named constants across pipeline, overlay, memory reader
  • Unified 5 duplicate scan-accept blocks into _accept_marker() helper
  • Named regex groups in parser (m.group('text') instead of m.group(4))
  • Fixed race condition: itertools.count() for thread-safe message IDs
  • Narrowed exception handlers (RuntimeError | OSError instead of bare Exception)
  • Removed dead dict_text parameter, duplicate regex, unused variables
  • Made RE_WOW_LINK public (was private _RE_WOW_LINK imported cross-module with noqa)

Чистка кода: удалено 235 строк мёртвого pointer-chasing кода из memory reader
— Дедупликация вынесена в отдельный класс с лимитом 10k записей
— 40+ магических чисел заменены именованными константами
— 5 дублей scan-accept объединены в _accept_marker()
— Именованные группы в regex парсера
— Потокобезопасные ID через itertools.count()
— Сужены обработчики исключений, удалены мёртвые параметры и дубли

Limpieza de código: eliminadas 235 líneas de código muerto de pointer-chasing
— Deduplicación extraída en clase independiente con límite de 10k entradas
— 40+ números mágicos reemplazados con constantes nombradas
— 5 bloques duplicados scan-accept unificados en _accept_marker()
— Grupos regex nombrados en el parser
— IDs thread-safe via itertools.count()
— Manejadores de excepciones restringidos, parámetros y duplicados eliminados

BabelChat v3.1.0

21 Mar 11:43
e3e6ba5

Choose a tag to compare

Fixed / Исправлено / Corregido

  • CRITICAL: Race condition in dedup — _recent_messages accessed from multiple threads without lock, now protected by threading.Lock
  • CRITICAL: Overlay memory leak — _messages list and QTextEdit grew without bound over long sessions, now capped at 500/1500
  • Config torn reads — pipeline thread could see mix of old and new config values, now uses snapshot
  • Translator crash on network errors — only DeepLException was caught, added except Exception fallback
  • SQLite cache never cleaned up — cleanup() called on pipeline start to remove expired entries
  • Config load silently reset to defaults — now logs warning on corrupt/missing config
  • Dedup timestamps used time.time() (affected by NTP) — switched to time.monotonic()
  • Empty payload from addon buffer caused wasted work — now skipped early

КРИТИЧНО: Гонка в дедупликации — _recent_messages без блокировки из нескольких потоков, добавлен threading.Lock
КРИТИЧНО: Утечка памяти в оверлее — список сообщений и QTextEdit росли бесконечно, ограничены 500/1500
— Разрыв чтения конфига — pipeline мог видеть смесь старых и новых значений, теперь snapshot
— Краш переводчика при сетевых ошибках — ловился только DeepLException, добавлен общий обработчик
— Кэш SQLite никогда не чистился — cleanup() вызывается при старте
— Config молча сбрасывался при повреждении — теперь логирует предупреждение
— Dedup использовал time.time() (чувствителен к NTP) — заменён на time.monotonic()
— Пустой payload из буфера создавал лишнюю работу — пропускается

CRÍTICO: Condición de carrera en dedup — _recent_messages sin bloqueo desde múltiples hilos, protegido con threading.Lock
CRÍTICO: Fuga de memoria en overlay — lista de mensajes y QTextEdit crecían sin límite, limitados a 500/1500
— Lecturas rotas de config — pipeline podía ver mezcla de valores viejos y nuevos, ahora usa snapshot
— Crash del traductor por errores de red — solo se capturaba DeepLException, añadido fallback general
— Caché SQLite nunca se limpiaba — cleanup() se ejecuta al iniciar
— Config se reiniciaba silenciosamente — ahora registra advertencia
— Dedup usaba time.time() (afectado por NTP) — cambiado a time.monotonic()
— Payload vacío del buffer causaba trabajo innecesario — ahora se omite

Added / Добавлено / Añadido

  • Renamed project: ChatTranslatorHelper → BabelChat (new identity, no CurseForge conflict)
  • Slang dictionary category — 33 new terms: ez, copium, bricked, pumping, carry, wipe, lust, pug, soak, kite, gank, glad...
  • Slash command /babel (replaces /wt)
  • CurseForge packaging: .pkgmeta, addon README, BBCode description, separate BabelChat-Addon.zip in releases
  • DB migration from old ChatTranslatorHelper (automatic on first load)
  • Technical documentation (docs/tech/) and user guide (docs/user/)

— Переименование: ChatTranslatorHelper → BabelChat (новая идентичность, нет конфликта на CurseForge)
— Категория сленга — 33 новых термина: ez, copium, bricked, pumping, carry, wipe, lust, pug, soak, kite, gank, glad...
— Слеш-команда /babel (вместо /wt)
— Пакетирование CurseForge: .pkgmeta, README аддона, BBCode описание, отдельный BabelChat-Addon.zip
— Миграция БД из ChatTranslatorHelper (автоматически при первом запуске)
— Техническая документация (docs/tech/) и руководство пользователя (docs/user/)

— Renombrado: ChatTranslatorHelper → BabelChat (nueva identidad, sin conflicto en CurseForge)
— Categoría de jerga — 33 nuevos términos: ez, copium, bricked, pumping, carry, wipe, lust, pug, soak, kite, gank, glad...
— Comando /babel (reemplaza /wt)
— Empaquetado CurseForge: .pkgmeta, README del addon, descripción BBCode, BabelChat-Addon.zip separado
— Migración de BD desde ChatTranslatorHelper (automática al primer inicio)
— Documentación técnica (docs/tech/) y guía de usuario (docs/user/)

BabelChat v3.0.1-beta.1

20 Mar 09:43

Choose a tag to compare

Pre-release

Fixed / Исправлено / Corregido

  • CRITICAL: Race condition in dedup — _recent_messages accessed from multiple threads without lock, now protected by threading.Lock
  • CRITICAL: Overlay memory leak — _messages list and QTextEdit grew without bound over long sessions, now capped at 500/1500
  • Config torn reads — pipeline thread could see mix of old and new config values, now uses snapshot
  • Translator crash on network errors — only DeepLException was caught, added except Exception fallback
  • SQLite cache never cleaned up — cleanup() called on pipeline start to remove expired entries
  • Config load silently reset to defaults — now logs warning on corrupt/missing config
  • Dedup timestamps used time.time() (affected by NTP) — switched to time.monotonic()
  • Empty payload from addon buffer caused wasted work — now skipped early

КРИТИЧНО: Гонка в дедупликации — _recent_messages без блокировки из нескольких потоков, добавлен threading.Lock
КРИТИЧНО: Утечка памяти в оверлее — список сообщений и QTextEdit росли бесконечно, ограничены 500/1500
— Разрыв чтения конфига — pipeline мог видеть смесь старых и новых значений, теперь snapshot
— Краш переводчика при сетевых ошибках — ловился только DeepLException, добавлен общий обработчик
— Кэш SQLite никогда не чистился — cleanup() вызывается при старте
— Config молча сбрасывался при повреждении — теперь логирует предупреждение
— Dedup использовал time.time() (чувствителен к NTP) — заменён на time.monotonic()
— Пустой payload из буфера создавал лишнюю работу — пропускается

CRÍTICO: Condición de carrera en dedup — _recent_messages sin bloqueo desde múltiples hilos, protegido con threading.Lock
CRÍTICO: Fuga de memoria en overlay — lista de mensajes y QTextEdit crecían sin límite, limitados a 500/1500
— Lecturas rotas de config — pipeline podía ver mezcla de valores viejos y nuevos, ahora usa snapshot
— Crash del traductor por errores de red — solo se capturaba DeepLException, añadido fallback general
— Caché SQLite nunca se limpiaba — cleanup() se ejecuta al iniciar
— Config se reiniciaba silenciosamente — ahora registra advertencia
— Dedup usaba time.time() (afectado por NTP) — cambiado a time.monotonic()
— Payload vacío del buffer causaba trabajo innecesario — ahora se omite

Added / Добавлено / Añadido

  • Renamed project: ChatTranslatorHelper → BabelChat (new identity, no CurseForge conflict)
  • Slang dictionary category — 33 new terms: ez, copium, bricked, pumping, carry, wipe, lust, pug, soak, kite, gank, glad...
  • Slash command /babel (replaces /wt)
  • CurseForge packaging: .pkgmeta, addon README, BBCode description, separate BabelChat-Addon.zip in releases
  • DB migration from old ChatTranslatorHelper (automatic on first load)
  • Technical documentation (docs/tech/) and user guide (docs/user/)

— Переименование: ChatTranslatorHelper → BabelChat (новая идентичность, нет конфликта на CurseForge)
— Категория сленга — 33 новых термина: ez, copium, bricked, pumping, carry, wipe, lust, pug, soak, kite, gank, glad...
— Слеш-команда /babel (вместо /wt)
— Пакетирование CurseForge: .pkgmeta, README аддона, BBCode описание, отдельный BabelChat-Addon.zip
— Миграция БД из ChatTranslatorHelper (автоматически при первом запуске)
— Техническая документация (docs/tech/) и руководство пользователя (docs/user/)

— Renombrado: ChatTranslatorHelper → BabelChat (nueva identidad, sin conflicto en CurseForge)
— Categoría de jerga — 33 nuevos términos: ez, copium, bricked, pumping, carry, wipe, lust, pug, soak, kite, gank, glad...
— Comando /babel (reemplaza /wt)
— Empaquetado CurseForge: .pkgmeta, README del addon, descripción BBCode, BabelChat-Addon.zip separado
— Migración de BD desde ChatTranslatorHelper (automática al primer inicio)
— Documentación técnica (docs/tech/) y guía de usuario (docs/user/)

WoWTranslator v1.0.8

24 Feb 18:39

Choose a tag to compare

Fixed / Исправлено

  • Short phrases "hi", "sup", "go" now translated via phrasebook (were silently skipped due to MIN_TEXT_LENGTH and _SKIP_PHRASES filters)
  • Removed "go" from detector skip list — now handled as abbreviation before detection
  • Added "hi" → "привет", "sup" → "привет", "go" → "вперёд" as pre-detection abbreviations