Changelog
O que há de novo.
Cada melhoria para a plataforma, como ele envia.
· kamo-internal
Página de Integração de Web Chat — lista, criação, trecho (BFF + UI)
Núcleo de fase 2 da página de configurações de integração do Web Chat: proxy de rotas BFF para o Phase-1a MediaService CRUD, um cliente digitado e o /settings/features/chat tab onde uma org lista integrações, cria uma (nome + origens necessárias do site + modos de IA/Suporte), e recebe o bruto chave do site + trecho incorporável uma vez. Personalizador de design e prontidão Lista de verificação são fases posteriores.
· kamo-register
Kamo-register homenageia software auth logo + nome
- DynamicMetaLoader: ler identidade de software + seletores de autenticação de config.json, resolver tab title, persistir auth logo/name state to sessionStorage - brand.ts + ThemeLogo: logótipos de registo auto-seguir a identidade auth-logo (reactiva) - useAuthName: o texto do nome do registo (aterragem + fluxo) segue a identidade do nome de autenticação, Reativo na carga de configuração do tema; volta para a empresa
· kamo-login
Kamo-login homenageia o logo de autenticação do software + título da aba
- DynamicMetaLoader: ler identidade de software + seletores de autenticação do config.json, definir tab title from soluted name (authNameBrandSource), persistir auth-logo state to sessionStorage - brand.ts + ThemeLogo: logótipos de login auto-seguir a identidade auth-logo (empresa/software), re-resolvido na carga de configuração do tema; não são necessárias alterações no local de chamada
· kamo-internal
Identidade de software do LabelManager UI + título interno da aba
- Informação da empresa: nome do software/curto nome + nome do login/registro + seletores de título de tabulação - Branding: uploads de logos completos/simples de software, alternações de substituição e por superfície Selectores de identidade (marca d'água, navpri, logótipos de login/registro) - superfícies jurídicas forçadas comunicadas como sempre-empresa (documentos/e-mail/facturas/etc.) - layout: o título interno da aba do navegador resolve-se via internaTabBrandSource
· kamo-internal
3 estágios org orientação a bordo (criar → terminar DNS → entrar)
Generalize o herói de primeiro-org em um único painel de orientação consciente de palco relativa à contagem de orgs do membro (de /api/security/org/my-networks): criar — não possui nenhuma criança org → lançar primeiro branco-label org (/rede/criar) dns — possui 1, DNS não verificado → configuração do domínio de acabamento (/setup/dns?orgId=..) enter — possui 1, DNS completo → digite-o (ent-as OTK → interna.<domínio>) Uma vez que possuem uma segunda org, nenhum painel mostra — eles conhecem as cordas. DNS-pendente espelha a regra da página de rede exatamente (domínio personalizado && domainSetupComplete===false; a *.kamocrm.com org não precisa de DNS). Cada estágio tem sua própria família de sotaque (pessoas/trabalho/crm), ícone e cópia; CTA é um link para criar/dns e um async entrar ação para o estágio pronto. Falha segura (sem painel) em qualquer erro de busca.
· kamo-internal
Solução dupla empresa/software + entrega + consumo
- Organization.ts: entregar identidade de software + seletores por superfície via OrgContext - Marca: (+ vitest, 8 casos) - ThemeLogo: LogoSoftware/logoFullSoftware variantes - NavPri: logotipo navpri + texto siga o seletor de Logo do Software Interno - BackgroundWatermark + Backdrop: marca d'água honra a identidade do software (ambos os caminhos)
· SecurityService
Tipos de upload de logotipo de software + config.json bake
- uploadLogo: interruptor explícito de teclas de objectos com rejeição padrão para que um upload de software nunca pode bater no logotipo da empresa.svg - copyFolder: preservar logotipos de software carregados no modelo de cópia - config.json: cozer identidade de software + seletores de superfície de autenticação para login / registro - testes: UploadLogoObjectKeyTest, buildConfigJson
· kamo-shared-library
Adicionar colunas de branding em branco do software à Organização
· kamo-shared-library
Persistir campos de branding de software via patchOrganização whitelist
· kamo-internal
Primeiro-org herói CTA para membros na plataforma org
Mostrar um herói a bordo no topo da plataforma de lançamento em casa convidando Membro da plataforma KamoCRM (não membro da equipa) que ainda não criou um Org infantil para criar a sua primeira organização em branco. Um proeminente Botão CTA e um 'clique aqui' inline link ambos para /network/create, e a cópia aponta para o navegador 'Meus {ramados}' acima. Gated on userInfo.memberType ===MEMBRO + organização.isTopLevel; stays oculto a menos que /api/security/org/my-networks confirme que não possuem filhos org, e falha segura (escondido) em qualquer erro de busca. Seguir o Instrumento Língua de design de painel (acento de pessoas, kglass, operador-label, casa calmante, com redução de movimento). Cordas em casa. Primeiro Org.
· VOIPService
Endpoint de credenciais TURN-REST para o softphone móvel
GET /api/voip/turn/credentials mentas creds de coturna efêmera (HMAC-SHA1 over "<expiry>:<memberId>" com o ético-auth-secret compartilhado) tão nativo/celular WebRTC pode retransmitir através de 47.181.8.84:3478. Auth através do mesmo X-***-Token o SIP endpoint usa; retorna configurado:false (somente em STUN) quando o segredo está ausente. Fios KAMO TURN SECRET da *** existente (opcional).
· SecurityService
Expor por-org primárioCor + URLs de logotipo em /my-networks
Cada linha de org agora carrega cor primária (Organização.colors.colorPri, '#'-prefixo para igualar config.json) e logo derivadoUrl/logoSimpleUrl (tema.< domínio>/público/ Logotipos e cores por-org hex-head borda.
· MediaService
ID de integração de web-chat de instantâneo no visitante de suporte + ticket
Resolve o WebChatIntegration criandoKeyHash (inabilitado-filtrado, consistente com a resolução bootstrap()/AI-prompt) uma vez dentro createSupportSession e carimba seu id em PublicChatVisitor e SupportTicket para atribuição por site. Chave nula/em brancoHash ou nenhuma integração ativada de correspondência deixa as colunas nulas.
· AIService
Prompt de IA público por integração + atribuição de sessão
Atualize a cachoeira do sistema público-chat-prompt de per-org para por integração: PublicAiChatController agora lê o X-Public-Chat-Key-Hash cabeçalho (nulable) enviado pelo APIService e passa para ************* que resolve o WebChatIntegração por hash e prefere seu aiSystemPrompt em vez do AiOrgSettings padrão, voltando ao prompt genérico. A resolução AiChatSession também é carimbado com webChatIntegrationId para atribuição estável que sobrevive à rotação chave. Extraiu a cachoeira em uma resolução estática testada por unidadePrompt helper (integração-wins / org-fallback / genérico-fallback / em branco tratamento).
· APIService
GET /api/public-chat/bootstrap gateway route
Adicionar endpoint bootstrap que reutiliza o proxy existenteWithAuth pipeline (validação chave + origem opt-in + âmbito PUBLIC CHAT + limite de taxa + X-Public-Chat-Key-Hash) e proxies para o endpoint bootstrap MediaService.
· MediaService
Resolução de configuração de bootstrap de conversas públicas
Adiciona um GET interno ************* que resolve um WebChatIntegração por X-Public-Chat-Key-Hash e retorna sua resolução configuração do design/comportamento (predefinido através do WebChatDefaultConfig.merge então uma chave sem linha de integração ainda renderiza como o widget de hoje). Regressa à organização de PublicChatApiKey ativa quando não há integração existe; 404s quando o hash chave não resolve em tudo.
· MediaService
WebChatIntegração CRUD (chave de menta + integração, org-scoped)
API de gerenciamento voltado para org para a guia de configurações de web-chat da Fase 2. Ligado criar, conta o PublicChatApiKey subjacente (mesma abordagem chave-gen como PublicChatKeyController) ao lado da linha WebChatIntegration e retorna a chave bruta uma vez. lista/get/update/delete são propriedade de org checked; update buss a cache (task- 5) inicializa quando o designConfig ou alterações habilitadas.
· kamo-shared-library
Adicionar colunas de atribuição WEB CHAT INTEGRATION ID ao visitante/ticket/ai-session
· kamo-shared-library
WebChatEntidade de integração + repo + DTO + configuração de design padrão
· kamo-internal
Adicionar pontos de entrada "Access Copilot Mobile App" em casa + NavPri
Ambas as superfícies enviam um evento 'open-interaction-center' que o NavTop ouve para abrir o Centro de Interação na guia Configurar aplicativo móvel. Home mostra a pílula etiquetada sob os controles de papel de parede; NavPri mostra um ícone de logotipo abaixo do comprimido experimental (rótulo quando expandido, dica quando colapsado). Ambos fechados pelo Allow mobile access direita.
· kamo-internal
Senha-gate do QR, guia de linha única, cabeçalho logo- esquerda, código de 10 minutos
- O membro deve voltar a inserir a sua senha (verificado pelo servidor via /api/mobile-access-otk, que menta o OTK apenas no sucesso) antes que o QR é revelado — impede alguém num computador já assinado por tê-lo agarrado. - QR/OTK agora vive 10 minutos (600s); contagem regressiva, em seguida, trava novamente. - Rótulo de tabulação forçado a uma linha; logotipo movido à esquerda do título para salvar espaço vertical; removeu a pílula 'Configuring for'.
· SecurityService
POSTO *******************
Verifica a própria senha do chamador (passwordEncoder. jogos contra a sua sessão usuário) sem mudar nada. Usado pela rota BFF mobile-access-otk para o configuração QR só é cunhada após reconfirmar a senha.
· kamo-internal
Setup Mobile Access tab — QR para instalar + auto-configure Mobile Copilot
Nova 3a página no NavTopPanel (aberto por ALLOW MOBILE ACCESS à direita): mostra uma marca QR codificando uma ligação profunda OTK de curta duração (kamocopilot://configure) que assina o membro em seu telefone e defaults o aplicativo para o org atual. Atualizações automáticas OTK antes de expirar; layout MUI polido com a cor primária da org. Adiciona
· kamo-shared-library
Adicionar ALOW MOBILE ACCESS (167) à direita geral para o co-piloto móvel
Novo RoleRightType (serviceType=null → Grupo geral) gating the 'Setup Mobile Página do centro de interação do Access. RoleRightsSyncService preenche-o para todos os papéis no SecurityService reiniciar; aparece sob Permissões Gerais no editor de funções.
· AIService
Per-org prompt público, handoff humano em nenhum provedor, anon diariamente message cap
· kamo-shared-library
Adicionar uma pesquisa de contagem de uso de anon para a quota pública de web-chat
· APIService
Verificar *** PoW na borda na sessão pública criar (forçado quando a carga útil presente)
· MediaService
Bust APIService cache de chaves imediatamente na chave pública-chat alternar/deletar
· MediaService
Persistir na criação de hash chave no visitante de bate-papo público + ticket para atribuição
· kamo-shared-library
Adicionar ao públicoDailyMessageCap para AiOrgSettings para uma cota de web-chat

Seu universo está esperando.
Comece gratuitamente em minutos.Adicione produtos sempre que estiver pronto — sem migração, sem novos logins.
Gratuito para sempre — não é necessário cartão de crédito