Reiniciar o hash de tradução — LibreTraduzir OOMKill corrigido, tentar traduções novamente
Reinicie o hash de tradução para forçar a re-tradução das chaves de retorno
Popular o estado do DNS quando já confirmado; mostrar o nome da org em todo o lado
Traduzir todas as strings de UI restantes codificadas no site
- PreviewBanner, PublicChatWidget, AiChatPanel, LiveSupportPanel, ExitIntentModal, FluatingSupportWidget agora use useTranslations() - Previsão adicionadaBanner...
Remover barras de rolagem duplas e transbordamento horizontal na página de configuração do DNS
Mostrar sempre o botão DNS para os proprietários, adicionar o fluxo de domínio de mudança
Delta tradução motor + fio todas as cordas de UI codificadas para i18n
Sistema de tradução: - Translate.ts agora opera no modo delta — apenas as chaves que faltam ou ainda idênticos ao inglês são enviados para a API; chaves traduzi...
Suprimir o popup de tradução automática do Chrome em páginas com mudança de localização
Adicionar traduzir="não" para <html> e <meta name="google" conteúdo="notraduzir"> assim Chrome não oferece para traduzir páginas que o usuário já intencionalmen...
Página de configuração DNS empresarial de largura total, sucesso como banner descartável
Passe orgId através do fluxo de configuração/dns para gerenciamento de domínio cross-org
Bound translation concurrency to 3 threads to prevent DB pool exhaustion
Unbounded @Async (SimpleAsyncTaskExecutor) created 50 threads simultaneously when the retry scheduler fired, each opening a DB transaction and draining HikariCP...
O botão de configuração do domínio sempre navega para /setup/dns na aba atual
Three bugs preventing changelog translations from being saved
1. **************** was discarding events because handleWebhook() had no @Transactional — save + publishEvent() ran outside any transaction. Add @Transact...
Consultar CommmitLogs com a entrada esquerda para zero-tradução registros são capturados por repetição
A pesquisa antiga selecionada do CommitLogTranslation — commit logs with no As traduções eram invisíveis. Usar a opção esquerda do CommitLog Assim, a CARTONAGEM...
Adicionar /setup/dns página e fluxo de configuração de domínio para /network
- Nova página /setup/dns com fluxo bifásico: entrada de domínio então DNS verificação com auto-polling de 60 segundos e confirmação SSL - ManualDnsGuide: instru...
Add /setup/dns backend — one-domain enforcement, SSL probe, new aliases
- Enforce one custom domain per org in POST /api/security/domains - Add capcha, docs, sign to standard aliases; remove legacy aliases - Update verify-dns to tra...
Add ssl_confirmed and ssl_confirmed_at columns to org_domains
Adds idempotent ALTER TABLE statements to provision the two new columns needed for DNS setup SSL confirmation tracking.
Adicionar sslConfirmado/sslConfirmadoEm campos para OrgDomain e DomainDTO
Adiciona dois novos campos à entidade OrgDomain e DomainDTO para rastrear SSL estado de confirmação do certificado após os problemas do serviço de certificado a...
Apply word replacement at translation time, not ingestion
Original text is preserved in the DB so that adding a new rule and re-triggering translation is all that is needed to update existing records. Changes: - Chang...
Remova censura do changelog do lado do cliente — agora manipulado pela infraestrutura
Substituição de palavras e redação secreta movida para ChangelogSanitização Serviço (SecurityService) para higienização acontece antes de armazenamento DB e tra...
Move changelog word replacement to backend before translation
Text replacements (Docs→Docs, Meet→Meet, etc.) and secret name redaction (K8s secret names→***) were previously applied client-side in ChangelogClient.tsx, mean...
Lidar com respostas de API vazias e degradação graciosa na guia de faturamento
- BillingApi get/put helpers agora manuseiam com segurança corpos de resposta vazios em vez de bater em res.json() com entrada vazia - PlansBillingTab loadData ...
Check TeamMember.isOrganizationOwner flag for owner detection in my-networks endpoint
The previous check only looked at org.getOwner() (user_id_owner column) which can be null for existing orgs. The authoritative owner flag lives on the TeamMembe...
Resolver o contexto org/member da sessão *** para o proxy de faturamento
Os controladores BillingService requerem cabeçalhos X-Org-Id e X-Member-Id. Ao ligar diretamente (bypassing APIService), estes não estavam sendo ajustados. Agor...
Use o tipo de string para org/member IDs na página de rede para lidar com CockroachDB unique rowid() precision
Serializar org e IDs de membros como strings no endpoint das minhas redes para evitar perda de precisão JS
Chamar BillingService diretamente via DNS k8s em vez de através do APIService
Next.js server-side proxy agora chama BillingService em **************************** diretamente, pulando o salto desnecessário através do APIService. Usa BILLI...
Adicionar rota proxy API Next.js para /api/billing/*
O cliente da API de faturamento estava chamando /api/billing/* como um URL relativo, que atingiu o servidor Next.js em vez do gateway APIService. Adicionado uma...
Replace storage add-on toggle with quantity slider
Armazenamento adicional é baseado no uso (bloco $4/25GB), não um simples on/off Add-on. Substituiu o interruptor com uma barra deslizante (0- 1000GB em 25GB) pa...
Include parent org in /org/domain response
The getOrganizationByDomain endpoint manually builds a response map but never included the parent organization reference. This prevented the frontend from knowi...
Adicionar o ID pai e pai ao tipo OrgProviderProps
A interface props da Organização estava ausente campos parentId e pai, fazendo com que eles sejam deixados cair durante a compilação TypeScript, mesmo que o A i...
Wire BillingManager e RelacionamentoManager para infra-estruturas reais
BillingManager (página de cobrança da conta): - Substituido 100% local-state simulada com método de pagamento real Stripe-backed gestão via faturamentoApi - Car...
Purge incomplete model directories in init container
The service crashes on startup if it finds a directory in /models that has missing or partial model files. Add a sweep at init start that removes any directory ...
Remove GitHub LFS downloads, use only data.statmt.org models
GitHub raw URLs return LFS pointer files, not actual binaries. Drop enru/enar downloads entirely — LibreTranslate handles those locales. Only download the 4 pai...
Narrow bergamot to es/fr/de/pl, restore bergamot-first order
GitHub LFS files can't be downloaded with plain curl (raw URL returns the pointer not the content). Removing enru/enar from bergamot scope; those locales fall t...
Restore bergamot with working model sources and correct image
- replicas: 1 - Init container (alpine): downloads 4 pairs from data.statmt.org (tarballs for enes/enfr/ende/enpl) and 2 from firefox-translations-models GitH...
Narrow BergamotProvider targets to 6 pairs with available models
pt, it, uk, tr, ro, id, vi have no bergamot model source — LibreTranslate handles them. bergamot now claims: es, fr, de, pl, ru, ar.
Escala de bergamota para 0, atualizar imagem para mozilla/translation-service
O balde de download do modelo Google Cloud Storage (bergamot-models-sandbox) retorna 404 para todos os arquivos e o firefox-translations-models Arquivado Dez 20...
Route all translations through LibreTranslate while bergamot is offline
BergamotProvider is moved to fallback position. LibreTranslate supports all 13 locales bergamot was handling **************** so this eliminates the flood of "C...
Substituir a página de estatísticas simuladas pelo painel de assinaturas do KamoCRM ao vivo
Reconstruído /settings/account?tab=stats em um insight totalmente conectado, somente leitura Painel. Substitui todos os dados simulados por chamadas paralelas a...
Proxy *** desafio através do servidor de login para suporte a múltiplos domínios
Substitui a obtenção direta de origem cruzada para capcha. {domínio}/api/ desafio com uma proxy da mesma origem em /api/capcha/desafio. A abordagem anterior exi...
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.