Remover soluções de análise JSON para arrays ID do plano de assinatura
A infra- estrutura agora retorna arrays apropriados ao invés de strings JSON, então o já não é necessária a lógica de recurso try/parse/catchback no pacote adic...
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...
Migrar os campos da subscrição JSON para relações @ManyToMany baseadas na entidade
Substituir as colunas de texto jsonb (planIds compatíveis, incluídosInPlanIds, aplicáveisPlanIds, AplicávelBillingCycles) com JPA adequado @ManyToManyJunta tabe...
Reprojetar as configurações do webinar da navegação baseada em diálogo para a sub- página
Substitui as janelas de contexto e separa as secções de acordeão por um nível de dois Fluxo de navegação em linha: - Nível 1: tabela tipos webinar limpo com cli...
Separe as configurações de suporte da página de suporte de nível de membro em página de configurações dedicadas
- Remover a aba Configurações da página /suporte, mantendo apenas tickets e análises - Adicionar sub-tabs ao Analytics: Visão geral e Status & Tempos de Respost...
Endpoints de conta usam campos de contato direto, sem necessidade do usuário
POST /clientes agora salva primeiroNome, último nome, e-mail, telefone, endereço diretamente Contabilística. PUT /clientes/{uid} atualiza todos os campos direto...
Separar ContaManager do TeamMemberManager na página /conta
3 páginas: Clientes e Clientes, Membros, Membros da Equipe. - Tab 0: novo componente ContaManager — standalone, obtém conta real dados das contasApi, tabela ag-...
Atualizar os parâmetros do cliente para usar Conta (Uid Long), remover os parâmetros do endereço
Cliente/grupo @PathVariable mudou de UUID para Longo para corresponder à entidade Conta. Endpoints de endereço removidos – os endereços vêm do membro primário d...
Substituir VarejoCliente com modelo de cliente baseado em conta
Account.java já era a entidade do cliente do comércio, mas era muito mínimo. VarejoO cliente duplicou este conceito. Este commit: - Melhora a Conta com áreas d...
Padronize o nome da marca em todo o site — Kamo → KamoCRM / KamoCRM Inc.
Páginas legais (termos, privacidade, RGPD, direitos autorais de rodapé) agora usam "KamoCRM Inc." para a entidade corporativa. Referência do produto/marca atrav...
Migrar todos os componentes do gasoduto do comércioMarketApi ao comércioApi
Atualizar 10 arquivos para importar diretamente do comércioApi em vez do excluído comércioMarketApi. Remover o shim compatibilidade e morto CommerceMarketManage...
Reescrever HexHead sistema de colocação com motor de layout determinístico
Substitui o sistema buggy de evitação de colisão (espiralSearch, solutionCollisions, flyToHomeRow, dock/group RAF loops) com uma única função determinística ref...
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...
Converter IDs de entidade interna de Long/unique rowid() para UUID/gen random uuid()
Melhora o desempenho de escrita BarataDB usando UUIDs distribuídos aleatoriamente para chaves primárias de entidade interna em vez de valores sequenciais unique...
Substituir a opção Adicionar Código-fonte pela janela Gerenciar as Fontes de Contacto
- Renomear AddSourceDialog → GerenciarFontesDialog com CRUD completo (lista fontes existentes com status + remover, mais inline add form) - Mover o botão "Geren...
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...
Remover clienteId/clientSecret do VoipProviderConfig
Estas são credenciais de nível de plataforma compartilhadas em todas as orgs. Apenas jwtKey e mainPhoneNumber são 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...
Simplifique a página de aplicativos com abas Disponíveis/Incubadoras e somente de lista
Remover banner de estatísticas, barra de pesquisa, filtros de categoria, comutador de grade/lista e diálogo de recursos. Apps são agora organizados em duas abas...
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...
Dividir a idadeReqType e adicionar as rotas de registro de membro/equipe
- Substituir idadeReqType por idadeReqTypeMembro e idadeReqTypeTeamMembro - Extrair o componente RegisterFlow da page.tsx - Adicionar /membro e / equipa rotas p...
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
Como o que vês no transporte?
Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.