Удалите обходные пути анализа JSON для массивов ID плана подписки
Backend теперь возвращает правильные массивы вместо строк JSON. логика резервного копирования try/parse/catch больше не требуется в надстройке, пакете, и промоу...
Use List<String> instead of manual JSON strings for promotion plan/cycle IDs
Update KamoCRMPricingLoader to use List.of() for applicablePlanIds and applicableBillingCycles, matching the shared library's migration from JSON strings to ent...
Миграционная подписка JSON полей к юридическим отношениям @ManyToMany
Заменить строковые столбцы jsonb (совместимые PlanIds, включенные в InPlanIds, применимые PlanIds, соответствующие BillingCycles) с соответствующими JPA @ManyTo...
Перепроектируйте настройки вебинара от диалоговой навигации до навигации по подстраницам
Заменяет всплывающие диалоги и отдельные разделы аккордеона двухуровневыми Поток встроенной навигации: Уровень 1: чистая таблица типов вебинаров с кликом к нави...
Отдельные настройки поддержки от страницы поддержки уровня участника до выделенной страницы настроек
- Удалить вкладку «Настройки» со страницы поддержки, сохраняя только Билеты и Аналитика - Добавить подзаголовки в Analytics: Обзор и Статус и Время отклика (пер...
Конечные точки учетной записи используют поля прямого контакта, пользователю не требуется
POST / Клиенты теперь сохраняют имя, имя, адрес электронной почты, телефон, адрес напрямую На счету. PUT/customers/{uid} обновляет все прямые поля. Имя для пока...
Отдельный менеджер аккаунта от TeamMemberManager на странице /аккаунта
3 вкладки уровня страницы: Клиенты и клиенты, члены, члены команды. - Tab 0: новый компонент AccountManager - автономный, извлекает реальный счет данные из учет...
Обновление конечных точек клиента для использования учетной записи (Long uid), удаление конечных точек адреса
Клиент/группа @PathVariable изменилась с UUID на Long, чтобы соответствовать учетной записи. Адресные конечные точки удалены — адреса поступают от основного уча...
Замените RetailCustomer моделью клиента на основе учетной записи
Account.java уже был коммерческим клиентом, но был слишком мал. RetailCustomer продублировал эту концепцию. Это обязательство: - Расширяет Счет с коммерческими...
Стандартизируйте названия брендов на разных сайтах — Kamo → KamoCRM / KamoCRM Инк.
Юридические страницы (термины, конфиденциальность, GDPR, авторские права нижних колонок) теперь используются "KamoCRM Inc." для корпоративного лица. Ссылки на п...
Миграция всех компонентов трубопровода из commerceMarketApi в commerceApi
Обновить 10 файлов для импорта непосредственно из CommerceApi вместо удаленных Торговля МаркетАпи. Удалить совместимость shim и dead CommerceMarketManager Компо...
Переписать систему размещения HexHead с детерминированным двигателем компоновки
Заменяет багги системы предотвращения столкновений (spiralSearch, resolveCollisions, flyToHomeRow, док/групповые петли RAF с единственной детерминированной функ...
Strip SchemaCleanupRunner to only post-Hibernate fixups
Hibernate ddl-auto: update handles all table/column creation from JPA entities. Removed all redundant CREATE TABLE/ADD COLUMN statements that duplicated what Hi...
Split mailboxes tab into sub-tabs for primary, aliases, shared
Primary Mailboxes, Email Aliases, and Shared Mailboxes are now each under their own sub-tab within the Mailboxes settings page, matching the existing sub-tab pa...
Remove notes code, moved to KBService
Notes management (controller, service, encryption) has been relocated to KBService where it better aligns with knowledge and content management responsibilities...
Update internal entity ID types from number to string for UUID migration
Updates TypeScript types, hooks, and components to use string IDs for entities converted to UUID on the backend. User-facing entity IDs (User, Organization, Mem...
Update commerce product and market ID references from Long to UUID
Update calendar event and integration ID references from Long to UUID
Update version ID references from Long to UUID
Article IDs remain Long. Version IDs now use UUID.
Update KB media and version ID references from Long to UUID
Article IDs (KbArticle) remain Long. Version, media, pin, and review IDs now use UUID for improved CockroachDB write performance.
Update AI entity ID references from Long to UUID
Updates all controllers, services, and WebSocket handler to use UUID for AI entity IDs (providers, models, sessions, messages, folders, policies, MCP configs). ...
Update controllers and services for UUID entity IDs
Updates all controller @PathVariable and service method signatures to use UUID instead of Long for internal entity IDs (avatars, backgrounds, roles, departments...
Преобразование внутренних идентификаторов с Long/unique rowid() в UUID/gen random uuid()
Улучшает производительность записи CockroachDB с помощью случайно распределенных UUID для первичных ключей внутренней сущности вместо последовательных уникальны...
Заменить Add Source на Manage Contact Sources
- Rename AddSourceDialog → ManageSourceDialog с полным CRUD (список) существующие источники со статусом + удалить, плюс inline добавить форму - Переместить кноп...
Remove Client ID and Secret fields from RingCentral UI
These are platform-level credentials set once in the K8s secret. Customers only need to provide their JWT Key and main phone number.
Read RingCentral client-id/secret from platform config, not per-org DB
Client ID and Secret identify the Kamo app on RingCentral's platform — they are shared across all orgs. Inject them from Spring Boot properties (backed by the K...
Удалить клиентId/clientSecret из VoipProviderConfig
Это учетные данные на уровне платформы, общие для всех организаций. Только jwtKey и mainPhoneNumber являются per-org.
Extract resolveUserId helper, add ETag comment in KamoGroupwareProvider
Move AI to Enabled Apps section and remove settings slideout search/recents
Remove the search bar and recent items section from the settings slideout panel. Move Artificial Intelligence from main topics to the Enabled Apps section so it...
Упростите страницу приложений с помощью доступных / инкубирующих вкладок и просмотра только списков
Удалите баннер статистики, панель поиска, фильтры категорий, переключатель сетки / списка и диалог функций. Приложения теперь организованы в две вкладки и «Наст...
Extract useOperatorLabels hook shared between useFilters and Funnel
Integrate New Message composer into tool window system
Replace the standalone fullscreen/mini composer windowing with the shared tool window infrastructure (minimize, maximize, hexheads). MessageSystem.openNewMessag...
Remove theme query param — Docs derives it from WOPISrc
Docs now has its own getThemePath() logic ported from kamo-internal's Theme.tsx, so DocsService no longer needs to pass the theme URL.
Migrate JPA entities and repos to kamo-shared-library
Entities and repositories moved to **************** in the shared library. All imports updated to reference shared lib.
Compact pipeline tab layouts for more datagrid vertical space
- Remove page titles from all pipeline tab components (tab already serves as title) - Remove market ID/label chips from tab headers - Move toolbar (filters, sea...
Replace hardcoded organization/network labels with dynamic branch labels
Use **************** from useUserInfo hook so the /network and /network/create pages respect the branch label configured on ****************
Remove Notes tabs from all pipeline detail pages
Notes functionality is replaced by the Communications component which is auto-appended by PipelineRecordLayout. Removed notes-related state, handlers, types, an...
Разделите AgeReqType и добавьте маршруты регистрации членов / команд
Заменить AgeReqType на AgeReqTypeMember и AgeReqTypeTeamMember - Извлеките компонент RegisterFlow из page.tsx Добавить /член и /командные маршруты для отдельных...
Split ageReqType into member and team member fields
Update Organization type, PublicProvider, route schema, and BranchSetupManager with separate member/team member age requirement sections.
Return ageReqTypeMember and ageReqTypeTeamMember in org API response
Как вы видите судоходство?
Каждое из этих обновлений автоматически попадает в ваше рабочее пространство. Начните бесплатно и смотрите, как он растет неделю за неделей.