KamoCRM

Live Change Loglog

Все функции, исправления и улучшения, размещенные как корабли. Ничто не сдерживается для запуска.

17,500
Общие изменения
5,986
Особенности
5,284
Исправления
30
Проекты
Фильтр по проекту
Все проекты17,500AIService251APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService576InitializerService329KBService151KlusterServices740MCPGatewayService251MediaService602RAGService79SecurityService1,847TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,349kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,657kamo-signer-monorepo56kamolos114
Фильтр по типу
Все типыBuild16CI523Chore774Docs3,254Feature5,986Fix5,284Other994Performance165Refactor278Revert23Style42Test160Upgrade1
April 17, 2026
FixKlusterServices

Reset document.title in rebrand() when React overwrites it

React re-applies RSC payload after hydration, resetting the title to "analytics". Add a title check inside the MutationObserver callback so it gets corrected ev...

Kamo·6mo ago
FixKlusterServices

Use TreeWalker to remove all "analytics" text nodes from rendered DOM

The workspace nav title "analytics" comes from JS bundles loaded after auth, rendered as a text node next to the logo SVG. Uses TreeWalker to find and clear all...

Kamo·6mo ago
FixKlusterServices

Add guarded MutationObserver for client-side rendered logo/text

Login page and dashboard content is rendered by Next.js JS bundles, not in the HTML body, so sub_filter can't reach it. Adds a script with a busy-flag-guarded M...

Kamo·6mo ago
FixKlusterServices

Redirect favicons at nginx level, fix RSC payload escaping

- Serve favicon via nginx 302 redirect instead of trying to rewrite HTML/RSC payload href strings (cleaner, always works) - Fix RSC title replacement with pro...

Kamo·6mo ago
FixKlusterServices

Use pure sub_filter replacements instead of MutationObserver

MutationObserver caused infinite loop (DOM change -> observer fires -> DOM change). Switch to direct nginx sub_filter string replacements targeting both static ...

Kamo·6mo ago
Fixkamo-marketing

Аналитика загрузки по умолчанию и включение поддомена www в разрешенные домены

Отслеживайте всех посетителей по умолчанию, поскольку аналитика без файлов cookie / GDPR Отключается только в том случае, если пользователь явно отрицает аналит...

Kamo·6mo ago
FixKlusterServices

Comprehensive analytics rebranding for login page and dashboard

- Replace title dynamically (handles "Login | analytics", "Dashboard | analytics" etc.) - Replace "analytics" h2 text on login page with Kamo logo image - Repla...

Kamo·6mo ago
FixKlusterServices

Use MutationObserver to rebrand analytics client-side rendered UI

analytics is a Next.js app that sets title/logo via JavaScript after initial HTML load. Replaces static sub_filter approach with injected script that uses Mutat...

Kamo·6mo ago
FixTranslateService

Перейти к следующему провайдеру, когда перевод равен исходному тексту

Бергамот возвращал исходный текст без изменений для однословного нава Элементы, акронимные фразы (API, CRM) и сложные слова (Change Log) При составлении отчета ...

Kamo·6mo ago
Fixkamo-marketing

Дельта-переводчик + провода всех жестко закодированных UI строк до i18n

Система перевода: Translate.ts теперь работает в режиме дельта - только ключи, которые отсутствуют или не доступны. все еще идентичные английскому языку отправл...

Kamo·6mo ago
Fixkamo-marketing

Подавить всплывающее окно Chrome для автоматического перевода на страницах с локальным коммутацией

Добавить translate="no" в <html> и <meta name="google" content="notranslate"> Chrome не предлагает переводить страницы, которые пользователь уже намеренно Переш...

Kamo·6mo ago
FixSecurityService

Bound translation concurrency to 3 threads to prevent DB pool exhaustion

Unbounded @Async (SimpleAsyncTaskExecutor) created 50 threads simultaneously when the retry scheduler fired, each opening a DB transaction and draining HikariCP...

Kamo·6mo ago
FixSecurityService

Three bugs preventing changelog translations from being saved

1. **************** was discarding events because handleWebhook() had no @Transactional — save + publishEvent() ran outside any transaction. Add @Transact...

Kamo·6mo ago
Fixkamo-shared-library

Query CommitLogs with LEFT JOIN, поэтому записи с нулевым переводом пойманы повторно

Старый запрос, выбранный из CommitLogTranslation - соединяйте журналы без Переводы были для него невидимы. Используйте левый вход из CommitLog Таким образом, HA...

Kamo·6mo ago
FixSecurityService

Apply word replacement at translation time, not ingestion

Original text is preserved in the DB so that adding a new rule and re-triggering translation is all that is needed to update existing records. Changes: - Chang...

Kamo·6mo ago
Fixkamo-internal

Обработка пустых ответов API и изящная деградация на вкладке выставления счетов

BillingApi Get/Put Helpers теперь безопасно обрабатывает пустые тела Вместо того, чтобы врезаться в res.json() с пустым входом - PlansBillingTab loadData оберты...

kamo·6mo ago
FixSecurityService

Check TeamMember.isOrganizationOwner flag for owner detection in my-networks endpoint

The previous check only looked at org.getOwner() (user_id_owner column) which can be null for existing orgs. The authoritative owner flag lives on the TeamMembe...

Kamo·6mo ago
Fixkamo-internal

