Use o Live AvailabilityContext para atualizações de status em tempo real
Adicionar chaves de tradução de status de disponibilidade, remover statusIndisponível
Mostrar o estado de disponibilidade de 4 estados com cores por estado
Atualizar o tipo de membro para usar a disponibilidade Estado enum string
Adicionar usoDisponibilidadeWebSocket gancho e DisponibilidadeContexto
Auto-set member disponibilidade DISPONÍVEL no login, AWAY no logout
Atualizar os parâmetros de disponibilidade para usar a disponibilidade de membros Enumidade do estado
Adicionar AvailabilityPublisher para atualizações de status de membro
Substituir é disponível booleano com funcionalidade de membro Enumidade do estado
Enrich upload manifests with Asterisk CDR caller-ID data
Adds optional MySQL CDR enrichment so the softphone history tab can display who called (or was called). When ASTERISK_CDR_DSN is configured as a Forgejo repo se...
Parse CDR caller-ID fields from upload manifest
When kamo-asterisk-support includes a cdr{} section in the upload manifest (populated when ASTERISK_CDR_DSN is configured), ConversionService extracts callerIdN...
Add CDR caller-ID columns to recordings table (order 40)
Adds caller_id_num, caller_id_name, call_direction, and call_result columns to the recordings table so the softphone history tab can display who called without ...
Add CDR caller-ID fields to Recording entity
Adds callerIdNum, callerIdName, callDirection, and callResult columns to the Recording entity so kamo-asterisk-support can store Asterisk CDR metadata alongside...
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 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.
Mostrar o botão Gerenciar o Domínio para proprietários de orgs de topo e membros do sistema
Mostrar o botão Configurar a Conta para os proprietários de orgs sem conta
Quando um proprietário de org abre a aba de faturamento de planos e nenhuma conta de faturamento existe, exibir um prompt bootstrap em vez do genérico "contate ...
Adicionar ponto final inicial para orgs pré-existentes
* ******************************* dispara o mesmo configuração idempotent como o gancho de criação sub-org (BillingSetupService .setupForSubOrgCreation) mas pod...
Onda 3 conversões, correção de retrocesso e auto-traduzir CI
- Substituir todas as strings em inglês codificadas com t() chamadas através da onda 3 componentes (chat, clubhouse, suporte, notas, pipeline, leads, nav, etc.)...
Colocar o apelido em linha após o sufixo do nome na linha do nome legal
Fio next-intl com member.language como locale source
Adiciona internacionalização baseada no próximo intl através do kamo-internal sem URL prefixos locais. Ativo locale é lido do cookie kamo-locale, que espelha a ...
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 ...
Auto-fornecimento assento KamoCRM na criação sub-org; promover-billing-proprietário endpoint
DireitoService walks SubscriptionMember (not AccountMember) to comput Direitos dos membros — a união de características entre os subs activos do licenciado, mai...
Adicionar idioma de membro + colunas padrão moeda
Adiciona duas colunas NÃO NULL à tabela de membros que suporta o novo Membro da Comissão Europeia (VARCAR DEFAULT «ENGLISH») e membro da Comissão (VARCHAR(10) D...
Adicionar passo de idioma, país selecionador de fuso horário, rolagem + *** correções
- Novo passo 'My Language' para o feiticeiro, espelhando o país layout do passo. Lista os 22 locais suportados pelo marketing como azulejos de bandeira com nome...
Adicionar idioma + moeda padrão ao cartão Regional Settings
O cartão de configuração regional do perfil de membros agora expõe linguagem editável (22 locais apoiados espelhando o site de marketing) e Moeda Padrão (Procur...
Persista idioma membro / fuso horário / moeda na inscrição
O endpoint /register agora aceita idioma, fuso horário e moeda padrão Ao lado do campo do país existente. RegistoServiço define país e fuso horário no novo usuá...
Map external customer address blocks into AccountAddress on pull
Add AdapterAddressMapper helper that converts a JSON address node from any provider into an EmbAddress and attaches it to an Account as a typed AccountAddress (...
/conta/nova cópia-de-lead UX, campos de nome completo, telefones duplos, endereço; gerenciamento de endereço de nível de conta
Interface: - /account/new: por seção "Copiar de Lead" botões + cabeçalho "Copiar tudo de Lead" botão (quando leadId param) - Secção de nome: prefixo, primeiro, ...
Suporte aninhado nome/email/foneNúmeros + endpoints de gerenciamento de endereços
- AccountController aceita nome aninhado/email/números de telefone JSON no POST/PUT - O endereço inicial no POST cria Shipping (e BILLING quando usadoAsBillingT...
Histórico de nível de produção + guias de correio de voz com ferramenta de media-player
Página de histórico (SoftphoneHistoryTab.tsx): - Rolo infinito via IntersectionObserver dentro do recipiente de rolagem do painel - Chips de filtro: Tudo / Entr...
Corredor de migração para as colunas de procura do provedor de gravação + colunas de arquivo VM
Adiciona RECORDINGS.provider instance id (UUID) e provider external id (VARCHAR(64)) mais o índice composto idx gravings provider lookup usado pela aba de histó...
Fornecedor PersistInstânciaId + fornecedorEstrangeiro na gravação na ingestão
Threads asterisco-suporte X-Phone-Server-Id e X-Asterisco-Unique-Id (já em UnprocessedRecording) para os novos campos RecordingMetadata então call/voicemail lin...
Adicione **************** com suporte HTTP Range
Endpoint de streaming genérico para recursos de imagem de áudio/vídeo, usado pela ferramenta kamo-internal MediaPlayer. Reutiliza a autorização do ImageService ...
Reprodução de gravação, arquivo de correio de voz, voicemail paginado, enriquecimento de histórico
- Nova gravação Controlador com procura em massa, áudio range-streamed para faixas mestre + por canal, e metadados para a janela de ferramenta media-player - Ca...
Teclas de pesquisa do provedor na gravação, arquivo de correio de voz, streaming de gama MinIO
- Gravação: adicionar provedorInstanceId + provedor ExternalId para juntar provedor call-history / voicemail linhas de volta aos ativos de imagem - PhoneVoicema...
Adicionar guia Histórico — linha do tempo de auditoria paginada com pesquisa e filtros
- LeadHistoryPanel: barra de ferramentas de filtro pegajoso com pesquisa desbotada, ************* filtros, tabela MUI com paginação, chips de eventos codificado...
Adicionar parâmetros de GET /{id}/história e /{id}/história/filtros
Endpoint paginado, filtrado, pesquisável com carga de ator em lote (sem N+1). O endpoint dos filtros retorna campos usados distintos, todos os campos de registr...
Adicionar registro de auditoria do lead-history — entidade, registro, serviço, DTO, ganchos LeadService
- entidade LeadHistórico (UUID PK, simples FKs Long - sem restrições FK para permitir a eliminação/conversão de chumbo) - LeadHistoryEventType enum com etiqueta...
Adicionar IU de atribuição de conta principal, sistema de moeda, páginas de contas novas, campo de configurações de moeda
Adicionar endpoints de atribuição da conta principal, atualizar o AccountController para o tipo de moeda
Rótulo de tipo de membro dinâmico no título da página Minha Conta
O título agora lê "Minha Conta {Membro da Equipe}" usando o org-configurado etiquetas de comportamento, alternando automaticamente uma vez que o tipo do membro ...
Mover o botão Criar Documento para a barra de ferramentas DocManager
O botão só estava disponível no /doc/manager através do prop das ações. Moveu toda a lógica (estado, manipulador, DOC TYPES, menu) para DocManager assim aparece...
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.