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サブドメインを含める
- 分析がクッキーレス/GDPRフレンドリーであるため、すべての訪問者をデフォルトで追跡 - ユーザーが明示的にクッキー設定で分析を拒否した場合のみ無効化 - データドメインに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 に変更せずに返しました 項目, 頭字語句フレーズ (API, CRM), 化合物の単語 (ログの変更) 成功を報告している間(fallback=0)。 ルータは同じ値を扱うようになりました 次のプロバイダ(例:LibreTranslate)を試してみる信...
デルタの翻訳エンジン+ワイヤーすべてのハードコードされたUIのひもi18nに
翻訳システム: - translate.ts は delta モードで動作します。これは欠落しているキーのみです。 既存の翻訳キーは、英語と同一のAPIに送信されます。 保存されていない状態です。 CI の翻訳時間を80〜95%の典型的な実行でカットします。 - --force フラグを追加して、すべてのキーを再変換し...
Suppress Chrome は locale-switched ページのポップアップを自動翻訳
<html> と <meta name="google" に translate="no" を追加 そのため、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...
クエリCommitLogs with LEFT JOIN なので、ゼロトランスレーションレコードは再試行でキャッチされます
CommitLogTranslationから選択した古いクエリ — ログをコミットしない 全てが目に見えないものでした。 CommitLogからLEFT JOINを使用する そのため、HAVING COUNT < 予想句には 0 の翻訳を含むレコードが含まれています。 また、句の大きいallIdsを削除し、代わりにPa...
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 応答と課金タブの優雅な劣化を処理する
- billingApi の get/put のヘルパーは空の応答ボディを安全に扱うようになりました 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...
請求プロキシのための***セッションからorg/memberコンテキストを解決する
BillingService コントローラーは X-Org-Id と X-Member-Id ヘッダーが必要です。 直接呼び出し(APIServiceをバイパス)すると、これらは設定されていない。 次に、Next.js プロキシは、*** Cookie を読み込み、セッションを Redis、orgID と Member...
Add /api/billing/*のNext.js APIプロキシルート
請求 API クライアントは、/api/billing/* を相対 URL として呼び出されました。 APIService ゲートウェイの代わりに Next.js サーバーを押します。 追加 先に進むキャッチオールプロキシルート(商取引市場としてのサメパターン) 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...
親 ID と親を OrgProviderProps タイプに追加する
組織の props インターフェイスは、parentId と親フィールドが欠落していました。 しかし、TypeScriptのコンパイル中にそれらをドロップする原因 バックエンドは送信します。 この予防組織。hasParent から つまり、すべての子組織のPlans & Billingタブを隠しました.
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 へ es/fr/de/pl, 復元 bergamot-first 注文
GitHub LFS ファイルは、プレーンカールでダウンロードできません(URL を返す) ポインタは内容ではありません)。 bergamot スコープから enru/enar を削除する locales は、他のすべてのサポートされていないペアと一緒に LibreTranslate に落ちます。 ベルガモットは今、...
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.
スケールベルガモットを0にし、mozilla/translation-serviceにイメージを更新して下さい
Googleクラウドストレージモデルのダウンロードバケット(ベルガモットモデルサンドボックス) すべてのファイルとfirefox-translations-modelsリポジトリの404を返す 必要な言語ペアなしで12月2025をアーカイブしました。 ベルガモットはできない 作業モデルのソースが見つかるまで起動します。...
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...
プロキシ *** 複数のドメインのサポートのためのログインサーバーによるチャレンジ
直接クロスオリジンフェッチをcapcha.{domain}/api/challengeに置き換える /api/capcha/challenge で同じオリジンプロキシ。 前のアプローチが必要 ウィジェットが読み込まれる前に、capcha.* サブドメインで有効な TLS 証明書, 最初に使用している org ドメインに...
スケールベルガモット バック 1 レプリカ — 欠落したポッドによって引き起こされる翻訳失敗
ベルガモットは、サービスがまだ登録されて0のレプリカでした。 プロバイダーロイター TranslateService では、回路ブレーカがなかったため、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.
Kamo-shared-libraryバージョンを1.0.0から1.1.0に更新
共有ライブラリは 1.1.0 ではなく 1.0.0 として公開されます。 これは原因だった Maven は "artifact not found" で失敗する Docker ビルド 依存関係を解決しません.
ローカルリポジトリから共有ライブラリを解決するために、-U フラグを追加
依存性:go-offline ステップは、最初にMaven Centralを試してみました。 kamo-shared-library (ローカルのみ) のキャッシュされた失敗、およびそれ その後のパッケージステップを毒しました。 -U 力 Maven を追加 ローカル1を含むすべてのリポジトリを再確認してください.
翻訳チャンクサイズを50キーに減らし、指数関数的なバックオフ
150 キーはまだいくつかのプロバイダのために大きすぎる (長い段落値で プライバシー/利用規約/GDPR 今のところ: チャンクあたりの50のキー、指数関数の4のretries バックオフ(2s→4s→8s→15s)、フルリクエスト+応答をカバーする3分のタイムアウト、 chunk ごとのよりよい間違いのロギング.
大規模なペイロードでフェッチタイムアウトを防ぐためのチャンク翻訳リクエスト
1500以上のキーで、単一のバッチリクエストのペイロードは接続を引き起こしていました 一部の翻訳プロバイダのタイムアウト。 150キーのチャンクに分割 3つのレトリーとチャンクごとの2分のタイムアウト.