Журнал изменений
Что нового.
Каждое усовершенствование платформы, как только она появится.
· kamo-shared-library
Проверка предприятия в POSService
- CreateRetailOrder: нулевая проверка по запросу - createLineItem: null check, number > 0, unitPrice >= 0 validation
· kamo-internal
Enterprise-grade POS UI and API
- posApi: POSApiError class, fetchWithError, structured error handling - useToast + POSToast: centralized snackbar for success/error feedback - posUtils: formatCurrency, formatDate, toCSV, downloadBlob - PipelineOrdersTab: search, sort, pagination, CSV export, skeleton loading, toast notifications, empty state CTA, confirm empty order - PipelineApplicationsTab: search, CSV export, skeleton, toast - PipelineProductsTab: search, delete confirmation dialog, skeleton, toast - PipelineInventoryTab: toast notifications - PipelineDashboardTab: skeleton loading, refresh, export summary, toast - PipelinePOSDomainConfigTab: toast on save
· kamo-internal
POS domain config, retail order line items, dynamic pipeline tabs
- Add getPOSConfig/updatePOSConfig to posApi, posDomainLabels utility - Extend createOrder with lineItems, add getOrder, RetailOrderLineItem type - PipelineOrdersTab: product-based order creation, line item selector, order detail drawer - Pipeline: dynamic tabs from POS config, domain-specific titles (Orders, Applications) - PipelineDashboardTab: metrics filtered by enabled domains - Settings POS: Domains tab with enable/disable toggles for RETAIL, MORTGAGE, RENTAL, VENDOR, SUBSCRIPTION - Empty state when no domains enabled
· SecurityService
Add POS controllers for retail products, inventory, and orders
- RetailProductController: CRUD for products - RetailInventoryController: inventory stock management - POSController: orders and mortgage applications
· kamo-shared-library
Добавить POS / объекты домена инвентаризации, DTO, репо и услуги
- Добавьте POS-бобы (розничная торговля, аренда, ипотека, подписка, продавец) - Добавить RetailProduct, RetailInventoryStock, RetailOrder, MortgageApp DTO - Добавить RetailProductService, RetailInventoryStockService, POSService - Добавить репозитории для розничной торговли, ипотеки, аренды, подписки, поставщика Обновление EmbRecordState
· kamo-shared-library
Населить поставщика Продукция отношения при извлечении лидов
Обновление getLeadsByOrganizationId() для заполнения @Transient vendorProduct поле для каждого лида, имеющего вендораProductId. Это гарантирует поставщику Данные о продукте доступны для картирования LeadDTO.
· kamo-internal
Improve lead grid with base30 IDs, raven icon, All Markets tab, and Market column
- Add toBase30() function for consistent ID representation across LeadManager and DocManager - Fix Grim status icon in tabs to use raven.ico (matching the datagrid status renderer) - Add "All Markets" tab as first option in market tabs to show leads from all markets - Add Market column between Street and Status columns in datagrid - Update currentMarket logic to support tab 0 as "All Markets" (no filter)
· kamo-shared-library
Добавить статус, субстатус, источник и дату Созданные поля
- Добавлен статус, субстатус, источник, датаСозданные и активные поля для ведущей организации - Обновленный LeadDTO с совместимыми с интерфейсом полями (статус, субстатус, источник, CreatedAt, PrimaryContact, продавец, продукт, агент - Добавлено PrimaryContactDTO для совместимости с интерфейсом - Добавлен @PrePersist hook для установки значений по умолчанию для новых лидов Это фиксирует сетку данных страницы лидов, показывающую пустые столбцы для контакта, статуса. субстатус, поставщик, продукт, источник, агент, созданные и назначенные поля.
· kamo-shared-library
Задание Refactor Lead от String до ссылки на сотрудника
- Изменил Lead.assignedUser (String) на Lead.assignedEmployee (Employee) - Добавлена компания LeadAssignment для отслеживания истории присвоений - Добавлен LeadAssignmentType enum с различными типами назначений - Добавлена компания LeadCredit для отслеживания кредитов сотрудников - Добавлено подразделение LeadAllotment для управления выделениями свинца сотрудникам - Добавлены соответствующие репозитории и услуги Обновленный LeadService для автоматической записи заданий Обновленный LeadDTO и запрос DTO для новой структуры Добавлены методы MemberService для поиска сотрудников по организации Поля даты базы данных теперь используют по умолчанию уровня DB для согласованности
· KlusterServices
Add HTTP to HTTPS redirect middleware and IngressRoute
- Create redirect-to-https middleware for permanent redirects - Add catch-all IngressRoute on web entrypoint to redirect all kamocrm.com domains to HTTPS - Fixes 404 errors when users access sites via HTTP instead of HTTPS
· KlusterServices
Add automatic *** secret creation
- Create *** secret on both k1m1 and k2m1 - Secret contains MINIO_CURRENT_HOST pointing to k0m1 MinIO instance (http://10.8.0.1:9000) - Fixes kamowssecurity-deployment CreateContainerConfigError
· kamo-internal
Reorganize form layout for better field grouping
· kamo-internal
Reposition Add Lead tab and improve market tab UX
· kamo-internal
Add live tab label updates based on first/last name input
· kamo-internal
Convert Add Lead button to tab and implement data persistence
· kamo-internal
Overhaul lead creation UI with pane-based interface
· kamo-internal
Добавить кнопку Lead для фильтрации строки и конвертировать в всплывающий диалог
· kamo-internal
Reorganize lead creation form into elegant two-column layout
- Split form fields into two columns: contact/personal info (left) and lead/business info (right) - Add visual separation with semi-transparent backgrounds, borders, and shadows - Improve form organization and visual hierarchy - Maintain responsive design for mobile devices
· kamo-marketing
Включите Turbopack для более быстрых сборок (Next.js 16)
· kamo-register
Включите Turbopack для более быстрых сборок (Next.js 16)
· kamo-login
Включите Turbopack для более быстрых сборок (Next.js 16)
· kamo-internal
Включите Turbopack для более быстрых сборок (Next.js 16)
· kamo-internal
Редизайн формы создания лидов с полными полями имен, надлежащим выпадающим размером, полем страны и улучшенной компоновкой телефона
· kamo-internal
Улучшить форму создания лидов с помощью современного пользовательского интерфейса, проверки, обработки ошибок и улучшенного UX
· kamo-shared-library
Добавить поддержку расширения телефона в CreateLeadRequest, UpdateLeadRequest и LeadDTO
· kamo-internal
Добавить LeadProspectType, поставщика/продукта, BestContact Время, расширение телефона/isText и области жилищной ипотеки, чтобы привести форму создания
· kamo-shared-library
Добавить поле SalesSubType в LeadMarketDTO для обнаружения ипотечного поля
Добавлено поле SaleSubType, чтобы различать родительский SaleType и подтипы Когда у SaleType есть родитель (например, RESIDENTIAL MORTGAGE), SalesType становится родителем (SERVICE), а SalesSubType становится ребенком (RESIDENTIAL MORTGAGE). Это позволяет фронтенду правильно определять, когда показывать ипотечные поля от LeadClaimMortgage. ява
· kamo-internal
Add missing Next.js API routes for leads endpoints
- Added /api/security/leads route for GET (all leads) and POST (create lead) - Added /api/security/leads/[id] route for GET, PUT, DELETE operations - Added **************** route for market configuration - Fixes 'Unknown error' when accessing /leads page by properly proxying requests to backend
· SecurityService
Add backend validation for required fields in lead imports
- Add validateRequiredFields method to check required fields before import - Validate email, firstName, and lastName are present - Validate mortgage-specific fields (loanAmount) when market is mortgage type - Skip rows with missing required fields and add to error list - Use LeadMarketService to determine market type for validation
· kamo-internal
Add validation for required fields in lead imports
- Mark email, firstName, and lastName as required fields in leadFields.ts - Add validation in handleStartImport to check all required fields are mapped - Add validation in ReviewStep to show errors for missing required field mappings - Display user-friendly error messages when required fields are missing

Ваша вселенная ждет.
Начните бесплатно через несколько минут. Добавляйте продукты, когда будете готовы — без миграции, без новых логинов.
Бесплатно навсегда — не требуется кредитная карта