Разрешить контекст орг/члена из *** сессии для выставления счетов прокси

Контроллеры BillingService требуют заголовков X-Org-Id и X-Member-Id. При вызове напрямую (в обход APIService) они не устанавливались. Теперь прокси-сервер Next...

kamo·6mo ago
Fixkamo-internal

Добавить Next.js API прокси-маршрут для /api/billing/*

Клиент платежного API звонил /api/billing/* в качестве относительного URL-адреса. Вместо шлюза APIService появился сервер Next.js. Добавлено универсальный прокс...

kamo·6mo ago
FixSecurityService

Include parent org in /org/domain response

The getOrganizationByDomain endpoint manually builds a response map but never included the parent organization reference. This prevented the frontend from knowi...

Kamo·6mo ago
Fixkamo-internal

Добавить parentId и parent в тип OrgProviderProps

В интерфейсе реквизита Организации отсутствовали поля parentId и parent, Это приводит к их отбрасыванию во время компиляции TypeScript, даже если Бэкэнд отправл...

kamo·6mo ago
FixKlusterServices

Purge incomplete model directories in init container

The service crashes on startup if it finds a directory in /models that has missing or partial model files. Add a sweep at init start that removes any directory ...

Kamo·6mo ago
FixKlusterServices

Remove GitHub LFS downloads, use only data.statmt.org models

GitHub raw URLs return LFS pointer files, not actual binaries. Drop enru/enar downloads entirely — LibreTranslate handles those locales. Only download the 4 pai...

Kamo·6mo ago
FixTranslateService

Narrow bergamot to es/fr/de/pl, restore bergamot-first order

GitHub LFS files can't be downloaded with plain curl (raw URL returns the pointer not the content). Removing enru/enar from bergamot scope; those locales fall t...

Kamo·6mo ago
FixTranslateService

Narrow BergamotProvider targets to 6 pairs with available models

pt, it, uk, tr, ro, id, vi have no bergamot model source — LibreTranslate handles them. bergamot now claims: es, fr, de, pl, ru, ar.

Kamo·6mo ago
FixKlusterServices

Scale bergamot to 0, update image to mozilla/translation-service

The Google Cloud Storage model download bucket (bergamot-models-sandbox) returns 404 for all files and the firefox-translations-models repo was archived Dec 202...

Kamo·6mo ago
FixTranslateService

Route all translations through LibreTranslate while bergamot is offline

BergamotProvider is moved to fallback position. LibreTranslate supports all 13 locales bergamot was handling **************** so this eliminates the flood of "C...

Kamo·6mo ago
Fixkamo-login

Прокси *** вызов через сервер входа для поддержки нескольких доменов

Заменяет прямой кросс-оригинал fetch на capcha.{domain}/api/challenge Прокси-сервер того же происхождения в /api/capcha/challenge. Предыдущий подход требовал де...

Kamo·6mo ago
FixKlusterServices

Шкала бергамота вернулась к 1 реплике — сбои в переводе, вызванные отсутствием капсулы

Bergamot был на 0 копий с его сервисом, все еще зарегистрированным. Поставщик маршрутов В TranslateService не было выключателя, поэтому каждый запрос на es/fr/d...

Kamo·6mo ago
FixSecurityService

Don't let null translated description hide the English original in changelog

The translation lookup for non-en locales was unconditionally overwriting description with **************** which is null when: - the translation was saved befo...

Kamo·6mo ago
FixBillingService

Resolve 23 compilation errors from controller-service signature mismatches

Controllers were built by a separate agent from services, causing method name and parameter type mismatches. Fixed all controllers to match actual service signa...

Kamo·6mo ago
FixInitializerService

Update kamo-shared-library version from 1.0.0 to 1.1.0

Needed to resolve the new billing entities in the commerce.billing package added to shared library 1.1.0.

Kamo·6mo ago
FixBillingService

Обновление камо-общей библиотеки версии с 1.0.0 до 1.1.0

Общая библиотека публикуется как 1.1.0, а не 1.0.0. Это вызвало Docker потерпит неудачу из-за «не найденного артефакта» Не устраняйте зависимость.

Kamo·6mo ago
FixBillingService

Добавьте флаг -U для создания шагов по решению общей библиотеки из местного репо

Зависимость: шаг Go-Offline сначала пытался Maven Central. неисправность кэширования для камо-общей библиотеки (которая является локальной), и что Отравили посл...

Kamo·6mo ago
April 16, 2026
Fixkamo-marketing

Уменьшите размер фрагмента перевода до 50 клавиш с экспоненциальным обратным выходом

150 ключей по-прежнему слишком велики для некоторых провайдеров (длинные значения абзаца в таблице) Конфиденциальность/термины/GDPR. Теперь: 50 ключей на кусок,...

Kamo·6mo ago
Fixkamo-marketing

Chunk-запросы на перевод, чтобы предотвратить тайм-ауты на больших полезных нагрузках

С более чем 1500 клавишами полезная нагрузка одного пакетного запроса вызывала соединение Тайм-ауты для некоторых переводчиков. Теперь делится на куски из 150 к...

Kamo·6mo ago

Как вы видите судоходство?

Все это приходит в ваше рабочее пространство самостоятельно. Начните с бесплатного плана и прочитайте эту страницу через месяц.

Начните бесплатно навсегдаПосмотреть цены