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 ...
기본적으로 로드 분석 및 허용된 도메인의 www subdomain 포함
- Analytics가 Cookiesless/GDPR-friendly이기 때문에 기본적으로 모든 방문자를 추적 - 사용자가 명시적으로 쿠키 설정에 대한 분석 만 비활성화 - data-domains에 www.kamocrm.com 추가 (호스트 이름은 정확히 일치해야합니다)
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...
번역이 동일 소스 텍스트일 때 다음 제공 업체로 가을
Bergamot는 단일 단어 nav를 위해 unchanged 소스 텍스트를 반환했습니다. 항목, 약어 구문 (API, CRM) 및 합성 단어 (Change Log) 성공보고 (fallback=0). 현재 라우터는 동일한 값을 취급합니다. 다음 공급자를 시도하는 신호로 결과 (예 : Li...
델타 번역 엔진 + 모든 hardcoded UI 문자열을 i18n에 와이어
번역 시스템: - 번역.ts 이제 delta 모드에서 작동 - 누락 된 키 만 여전히 동일한 영어는 API로 전송됩니다; 기존의 번역 키 보존되지 않음 표준 실행에 80-95%의 CI 번역 시간을 잘라. - 추가 --force 플래그는 모든 키를 다시 번역 (품질 패스에 적합). - C...
로컬 전환 페이지의 Chrome 자동 번역 팝업
<html>과 <meta name="google" content="notranslate">로 번역하십시오. 그래서 Chrome은 사용자가 이미 의도적으로 페이지를 번역 할 제공하지 않습니다. 다른 언어로 전환.
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...
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 so Zero-translation 레코드는 리트리에 의해 잡혀
CommitLogTranslation에서 선택한 오래된 쿼리 - 로그를 no로 번역은 전혀 보이지 않았습니다. CommitLog에서 LEFT 가입 그래서 HAVING COUNT < 예상 항목에는 0 개의 번역이 포함되어 있습니다. 또한 큰 allIds IN 절을 제거하고 대신 페이지를 ...
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...
빌링 탭에서 빈 API 응답 및 우아한 degradation 처리
- billingApi get/put helpers 이제 안전하게 빈 응답 몸을 처리 대신 res.json()에 빈 입력 - PlansBillingTab LoadData는 .catch로 모든 청구 API 호출을 포장합니다. 그래서 개별 엔드포인트 실패는 전체 페이지를 깨지지 않습니다 —...
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...
Resolve org/member context from *** 청구 프록시 세션
BillingService 컨트롤러는 X-Org-Id 및 X-Member-Id 헤더를 요구합니다. 직접 호출 할 때 (APIService를 우회), 이 설정되지 않았습니다. 이제 Next.js 프록시는 *** 쿠키를 읽고 세션을 찾습니다. Redis, orgID 및 memberID를 추...
네트워크 페이지의 org/member ID에 대한 문자열 유형을 사용하여 CockroachDB unique rowid() 정밀도를 처리하십시오
다음을 추가하십시오.js API 프록시 경로 /api/billing/*
청구 API 클라이언트는 /api/billing/*를 상대 URL로 호출했습니다. APIService Gateway 대신 Next.js 서버를 명중합니다. 지원하다 a catch-all 프록시 경로 (커머스 마켓과 같은 패턴) 그 전달 forwardToApi → APIService → ...
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...
부모와 부모를 OrgProviderProps 유형에 추가하십시오
조직은 인터페이스가 부모Id 및 부모 필드를 누락했습니다. TypeScript 컴파일 중에 떨어뜨리기 때문에 백엔드는 그들을 보냅니다. 이 예방 된 조직.hasParent는 이제까지 사실, 모든 아이 orgs에 대한 계획 및 청구 탭을 숨겨.
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...
좁은 bergamot 에 es/fr/de/pl, 복원 bergamot-first 순서
GitHub LFS 파일은 일반 컬(raw URL)로 다운로드할 수 없습니다. 콘텐츠가 아닙니다. bergamot 범위에서 enru/enar 제거; 그 locales는 다른 모든 지원되지 않은 쌍과 함께 LibreTranslate를 통해 떨어졌습니다. bergamot로 이제 깨끗하게 ...
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 0, mozilla/translation-service 이미지 업데이트
Google Cloud Storage 모델 다운로드 버킷 (bergamot-models-sandbox) 모든 파일과 firefox-translations-models repo에 대한 404을 반환 필요한 언어 쌍없이 12 월 2025 아카이브. Bergamot는 할 수 없습니다 작업 모...
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 *** 멀티 도메인 지원 로그인 서버를 통해 도전
Capcha.{domain}/api/challenge에 직접 크로스 리긴 fetch를 대체합니다. /api/capcha/challenge에서 동일한 리긴 프록시. 자주 묻는 질문 capcha.* 하위 도메인에 유효한 TLS cert 위젯을로드 할 수 있습니다, "Verification ...
Scale bergamot back to 1 replica - 누락된 팟에 의한 번역 실패
Bergamot는 여전히 서비스로 0개의 복제본에 등록되었습니다. 공급자Router 번역 서비스에는 회로 차단기가 없었다, 그래서 es/fr/de/pt/it/를 위한 각 요구 pl/ru/uk/tr/ro/id/vi/ar는 반복된 연결을 가진 죽은 ClusterIP를 망치로 렸습니다 시도,...
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
의존도:go-offline 단계는 Maven Central을 먼저 시도하고, kamo-shared-library에 대 한 캐시 된 실패 (지방 전용), 그리고 그 후속 패키지 단계 독. 추가 -U 힘 Maven에 로컬을 포함한 모든 저장소를 재 점검합니다.
번역의 펑크 크기를 50 키로 감소 exponential backoff
몇몇 공급자를 위해 아직도 너무 크 150의 열쇠 (긴 단락 가치 안으로 개인 정보 보호 정책 / GDPR 지금: 펑크 당 50의 열쇠, exponential를 가진 4개의 retries 백오프 (2s→4s→8s→15s), 가득 차있는 request+response를 덮는 3 분 tim...
큰 페이로드에 fetch timeout을 방지하는 Chunk 번역 요청
1500+ 열쇠로, 단 하나 배치 요구 탑재량은 연결을 일으키는 원인이 되었습니다 몇몇 번역 공급자를 위한 timeouts. 이제 150 키의 펑크로 나뉩니다. 3개의 retries와 펑크 당 2 분 운동으로.