Mostrar o intervalo de direitos autorais de 2001 e o ano de incorporação
Renders "© 2001–<year> KamoCRM. KamoCRM Inc. estabeleceu 2025. Todos os direitos reservado." O início do intervalo é codificado ao lado do ano final dinâmico, e...
Adicione as integrações de reunião e folha de pagamento
Zoom e Microsoft Teams para reuniões, e os dez fornecedores de folha de pagamento — ADP Força de trabalho agora, BambuHR, Dayforce, Gusto, Paychex Flex, Paycor,...
Contar aplicativos e integrações separadamente com números reais
"Apps & Integrations" foi uma leitura de telha 31+. Agora são dois, cada um com um valor que pode ser re-derivado em vez de estimado: Apps 64 — Projectos Forge...
Reinicie o título inicial em uma face de exibição e uma passagem de luz
O h1 empilhou quatro efeitos: um wrapper fade, paralaxe do mouse em cada linha, rotação 3D por caráter na linha 1, e gradiente azul/púrpura/verde A atravessar a...
Leia a contagem de fundo real da org e jogar ordem
O herói sondado para bg/1.webp e, em seguida, codificado três quadros, então uma org com mais nunca mostrou-los e a rotação modulo'd por LOCAL BGS.comprimento i...
Dados estruturados e uma regra robots.txt que não correspondeu a nada
Cada URL BreadcrumbJsonLd e ItemList foi codificado para /en, então o estruturado dados sobre /fr/terms dito aos rastejantes seu pai pão crumb foi a página em i...
Indice as páginas de detalhes da coleção em mais 19 idiomas
A sincronização terminou, então as ~2.400 páginas de detalhes que foram noindexadas por terem A cópia do corpo inglês agora tem traduções reais e pode ser index...
Parar a publicidade ta como um suplente traduzido
Cobertura chave não é tradução. TranslateService retorna o texto fonte quando nenhum provedor suporta uma direção — Registros ProviderRouter "Nenhum provedor su...
Localize as placas de hub e pare de juntar os conjuntos de dados em inglês
As quatro páginas de hub renderizadas componentes do cliente que importaram a coleção módulos diretamente e não levou adereços, então cada cartão — nomes da ind...
Traduzir as páginas da colecção em vez de as esconder
As 2.400 páginas de detalhe noindexed foram noindexed porque sua cópia do corpo não tradução: concorrentes, indústrias, integrações e glossário mantêm sua prosa...
Pare de canonicalizar 21 locais traduzidos para o inglês
Cada página não inglesa carregava um canónico codificado para o seu /en gêmeo — `export const metadados' é o nível do módulo, de modo que não poderia variar por...
Derive a unidade adicional do catálogo e corrija os preços obsoletos
O complemento de armazenamento anunciado como "+$4 /usuário/mês" para uma piscina na mesma página chamada organização em toda a região. Causa: mapAddons addonCo...
Render Vendas de contato para add-ons sem preço de lista
PageAddOn.price foi digitado número e construído com Número(addon.pricePerUnit), então um add-on sem Preço de lista — os sistemas de origem negociados pela empr...
Pare a folha de tema runtime clareando a tela em máquinas de modo luz
DynamicMetaLoader adiciona o tema.<domínio>/css/globals.css para <head> depois do nosso próprio folha de estilo, e que arquivo ainda carrega create-next-app cal...
Enviar a liderança no passo 1 em vez de apenas na reserva
handleFormSubmit verificou o *** e avançou o passo — não fez rede call at all, assim que os detalhes de contato um visitante digitado só foram persistidos se El...
Remova a página e links do programa design-partner — sem brindes de uso livre
500s em páginas de segmentos dinâmicos + in fallback para chaves locais ausentes
Removendo as rotas dinâmicas de força globais com a tentativa de gerarStaticParams renderização estática para params on-demand, que lança DYNAMIC SERVER USAGE p...
Fase 3+4 – converter o tráfego que já chega
- changelog ( destino # 2) recebe um bloco de conversão; as carreiras mostram o estado honesto sem aberturas - /subscribe página: intenção de plano de pós-regis...
Módulos de conteúdo relacionados + inscrição CTA reorientando em modelos programáticos
Soluções, integrações, alternativas e modelos de glossário eram orgânicos becos sem saída: sem links internos relacionados e "Iniciar livre" CTAs apontando para...
Fase 0+1 — instrumento do funil real, desbloquear a primeira pintura
- dados avançados-* adereços através de MagneticButton/RippleButton (eventos nunca chegaram ao DOM) - instrumento SharedNavigation, Hero, PreviewBanner, seção C...
Realizar trabalhos pendentes em curso
Está encenado e comprometido como-é assim nada é deixado descompromissado na árvore de trabalho. 4 arquivos alterados, 72 inserções(+)
Endureça o download do kubectl contra a saída flácida [skip ci]
dl.k8s.io sobre a saída do corredor diminui intermitentemente no meio da transferência: curl: (56) OpenSSL SSL read: a descriptografia falhou ou o mac de regist...
Iniciação com 5 usuários, Negócios com 25
Reposiciona as tampas de assento publicadas sobre /pricing (e a calculadora, JSON-LD oferece, e resumos llms.txt) para corresponder à assinatura catálogo: Start...
Substituir o chat bifurcado com o conteúdo hospedado <kamo-chat> embed; apagar o widget de proxy legado
Troca o chat AI/live-suport React (PublicChatWidget + AiChatPanel + LiveSupportPanel + as rotas proxy /api/chat/** do servidor) para o hospedado, auto-tema <kam...
Distinguish actively-translating vs queued messages
The translation queue was already sequential, but every queued bubble rendered "Translating…". Now the single in-flight message shows "Translating…" with a puls...
Show error icon when a message fails to translate
When the per-message translate call returns translated:false, errors out, or times out, the chat bubble now renders an AlertTriangle icon in red with tooltip "F...
Stream translations newest-first for visitor history
When the visitor lands on a non-English locale and the support chat has existing English messages, every bubble flagged needsTranslation by the backend now show...
Auto-translate visitor and agent messages
Live agent replies arriving in a language other than the visitor's URL locale now show a "Translating…" bubble while the TranslateService call resolves, then sw...
Move translations to kamo-translation-dictionary
All 22 locale files move to the centralized kamo-translation-dictionary repo. The CI now clones that repo and copies the kamo-marketing/ folder into messages/ b...
Scope concurrency to build jobs, not Kubernetes deploys
Workflow-level concurrency serialized the whole pipeline (including kubectl rollouts). Move the group to the build job only so deploy jobs from different runs c...
Periódico STOMP presença batimento cardíaco para apoio público
Atualizar Redis TTL para presença de sessão pública para que os agentes vejam o estado online preciso.
Mostrar banner de oferta ativa com contagem decrescente de milissegundos ao vivo
Fetches o lado ativo do servidor de promoção na página inicial e renderiza um HeroOfferBanner entre a sub-linha e a chamada gratuita para sempre. O banner mostr...
Drive minimized-tab entrada através de controles de animação
A mudança de animação={...} para animar={tabControls} quebrou a entrada animation: tabControls não tem nenhum alvo em fila na montagem, então o botão ficou na s...
Live unread emblema + salto na nova mensagem do agente
- Mantém o LiveSupportPanel montado fora da tela enquanto o widget é minimizado (somente quando existe uma sessão de suporte) para que a subscrição STOMP perman...
Remova a proteção SSR causando descompasso de hidratação; solte SockJS para WebSocket nativo
- Hero.tsx: remover o tipo de janela em torno do campo de partículas — campo de partículas já tem ssr:false assim que o guard produziu um servidor/cliente árvor...
Use /public/{mainDomain}-{tld} path matching actual MinIO bucket layout
The getThemePath() was generating /domain/{tld}/{split}/kamosite paths that don't exist in MinIO — theme files live in the public bucket under kamocrm-com/, bad...
Adicionar supressãoHydrationAviso e corrigir imagens de placeholder quebradas
supressorHydrationAviso em <html> previne erro de reação #418 causado pelo navegador extensões (por exemplo, traduzir, modo escuro) mutando atributos html entre...
Remover a chamada de ligação duplicadaStomp no sendMessage
Quando a primeira mensagem cria uma nova sessão, onSessionCreated actualiza os adereços que desencadeia o usoEffect para chamar connectStomp. A chamada em linha...
Remover os nós módulos kamo-capcha-widget do repositório
Deixe os arquivos rastreados debaixo de... árvore corresponde a uma instalação limpa (dependências pertencem ao bloqueio de pacotes, não git).
Mostrar estado ao vivo com link changelog e contagem diária
Substituir a contagem regressiva e a cópia de inscrição com um compacto "Agora AO VIVO" chamada, manter o link changelog, e sempre mostrar a contagem de mudança...
Renderizar eventos de sistema como texto amigável no chat de suporte ao visitante
Eventos do sistema NAME CHANGED não mostram mais JSON bruto na bolha de bate-papo; eles exibem como uma pílula italic centrada ("Mude o nome para {nome}"). Outr...
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.