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 ...
Carica analisi di default e include il subdominio www nei domini consentiti
- Traccia tutti i visitatori per impostazione predefinita poiché l'analisi è cookieless/GDPR-friendly - disabilitare solo se l'utente nega esplicitamente l'anal...
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...
Fallire attraverso il prossimo provider quando la traduzione è uguale testo sorgente
Bergamot ha restituito il testo sorgente invariato per nav di una sola parola articoli, frasi in acronimo (API, CRM), e parole composte (Change Log) durante la ...
Populare gli stati DNS quando già confermato; mostrare il nome org prominente in tutto
Rimuovere doppie barre di scorrimento e overflow orizzontale nella pagina di configurazione DNS
Delta motore di traduzione + filo tutte le stringhe UI codificate a i18n
Sistema di traduzione: - translate.ts ora opera in modalità delta — solo le chiavi mancanti o ancora identico all'inglese sono inviati all'API; le chiavi tradot...
Suppress Chrome auto-traslato popup su pagine interrutte locali
Aggiungi translate="no" a <html> e <meta name="google" content="notranslate"> così Chrome non offre di tradurre le pagine che l'utente ha già intenzionalmente p...
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...
Impostare il pulsante di dominio naviga sempre in /setup/dns nella scheda corrente
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...
Query CommitLogs with LEFT JOIN così zero-traduzione record sono catturati da retry
La vecchia query selezionata da CommitLogTranslation — log di commit senza le traduzioni a tutti erano invisibili ad esso. Utilizzare JOIN sinistro da CommitLog...
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...
Mantenere le risposte API vuote e il degrado grazioso sulla scheda di fatturazione
- fatturazioneApi get/put helper ora in modo sicuro gestire i corpi di risposta vuoti invece di schiantarsi su res.json() con ingresso vuoto - PlansBillingTab l...
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...
Risolvere il contesto org/member da *** sessione per il proxy di fatturazione
I controller BillingService richiedono intestazioni X-Org-Id e X-Member-Id. Quando si chiama direttamente (passando APIService), questi non sono stati impostati...
Serializzare org e gli ID dei membri come stringhe nel endpoint my-networks per prevenire la perdita di precisione JS
Aggiungi Next.js API proxy route per /api/billing/*
Il client API di fatturazione stava chiamando /api/billing/* come URL relativo, che ha colpito il server Next.js invece del gateway APIService. Aggiunto un perc...
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...
Aggiungi genitoreId e il genitore a OrgProviderProps tipo
L'interfaccia dell'Organizzazione props mancava dei campi genitoriId e genitori, facendoli cadere durante la compilazione di TypeScript anche se backend li mand...
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 a es/fr/de/pl, ripristina bergamot-first order
I file GitHub LFS non possono essere scaricati con il curl semplice (l'URL di prua restituisce il non il contenuto). Rimuovere l'enru/enar da bergamotto; quelli...
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.
Scale bergamot a 0, aggiornare l'immagine a mozilla/translation-service
Il secchio di download del modello Google Cloud Storage (bergamot-models-sandbox) restituisce 404 per tutti i file e il firefox-traduzioni-models repo è stato a...
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 *** sfida tramite server di login per il supporto multidominico
Sostituisce il fetch diretto cross-origin a capcha.{domain}/api/challenge con un stesso-origine proxy a /api/capcha/challenge. L'approccio precedente richiesto ...
Scale bergamot torna a 1 replica — guasti di traduzione causati da pod mancante
Bergamot era a 0 repliche con il suo servizio ancora registrato. Il FornitoreRouter in TranslateService non ha avuto interruttore, quindi ogni richiesta di es/f...
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.
Update kamo-shared-library version from 1.0.0 to 1.1.0
The shared library is published as 1.1.0, not 1.0.0. This was causing the Docker build to fail with "artifact not found" since Maven could not resolve the depen...
Add -U flag to maven build steps to resolve shared library from local repo
The dependency:go-offline step was trying Maven Central first, getting a cached failure for kamo-shared-library (which is local-only), and that poisoned the sub...
Ridurre la dimensione del pezzo di traduzione a 50 chiavi con backoff esponenziale
150 chiavi ancora troppo grandi per alcuni fornitori (valori di paragrafo lunghi privacy/termine/GDPR). Ora: 50 chiavi per pezzo, 4 retries con esponenziale bac...
Le richieste di traduzione di Chunk per prevenire i timeout di fetch su grandi carichi di pagamento
Con 1500+ chiavi, il singolo carico di pagamento della richiesta in batch stava causando connessione timeout per alcuni provider di traduzioni. Ora si divide in...
Re-login al registro immediatamente prima di costruire per evitare la scadenza auth dopo passo di traduzione lungo
Forza re-traduzione e commettere file locali di nuovo a repo dopo tradurre passo
Utilizzare etichettaKey invece di etichetta per chiave trustIndicator in DemoClient
Utilizzare textKey invece di testo per la chiave di beneficio in DemoClient
Utilizzare metodi di repo basati su UUID per le traduzioni del piano di abbonamento, evitare lazy-load in scheduler
Come quello che vedi la spedizione?
Ognuno di questi aggiornamenti atterra automaticamente nello spazio di lavoro. Inizia gratis e guardalo crescere settimana dopo settimana.