Restore NavPri panel labels and LeadHistory column headers
NavPri: salvage-keys grabbed href URLs as label values and swapped label/description pairs for Accounts, KB, and Notes nav panels. LeadHistoryPanel: MUI bgcolo...
Add COMP payment method option to subscription order wizard
COMP is a valid backend PaymentMethod enum value for complimentary platform-admin grants, but was missing from the frontend type and wizard UI — only INVOICE an...
Show platform domain context when no custom domain is set
Surface the active *.kamocrm.com hostname in the domain entry form so users can see their current platform domain instead of a blank entry screen. Also fixes ve...
Revert "chore(messages): add wave3 translation merge fragments (JSON)"
This reverts commit ****************
Revert "feat(setup-dns): show platform kamocrm domain on custom domain entry"
This reverts commit ****************
Show platform kamocrm domain on custom domain entry
Surface the active *.kamocrm.com hostname on the add-domain flow and detect custom domains by excluding kamocrm URLs instead of default-flag alone.
Checkpoint translations per chunk and per locale on main
Persist locale JSON after each API chunk so cancellation loses at most one batch. CI translates one locale per process and commits/pushes after each so finished...
Checkpoint translations per chunk and per locale on main
Persist locale JSON after each API chunk so cancellation loses at most one batch. CI translates one locale per process and commits/pushes after each so finished...
Disable Docker BuildKit cache so every pipeline run does a full rebuild
Sets no-cache on both image build steps so npm ci and npm run build always run, even when the source tree is unchanged.
Bust Docker BuildKit cache per commit so npm run build runs every push
Идентичные кассовые деревья (например, пустые сборы) повторно используемые кэшированные слои и Пропустили настоящий Next Building. Пропуск GIT COMMIT из рабочег...
Подавить нематчевый выход в захвате OLD PID, чтобы избежать прерывания отказа трубы
Разрешить владельцам и членам системы верхнего уровня управлять доменами любой организации
Sync members.email, когда основной почтовый ящик назначен, изменен или удален
Когда почтовый ящик был назначен участнику в организации KAMO MAIL, участники.email Он никогда не обновлялся, в результате чего EmailCredentialService не смог р...
Предотвращение дублирования корневых доменов и исправление дисплея первичного домена
ONE DOMAIN PER ORG неправильно исключил .kamocrm.com web-alias домены, позволяющие оргу накапливать несколько корневых доменов (и 10 Для каждого из них есть сво...
Сериализация членов безопасности и членов PUT призывает избегать конфликта CockroachDB
Две параллельные записи в один и тот же ряд «члена» вызвали сериализуемый Изоляционный конфликт — безопасность члена читает строку, в то время как члены конечна...
Кнопка «Управление доменом» для владельцев организаций верхнего уровня и членов системы
Уменьшить задержку создания орга и исправить каскадные сбои перевода
- OrganizationController: замените ensureTeamMembersForAllOrgs (полная организация) Сканирование стола) с помощью обеспеченияTeamMemberForOrg (единственная орга...
Widen commit log translations.title to TEXT для соответствия столбцу DB
Колонка была VARCHAR(512) как в аннотации, так и в DB. Перевод вставляется в отказ для длинных переведенных заголовков. Колонка DB является теперь STRING (приме...
Развернуть каталог и вычисление из конверта обратного ответа
getSubscriptionКаталог вернулся {каталог: {...}}, но был отлит напрямую Каталог, оставляющий каталог.планы неопределенными и план Шаг выбора пуст. Тот же вопрос...
Добавить @JsonProperty в *-префиксированные булевые поля DTO
Lombok генерирует isXxx() — геттеры для булевых полей, называемых isXxx. Джексон удаляет ведущее «есть» из is-getters и сериализует их Как «xxx», а не «isXxx», ...
Используйте ss вместо фюзеляжа, чтобы убить устаревший порт-форвард (фузер не на k0m1)
фюзеляж и lsof не установлены на хосте бегуна. Использование ss -tlnp Для извлечения PID-порта 18080 и его непосредственного уничтожения. Также Переключите навы...
Очистите устаревший порт-форвард, чтобы отмененная работа переводчика не блокировала следующий запуск
Bash не перенаправляет сигналы на фоновые процессы, поэтому порт пережил отмененные рабочие процессы и удерживал порт 18080; Блокировка всех последующих работ п...
Восстановите все сломанные значения заполнителей на страницах
Сценарий ключей спасения схватил CSS classNames, встроенные стили и JS Буквы шаблона вместо оригинального английского текста для 114 сообщений ключи, охватывающ...
Настройка кнопки Billing для владельцев организаций без учетной записи
Когда владелец организации открывает вкладку для выставления счетов и не ведет счета существуй, отобрази подсказку бутстрапа вместо общего "свяжитесь со своим С...
Восстановление ведет страницу заглавие героя и подзаголовок из истории git
«HeroTitle» был «Hero Title» (заместитель), «HeroSubtitle» — «flex gap-2». (Спасательные ключи случайно захватили соседнее название класса CSS). Правильные знач...
Добавьте конечную точку загрузки для уже существующих оргов
POST **************** триггеры одинаковые idempotent setup as the sub-org creation hook (англ.) (недоступная ссылка — история). .setupForSubOrgCreation) но може...
Включить кнопку «Завершить», опрашивая widget.getState() и переключаясь на auto=onload
Слушателю мероприятия Statechange не удалось надежно включить кнопку Finish После *** проверки. Две первопричины: 1.Логика дренажа читает виджет. состояние, ко...
Включите учетные записи для таргетинга подписки в список организаций
listForOrg теперь также возвращает учетные записи, подписки которых нацелены на запрашиваемая организация — не только счета, непосредственно принадлежащие ей. В...
Добавить statusWindow этикетки Namespace и исправить все настройки заполнителей
- Добавить **************** (50 клавиш), чтобы настройки Nav Sidebar показывает реальный текст вместо ключевых путей - Исправить ветвьTypesLabel ICU формат: \${...
Конверсии Wave 3, исправление резервного копирования и автоперевод CI
Замените все жестко закодированные английские строки на t() вызовы по волне 3 компоненты (чат, клуб, поддержка, заметки, трубопровод, провода, нав и т.д.) Объед...
Сопоставьте размер окон других инструментов + цветовую схему
Размер по умолчанию и размер minSize теперь 320x650, размер: ложный (совпадает с Softphone, Chat, Calculator, SMS, AI Chat) - Переключен с градиента темного сла...
Место никнейм inline после суффикса имени на строке юридического имени
Wire next-intl с файлом Member.language в качестве источника
Next-intl-интернационализация через kamo-internal без URL локальные префиксы. Активная локализация считывается из камо-локального печенья, которое Отражает пред...
Forward Range header so audio playback can scrub
Without this the VOIPService recording-streaming endpoint always returns the full file (Range header is dropped by buildForwardHeaders), which works for play-fr...
Drop language search filter on My Language step
The supported language list is short enough to scan visually; the search input added complexity without user value.
Rewrite /etc/odbc.ini to point at $MARIADB_HOST on every boot
The escomputers/freepbx:17 image bakes /etc/odbc.ini with Server=db (the docker-compose link target). On this Kubernetes deployment MariaDB lives at \$MARIADB_H...
Fall back to imaging recordings for call history + voicemails
FreePBX 17 doesn't expose voicemail messages over REST or GraphQL on this install (the GraphQL voiceMail type returns mailbox config, not messages, and /admin/a...
Paginated Recording lookup by (instance, extension, isVm)
Used by the softphone tabs as the canonical source of truth for call recordings and voicemails when the upstream provider can't list them — e.g. FreePBX 17 has ...
Resolve member→extension before VM/CDR provider lookup
CallController was passing memberId where FreePBX (and other PBX-style providers) expect an extension number — voicemail listing returned empty because no PBX e...
Drop dead masterAccountHolder/isMaster UI, свежие устаревшие комментарии
Схема аккаунта больше не несет MasterAccountHolder или per-member isMaster Флаги — они были удалены вместе с Главным счетом Рефактор. AccountViewClient прекраща...
Автоматическое назначение первого места, Бесплатно в качестве пола, более широкая форма признания недействительным
BillingSetupService активирует первый слот с открытой лицензией при посеве суборг подписки (и то же для промо-биллинг-владельца) — В противном случае новый влад...
Бросьте устаревший комментарий эпохи BillingGroup + неиспользованный запрос SubscriptionMember
Удалите оставшийся блок doc в AppliedModelEnforcementService Долгожданная концепция BillingGroup и ее удаление **************** после консолидации *************...
Как вы видите судоходство?
Каждое из этих обновлений автоматически попадает в ваше рабочее пространство. Начните бесплатно и смотрите, как он растет неделю за неделей.