Distinguish actively-translating vs queued messages
The streaming queue was already strictly sequential (one fetch at a time), but every queued message rendered "Translating…" because they all shared the same pen...
Show error icon when a message fails to translate
When the per-message translate call returns translated:false, errors out, or times out, the chat bubble now renders an AlertTriangle icon in red with tooltip "F...
Show error icon when a message fails to translate
When the per-message translate call returns translated:false, errors out, or times out, the chat bubble now renders a small red ErrorOutline icon in place of th...
Raise client read timeout to 120s for long messages
LibreTranslate runs CPU-only argos models — a paragraph-length chat message takes 20-30s to translate, and longer ones can push past 60s. The 8-second read time...
Persist language change and show current language in tooltip
The members endpoint accepts PUT not PATCH, so the language picker's PATCH was silently ignored — Member.language never actually updated, which is why refreshin...
Строка запросов ****************
Прокси Next.js отбрасывал строку запроса при пересылке на MediaService, что означало историю чата ?lang=<locale> парам Безмолвно заблудился. Без этого парама бэ...
Владелец монетного двора OTK с предоставлением всех прав без DB round-trip
После ************* назначает Администратора Роль и пишет Member rights applied, блок OTK-minting был Перечитать эти строки через **************** Внутри того ж...
Stream translations newest-first for visitor history
When the visitor lands on a non-English locale and the support chat has existing English messages, every bubble flagged needsTranslation by the backend now show...
Stream message translations newest-first on language switch
When the user picks a new language (or opens an existing chat in a language different from the messages' source), every bubble that needs translation immediatel...
Cache-only bulk translate, FE handles fills
Bulk message-fetch endpoints now return only translations that are already cached and tag missing rows with needsTranslation:true. The chat UIs (kamo-internal C...
Revert "fix(settings): show Plans & Billing tab regardless of root-org status"
This reverts commit ****************
Auto-translate visitor and agent messages
Live agent replies arriving in a language other than the visitor's URL locale now show a "Translating…" bubble while the TranslateService call resolves, then sw...
Translate chat messages into the viewer's language
Adds a "My Language" flag picker in NavTop (left of the email tool, separated by a vertical rule). Selecting a language writes back to Member.language and syncs...
Proxy support-message translate endpoint
Adds a passthrough route for the new MediaService endpoint that translates a single support-chat message into the visitor's URL locale. The marketing-side chat ...
On-demand translation for chat and support messages
Captures the source language for every chat / support message and adds an optional ?lang=XX param on the message-fetch endpoints plus a per-message POST /transl...
Translation cache for chat messages
Adds the MediaObjMsgTranslation entity (one row per (message, language) pair) and an optional sourceLanguageId column on MediaObjMsg so chat messages can be tra...
Show Plans & Billing tab regardless of root-org status
The !isRootOrg gate hid the tab on root orgs and blocked org owners and self-viewers from reaching their billing page from "My Account". The PlansBillingTab its...
Translate hardcoded UI strings
setup/dns (6 files): page, AliasStatusTable, DnsProgressView, DnsProvisioningPanel, DomainEntryForm, ManualDnsGuide. settings (10 files): diagnostics, essential...
Drop in place — jump every member, no softPush on release
The drift on release was softPushCluster firing on the user-drop path. A mega-cluster's bounds extend in all directions from the anchor, so the PADDING-margin /...
Translate hardcoded UI strings
account/view: 40 strings reused from existing namespace (no new keys). kb (13 files): translate article editor, viewer, reviews, resources, versions, navigation...
Перевод оставшихся жестких строк UI
Страница задач: Сохранить изменения, закрыть, добавить элемент задачи в поток автоматизации Отредактируйте название инструмента. Страница примечаний: Dismiss, L...
Replace hardcoded English with t() across leads pages
Translate remaining hardcoded UI strings in allotments, new, reports, and view/[id] to use next-intl. Add scripts/i18n-audit.py to detect remaining hardcoded st...
Drop firmly in place — tail-only throw + jump() to clear velocity
The previous fix still let heads drift on release because: 1. Throw detection averaged velocity across the full 110ms window. A user who flicked then decele...
Drop in place after a paused drag instead of drifting
Two cooperating bugs caused dropped heads (single or post-gather) to fly off to seemingly random positions when the user dragged fast, slowed to a stop, then re...
Добавить Personal + Chat/Docs/Notes/KB/HRS разделы
Индекс /settings не показывает разделы для не-администраторов, потому что каждый существующий раздел был закрыт справа от администратора (CONFIGURE SYSTEM, MANA...
Вращение открытия цели на основе соотношения сторон обзора
Рамка цели теперь наклонена на Atan2 (viewportH, viewportW), так что она открыта. правая сторона направлена к диагонали обзорного поля — для мониторов 16:9 точк...
Бросайте-удалить гол со счетом / пропущенные торжества
Рамка 132×132 цели появляется в верхнем левом углу, когда голова находится в соло-драг или активный бросок, смещение 56px из угла, чтобы головы могли Пропустить...
Бросьте физику с столкновениями с бассейном и следом кометы
Промахивая головой мимо порога броска, запускает его через видопорт в соответствии с эксплицитной физикой (трение, отскок ребра, упругость головы против головы)...
Отмена унаследованной скорости сопротивления при освобождении
Обработчик сопротивления обновляет значение движения головы с помощью быстрого mx.set(nx) Звонки, которые фреймер-движение использует для вычисления скорости. К...
Crispen hexagon outline at all sizes/states
Four sources of softness eliminated: - **************** on the SVG - **************** on the visible outline so the stroke width does not stretch (and blur) u...
Откажитесь, если сеанс orgID не соответствует хост-оргу
автологин принял любой *** и отчеканил OTK, указав на него, Независимо от того, к какой организации относится внутренний хост.* Несвежий или кросс-орг *** печен...
Используйте OTK, отчеканенный сервером, для перехода в новую организацию
Предпочитаете otk, возвращенный POST/api/security/org, по сравнению с последующей версией. /api/security/enter-as round-trip. Сервер теперь чеканит нового владе...
Владелец монетного двора ***+OTK on org
После создания OrganizationOwner отчеканить свежий *** привязанный к новому владельцу TeamMember и верните OTK вместе с id/members. Без этого, Создатель остаетс...
Расстояние между кластерами + правила группировки одинакового размера
Кластерные ячейки и гекс-соседство теперь получены из крупнейшего кластера. член вместо глобального масштаба, а последующие MV включают в себя центр-выравнивани...
Скрыть попувер при приглашении на встречу открывает диалог
Потоп оставался открытым под диалогом встречи, потому что Диалог был условно рендеринг внутри целевых ворот. Захватите приглашенного в момент щелчка, отклоните ...
Перезапись системы перетаскивания/кластера с помощью магнитного захвата и сбора жестов
Заменить монолитную HexHeadGroup (847 линий) модульным кластерным двигателем Приложение/компоненты/чат/хексхеды/. Источник истины: каждая голова живет в кластер...
Robust English fallback for missing and empty locale translations
- mergeWithFallback now treats empty-string locale values as untranslated, falling back to the English value instead of rendering nothing - Replace bare NextI...
Update orders page account uid type from number to string
AccountSummary.uid is now a string (Long precision fix). Also remove parseInt comparison and type="number" from the manual account ID field.
Удалить @PostConstruct COMP — исправить существующие заказы прямо в DB
утвердить заказ() уже обрабатывает новые заказы COMP. Единовременный разрыв данных для Существующие заказы корректируются непосредственно в базе данных.
Удалить конечную точку ручного резервирования — самоисцеление стартапа
Заказы COMP теперь автоматически предоставляются при запуске SecurityService через SubscriptionService @PostConstruct. Ручная конечная точка больше не нужна.
Самоисцеляющиеся непредусмотренные заказы COMP на запуск
На @PostConstruct отсканируйте все заказы APPROVED COMP и предоставьте все, что Отсутствие подписки на аккаунт. Idempotent — find-or-create — безопасный способ ...
Используйте CommerceMarket.getId() вместо getUid() в положении
CommerceMarket использует идентификатор @Id UUID (не uid), поэтому Lombok генерирует getId ().
Переместите статус доступности вниз на левую сторону перед моим бизнесом
Переносит статусную таблетку из правой строки действия в левую часть приветствия, помещая ее между разделителем приветствия и Моим бизнесом с разделителем. Удал...
Добавить targetOrganizationId в типы SubscriptionOrder и создать Subscription Приказ
Добавить точку доступа для активации подписки COMP из утвержденного заказа
POST **************** звонки ****************, а затем аннулирует права на целевую организацию через Службу прав.
COMP заказывает одобрение автопредложений АккаунтПодписка и присваивает лицензию
- Заказ подписки: добавить целевую организацию (отменяемую ФК к оргам) ************* Добавить целевую организацию - AccountRepository: добавьте findByPrimaryMem...
CustomerMemberId - это строка идентификатора участника, разрешающая учетные записи в PrimaryMemberId
- posApi: AccountSummary uid string, add primaryMemberId; **************** Ссылка на сайт: ******************* клиентская строка - SubscriptionOrderWizard Отпра...
Сериализация CustomerMemberId как струна для сохранения Длинной точности
- AccountSummaryDTO: аннотируйте uid с ******************* и добавьте поле струн PrimaryMemberId, заполненное из Primary member id - CreateSubscriptionOrderRequ...
Замените click-to-open на action popover + size control
Щелкнув шестнадцатеричной головой, теперь открывается полированный стеклянно-морфный попувер с Контекстные действия вместо немедленного открытия окна инструмент...
Добавить таблицу MEMBER UI PREFERENCES (порядок 60)
Idempotent CREATE для общего резервного копирования UI-предпочтения на каждого участника селектор размера поползновения и будущие настройки пользовательского ин...
Как вы видите судоходство?
Каждое из этих обновлений автоматически попадает в ваше рабочее пространство. Начните бесплатно и смотрите, как он растет неделю за неделей.