Use TreeWalker to remove all "analytics" text nodes from rendered DOM
The workspace nav title "analytics" comes from JS bundles loaded after auth, rendered as a text node next to the logo SVG. Uses TreeWalker to find and clear all...
Add guarded MutationObserver for client-side rendered logo/text
Login page and dashboard content is rendered by Next.js JS bundles, not in the HTML body, so sub_filter can't reach it. Adds a script with a busy-flag-guarded M...
Redirect favicons at nginx level, fix RSC payload escaping
- Serve favicon via nginx 302 redirect instead of trying to rewrite HTML/RSC payload href strings (cleaner, always works) - Fix RSC title replacement with pro...
Use pure sub_filter replacements instead of MutationObserver
MutationObserver caused infinite loop (DOM change -> observer fires -> DOM change). Switch to direct nginx sub_filter string replacements targeting both static ...
Carregar análise por padrão e incluir subdomínio www em domínios permitidos
- Acompanhe todos os visitantes por padrão, uma vez que a análise é sem cookies / GDPR-friendly - Desative somente se o usuário negar explicitamente a análise n...
Comprehensive analytics rebranding for login page and dashboard
- Replace title dynamically (handles "Login | analytics", "Dashboard | analytics" etc.) - Replace "analytics" h2 text on login page with Kamo logo image - Repla...
Use MutationObserver to rebrand analytics client-side rendered UI
analytics is a Next.js app that sets title/logo via JavaScript after initial HTML load. Replaces static sub_filter approach with injected script that uses Mutat...
Passe para o próximo fornecedor quando a tradução for igual ao texto de origem
Bergamot estava retornando o texto fonte inalterado para navegação de uma única palavra itens, frases em acrônimo (API, CRM) e palavras compostas (Change Log) e...
Popular o estado do DNS quando já confirmado; mostrar o nome da org em todo o lado
Remover barras de rolagem duplas e transbordamento horizontal na página de configuração do DNS
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...
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...
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...
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
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...
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...
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...
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...
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...
Escala de bergamota de volta para 1 réplica — falhas de tradução causadas pela vagem em falta
Bergamot estava em 0 réplicas com seu serviço ainda registrado. O Router do Provedor em TranslateService não tinha disjuntor, então cada pedido de es/fr/de/pt/i...
Don't let null translated description hide the English original in changelog
The translation lookup for non-en locales was unconditionally overwriting description with **************** which is null when: - the translation was saved befo...
Resolve 23 compilation errors from controller-service signature mismatches
Controllers were built by a separate agent from services, causing method name and parameter type mismatches. Fixed all controllers to match actual service signa...
Update kamo-shared-library version from 1.0.0 to 1.1.0
Needed to resolve the new billing entities in the commerce.billing package added to shared library 1.1.0.
Atualizar a versão da biblioteca compartilhada com kamo de 1.0.0 para 1.1.0
A biblioteca compartilhada é publicada como 1.1.0, não 1.0.0. Isto estava a causar a construção do Docker falhar com "artifacto não encontrado" desde que Maven ...
Adicionar a opção -U ao maven build steps para resolver a biblioteca compartilhada do repositório local
A dependência:go-offline passo foi tentar Maven Central primeiro, recebendo um falha em cache para a biblioteca compartilhada- kamo (que é apenas local), e isso...
Reduza o tamanho do bloco de tradução para 50 teclas com retrocesso exponencial
150 chaves ainda demasiado grandes para alguns fornecedores (valores de parágrafos longos em privacidade/termos/GDPR). Agora: 50 teclas por pedaço, 4 tentativas...
Requisitos de tradução para evitar intervalos de busca em grandes cargas
Com mais de 1500 chaves, o único lote pedido carga útil estava causando conexão tempo limite para alguns provedores de tradução. Agora divide- se em pedaços de ...
Forçar a re-tradução e enviar arquivos locais de volta ao repo após a etapa de tradução
Usar labelKey em vez de label para a chave TrustIndicator no DemoClient
Adicionar a configuração do serviço de tradução ao mapa de configuração do K8s
Use métodos de repo baseados em UUID para traduções do plano de assinatura, evite carregar preguiçoso no agendador
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.