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 ...
Muat analisis secara baku dan masukkan subdomain www dalam domain yang diijinkan
- Track semua pengunjung secara default karena analitik adalah cocookieless / GDPR-friendly - Hanya menonaktifkan jika pengguna secara eksplisit menyangkal 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...
Jatuh ke penyedia berikutnya ketika terjemahan sama dengan teks sumber
Bergamot mengembalikan teks sumber yang tak berubah bagi nav kata tunggal butir, frasa akronim (API, CRM), dan kata-kata kompleks (Ubah Log) ketika melaporkan s...
Status DNS populer ketika telah dikonfirmasi; tampilkan nama org secara prominently seluruh
Mesin translasi Delta + wire semua hardcode UI string ke i18n
Sistem terjemahan: - translate.ts sekarang beroperasi dalam mode delta - hanya kunci yang hilang atau masih identik dengan bahasa Inggris dikirim ke API; kunci ...
Tekan popup otomatis Chrome pada halaman locale-switched
Tambahkan terjemahan = "tidak" ke < html > dan < nama meta = "google" isi = "notranslation" > sehingga Chrome tidak menawarkan untuk menerjemahkan halaman pengg...
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...
Pengaturan tombol domain selalu navigasi ke / setup / dns dalam tab saat ini
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 Commitment Logs with LEFT JOIN so zero- translation retry
Kuiri lama dipilih dari KomitLogTranslation - commit log dengan tidak ada terjemahan sama sekali tidak terlihat untuk itu. Gunakan JOIN KIRI dari Komitlog sehin...
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...
Menangani respon API kosong dan degradasi anggun pada tab penagihan
- billingApi mendapatkan / menempatkan pembantu sekarang aman menangani tubuh respon kosong daripada menabrak res.json () dengan masukan kosong - PlansBillingTa...
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...
Selesaikan konteks org / anggota dari sesi * * * untuk proksi penagihan
Pengontrol Layanan BillingService memerlukan X- Organ- Id dan X- Anggota-Id header. Ketika panggilan langsung (melewati APIService), ini tidak sedang ditetapkan...
Serialisasi org dan ID anggota sebagai string dalam titik akhir jaringan saya untuk mencegah hilangnya presisi JS
Tambahkan Next.js API proxy route untuk / api / billing / *
Klien API memanggil / api / billing / * sebagai URL relatif, yang menekan server Next.js bukan gerbang APIService. Ditambahkan catch- semua proxy route (pola ya...
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...
Tambahkan induk dan induk ke tipe Organ ProviderProps
Antarmuka props Organisasi hilang parentId dan bidang induk, menyebabkan mereka drop selama kompilasi TypeScript meskipun Backend mengirim mereka. Hal ini diceg...
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.
Skala bergamot ke 0, perbarui gambar ke layanan mozilla / terjemahan
The Google Cloud Storage model download ember (bergamot-model-sandbox) mengembalikan 404 untuk semua berkas dan firefox- terjemahan-model repo adalah arsip Dec ...
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 * * * tantangan melalui server login untuk dukungan multi- domain
Mengganti titik silang langsung dengan capcha. {domain} / api / challenge dengan sama - proksi asal di / api / capcha / tantangan. Pendekatan sebelumnya diperlu...
Skala bergamot kembali ke 1 replika - terjemahan kegagalan disebabkan oleh hilang pod
Bergamot berada di 0 replika dengan layanan yang masih terdaftar. The ProviderRouter dalam Layanan Penerjemah tidak memiliki breaker sirkuit, jadi setiap permin...
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.
Mutakhirkan kamo- shared- versi pustaka dari 1.0.0 ke 1.1.0
Pustaka bersama diterbitkan sebagai 1.0, bukan 1.0.0. Ini menyebabkan The Docker built to fail with "artifact not found" since Maven could tidak menyelesaikan k...
Tambah -U tanda ke langkah build maven untuk menyelesaikan perpustakaan terbagi dari lokal repo
Ketergantungan: langkah offline adalah mencoba Maven Central pertama, mendapatkan cached gagal untuk kamo- shared- perpustakaan (yang local-only), dan bahwa mer...
Kurangi ukuran potongan terjemahan ke 50 kunci dengan backoff eksponensial
150 kunci masih terlalu besar untuk beberapa penyedia (nilai paragraf panjang dalam privasi / istilah / GDPR). Sekarang: 50 kunci per potongan, 4 percobaan ulan...
Permintaan terjemahan Chunk untuk mencegah penanggalan waktu pengambilan pada payloads besar
Dengan 1500 + kunci, batch tunggal muatan permintaan menyebabkan koneksi waktu habis untuk beberapa penyedia terjemahan. Sekarang dibagi menjadi potongan dari 1...
Masuk ulang ke registri segera sebelum membangun untuk mencegah kadaluarsa auth setelah langkah terjemahan panjang
Paksa terjemahan ulang dan komit berkas lokal kembali ke repo setelah langkah terjemahan
Gunakan labelKey daripada label untuk kunci trustIndicator dalam Demokrasi
Gunakan metoda repo berbasis UUID-untuk translasi rencana berlangganan, hindari lazy- load dalam penjadwalan
Seperti apa yang Anda lihat pengiriman?
Semua pembaruan ini secara otomatis mendarat di ruang kerja Anda. Mulai bebas dan menontonnya tumbuh minggu demi minggu.