材料と社会的なタイムラインは、所有権だけでなく、権利を取る
MANAGE MATERIALS と MANAGE SOCIAL MEDIA は、監査および監査で強制的にカウントされます。 .tsxファイルでした。 それらを後ろに 29 所有権をチェックし、権利なし: 6 マテリアルコントローラとSocialTimelineController。 Reads は VIEW MAT...
会議のリマインダーは、自分自身のポップアップではなく、通知です
Sweep は /topic/meet/reminder/{memberId} に bespoke イベントを公開しました。 画面の角に専用のSnackbarが描かれています。 そのポップアップ 通知ベルが移動したことがないと、カードがなかった 書いて、6秒を逃したメンバーは何もなかった に戻る また、メンバーのミュー...
チケットリストは、壊れたインジケータを生き残る
未読のスレッドを読み込み、チケットリスト全体を取り巻く — ページが戻ってきた マーカーがないページよりもはるかに悪い結果である空の、。 お問い合わせ 今すぐガードし、ERRORでガード:警告時に記録された以前のガードと サイレンスは、リリースの「未読な」としてデッドクエリマスカレードをしましょう。 機能を無効にし、...
チケットリストはバッジカウントと同じアイテムをマークします
countForMember は、プライベートに構築されたセットを大きさで分類します。そのため、リストに尋ねる方法はありません。 チケットがそれで、その代わりに近似していた - 未読チャットフラグが付けられました メッセージ。 これらは異なる質問です:バッジは、ほとんど仕事のカウントです 誰がピックアップされていない、...
発券した会員様から、チケットはお答えできません
サポートの会話は2つの側面を持っています - 誰かに尋ね、誰かに答える - そして、彼らは異なる人々だったことを強制していません。 会員募集 ACCEPT SUPPORT TICKETS から助けを求めた org は、 ルーティングが心配していた限り、普通のエージェントは、ラウンドロビンはそれらを渡すことができます 自...
型が属するエンドポイントにアウトバウンドアタッチメントを送信する
アダプターの sendImage を経由してすべてのソーシャル 添付ファイルが出てきます。 テレグラムは /sendPhoto です。 PDF または zip が投稿されると拒否されます。 プロバイダは、HTTP レスポンスが語られた後、拒否が長く到着します エージェントのメッセージが出て行くので、顧客に送られた領収書...
オブジェクトのストレージの秘密を宣言 ConfigMap はもはや実行しません
MINIO キーは ConfigMap から minio-app-credentials に移動しました。 秘密, しかし、envFrom その供給は、かつて住んでいるだけに適用されていました 導入 — ここまでコミットしません。 次の CI デプロイはこのマニフェストを反転しました ライブパッチ上に、 ConfigM...
共有されたクレデンシャルを config のデフォルトとして出荷停止
プラットフォームの共有パスワードは、DB PASSWORDのフォールバックとして焼き上げられました。 MINIO ROOT PASSWORD は、このリポジトリとビルドされたイメージに住んでいました。 クラスターマニフェストで。 生産は、DBのデフォルトを使用しないこと — *** 供給 envFrom による DB...
ハンドによる割り当ては、Pre TICKETステータスを消費してはならない
assignToAgent と reassignAgent は無条件に ASSIGNED を設定しました。 チャット後の変換は不可能なリクエストです。 PRE TICKET が何もないので、手元で誰かにライブチャットを渡す タイトルを与えられたことができる唯一の方法。 すでにこの自動パスを取得する 右; マニュアルは、...
チケットが手伝ってくれる有効な方
assignToAgent と reassignAgent は、id がメンバーに解決したことだけをチェックしました。 割り当ては、そのメンバーがチケットのチャットセッションに追加するので、別のユーザーからのid 組織は、ビジネスが存在しない顧客との会話を与えられただろう 見れば、オフボードのメンバーは、ライブワークを...
オートアサインはチケットを提供し、それを割り当てません
利用可能なサポートエージェントごとに自動アサインページを作成し、最初の1人に行きます お問い合わせ 「少なくともbusyのエージェントを選ぶ」として実装されました。 オンライン、それは完全に異なる機能である - そして、ここで自己敗退する1、 割り当てられたチケットが請求可能なキューを残しているので、誰も提供されていな...
ウィジェットのチャットのトピックの戦略を実行する
ウェブウィジェットで開いたチャットは、内部にファイルされたものと同じ単位です app, しかし、このパスは、トピックの割り当て戦略を完全にスキップしました — 唯一の これまで試みた代入は、借主自身の融資責任者でした。 だから、一つのトピック 訪問者が開始した場所に応じて2つの方法:アプリ内チャット auto-assi...
アクティビティフレームにセッションタイプを入れる
未読/ACTIVITY放送は、すべてのセッションタイプに公開され、実施されていない の徴候。 チャットリスト、何も行っていません。 プレーンチャットとしてセッション — チャットとしてサポートチケットの最初のアクティビティが届きました Row: 間違ったサブタブ, チケットのシステムイベントJSONをプレビューとして,...
メッセージが届くような会話をクライアントに伝えます
メディアセッションの全てのメンバーは、受信メッセージの通知を受け取ります。 サポートチケットを割り当てると、エージェントがそのチケットセッションのメンバーになります。 ザ・オブ・ザ・ 通知はセッションタイプを行わないため、クライアントはサポートを指示できません 直接メッセージからチケットを受け取り、両方のプレーンチャッ...
ライブチャットはポップアップを介して主張され、割り当てられません
ラウンドロビンを介してチャットのリクエストをルーティングすることは、間違ったモデルであり、それが壊れた 修正することを目的としていました。 割り当てられたチケットは、請求可能なキューを残します (SupportQueueService は、割り当てられたエージェント IS NULL が必要です)。 誰にでもそれを提供す...
割り当ての失敗を止めて、それらをトリガーしたチケットを破壊
作成トランザクション内で新規のチケットをルーティングするので、ヒットしたもの チケットを取り戻し、ヘルプを尋ねるメンバーは「失敗しました どこでも保存されていないチケットを作成します。 2つの事で、両方のラテン チャットリクエストがこのコードに到達するまで — ラウンドロビンが有効だった 決して生産で実行されていないの...
トピックの割り当て戦略によるチャットリクエストのルート
サポートチャットリクエストは PRE TICKET としてファイルされ、 createTicket はスキップされます。 これらのアウトライトの割り当て。 ガードはウェブチャットウィジェットのために書かれていました。 プレチケットは決して話せない匿名の訪問者です。ただし、アプリ内 チャットは、すでにトピックを選んだ既知...
共有されたユーザーの TTL を更新しないようにする
このサービスは、KSessionService の独自のコピーを保持し、TTL をオンにします。 すべての読み込み。 ゲートセキュリティサービスだけなので、何も修正:kamo-internal ライブチャット、プレゼンス、サポート面を本サービスでポイントし、リフレッシュ キーボードで誰も動かないタイマーで、同じ*** ...
デッドアップロードを1時間保持するのではなく数分で失敗する
connectUploadTimeout は、読み込み間で許容される SILENCE で、予算ではなく 全転送。 'match Traefik' に 1 時間に設定すると、2 つが混同されます。 アップロードは2 GBのファイル500 MBで停止し、そこに座って、要求スレッドと 会員がフルプログレッシバーを見ている間、...
Tomcatの60秒の接続タイムアウトが長いアップロードを殺すのを止める
成功した転送の約4分後に2 GiBチャットアタッチメントが失敗しました bare SocketTimeoutException をラップする MultipartException で、メンバーは 「内部サーバーのエラー」と述べました。 Tomcat の disabledUploadTimeout のデフォルトは tr...
Catch OptimisticLockException, type 40001 は実際にラップします
ラウンド 3 レビューの修正: hibernatecore's ******************************** lockAcquisitionException (SQLState 40001が変換したもの)を4つに対してテストする 順序で特定のタイプ、どれも plain LockAcquisitio...
クレームの衝突が実際に投げる例外型をキャッチする
ラウンド2レビュー修正:ステートメントレベルの40001(一般的なケース、検出 commit ではなく executeUpdate() 内の内面 メニュー Hibernateの ExceptionConverterImpl は Spring ConcurrencyFailureException ではありません。 Su...
すべての失われたクレームレースで409を返す、マネジャークレームパスを追加
ラウンド1レビューは、受け入れポップアップクレームエンドポイントの修正を修正しました。 - 普通の失われたレース(所有者の isClaimableBy 既に偽のポストコミット) 400の代わりにticketAlreadyClaimedException (409)を上げます - チケット自身の勝者によるダブルタップは、...
電子メールリポジトリのDepartServiceをスキャンする
MediaService Crash共有lib 1.5.0以降、すべてのPodでループ: DepartmentServiceは @Service なので、ワイルドカード @ComponentScan("com.kamo") はこのかどうかをここで構築します。 サービスは部門に触れ、それは時郵便boxRepository...
タイムラインプロバイダフィルターを繰り返しパラメータとして受け入れる
Web クライアントは ?providers=facebook,x を 1 つの CSV 値として送信しました。 クエリのコンマ VALUE は %2C として旅行し、再エンコードするホップは %252C に変わります。 一度デコードし、もはやコンマに分割し、全フィルターは 単一の実行-togetherトークン「fac...
ユーザアカウントにミスされたメッセージメールを送信します
「メッセージ待ち、サインインして読みたい」という通知が残っています。 この組織がメンバーを割り当てたメールボックスに配信されます。 サインイン 見られない人は、その人でした。 決定的な解像度は、ユーザーアカウントアドレスのみです。 Member.emailフォールバックは消えます ではなく、再注文, ホルグメールボッ...
1人の所有者の未読数ではなく、すべてのエージェントにライブバッジを与える
Navバッジと/support?tab=ticketsは異なる質問に答えました。 サイトマップ org 内のすべてのチケットをリストします。バッジは未読のチャットメッセージが含まれている 正確に1つのメンバーに、解決されたorgの所有者、およびに公開 support.agent.{ownerId} は、各ブラウザが独自...
クライアント SEND をガードしたトピックにドロップし、ビルドを HEAD で修復します
TWO THINGS(TWO THINGS)は、メディアサービスが出荷からメインを停止する。 1. メインはコンパイルしません。 MediaController:1361 呼び出し ********************************************************************...
一度にメッセージを発表し、それが全体であるとき
行が保存された後、メッセージのビルドが完了する発信者も、 createMessage が発表されていない: MediaController は画像と公開を添付します コミット後、SocialMessageServiceはSOCIAL VISITORイベントを公開します。 今まで 最初はバーメッセージを保存し、購読者がそ...
アップロードごとの1つのオブジェクトの代わりに、バックアップパイプラインを介して添付ファイルを保存する
添付ファイルには、アップロードごとに「<imgId>/<fileName>」オブジェクトを記述し、 content-addressed ストア全体 — 同じロゴ-draft.png は 1 回 3 回添付 3つのオブジェクトを占める会話。 共有 ImgDat にハッシュをアップロードするので、同一 コンテンツは、添付頻...
共有MFAリポジトリをスキャンする
MfaEnrollmentService は、kamo-shared-library の @Service なので、ワイルドカード @ComponentScan("com.kamo") このアプリケーションでは、このかどうかを構成します。 サービスには、MFAで何をすべきか、そのコンストラクタのニーズ UserMfaE...
Kubectlのダウンロードをフラッキ・エグレッシにハードン [skip ci]
dl.k8s.io オーバー ランナーのエグレッション 断続的にミッドトランスファーをドロップ: curl: (56) OpenSSL SSL read: 復号化が失敗したか、悪いレコードマック それ以外の緑のビルドでデプロイが失敗する。 繰り返し観察 kamo-signer-monorepoとkamo-transla...
期限切れのワイルドカードの秘密の代わりに、ライブパーホストの証明書をマウント
Cert-converter init コンテナは、PKCS12 キーストアをビルドしました。 wildcard-kamocrm-com, 時を偽造した既定のマルチサンシークレット その証明書は、ホストの秘密で再配置されました。 何も更新されず、 2026-07-20 の有効期限が切れるので、すべてのPodが起動します...
クロスオーグセールスエージェントを注入します。 ワイドなブートストラップキャッシュバッシング
salesAgentId は、リクエストボディがチェックされていないため、クロスオーガナまたは エージェント ID を WebChatIntegration に保存することができます。 それは安全だけ失敗しました AIService が org-scoped のルックアップでエージェントを読み込み、データが 誤って、爆...
チャット参加とルーティングから非アクティブメンバーを除外
非アクティブ****************会員は、 ライブチャット参加者として対象となります。 共有ライブラリのチャットパスをすべてゲート メニュー 述語: - DMは/グループfind-or-create/add-membersの拒絶か、または非ACTIVEを低下させます MediaSessionMember 行...
パブリックチャットシステムのメンバーを解決する (ハードコードされたsnadjafinia alias)
createSupportSession、createPublicTicket、および所有者の通知 ヘルパーは、ハードコードでorgの「システムメンバー」を解決しました usernameAlias="snadjafinia" lookup, これだけカモに存在しますCRM seed org — すべてのテナントの or...
メッセージを見逃してしまったメールに送信を停止
メッセージプレビューの計算、レジャー PREVIEW 書き込み、および messagePreview テンプレート変数;includePreview の設定をドロップします。 送信者 + カウント + CTA のみを運ぶメール — サインイン後にコンテンツが読み込まれます.
パーシストのスケジュールされた素材の親指のフラグをターゲットに更新
変換パイプラインと同じ離脱エンティティティ orphanRemoval 問題: ヘッドレススイープ 分離した ImgDat と save()/merge() を画像コレクションにカスケードしました。 使用条件 メニュー 代わりに.
録画アップロードをラップして、MediaService がコンパイルする
MinIOStorageService.upload は、ingest() がどちらもチェックされている例外をスローします。 キャッチまたは宣言 — isGuest の一番上にブレイクをビルドします。 それを包み、 実行時間例外として再スローするので、失敗したアップロードは@Transactionalに戻ります.
MeetingParticipant.isGuest() (getGuest はコンパイルしません)。 全般的なエンドポイントに transcribe をリセットします
MeetingParticipant exposes isGuest() (primitive boolean getter), getGuest() ではありません。 また、共有 /api/conversion/transcribe でサマリートランク呼び出しを指す.
パーシストは参加者を招待し、MANAGE MEET SETTINGSを強制し、ダブルインビットパスをドロップします
- createMeeting:招待されたメンバーは、UUID文字列ではなく数値のスノーフレークIDです。 クリエイターのように longToUID を通してそれらをルーティングします。 以前からUUID.fromString 参加者全員の招待状を投げるので、参加者全員に記録されたことはなかった。 - MeetConf...
トランザクションコミット後にNATS CREATEイベントを公開して、画像の添付レースを修正
NATSメッセージは、@Transactional body内で公開されました。 受信者は、CREATEイベントを受信し、画像をリクエストすることができます /imaging/proxy/{objImgId} 前の MediaObjImg 行が DB で表示され、 チャットが再開されるまで、404とイメージレンダーなし...
Serialize attachments in WS relay and message history; allow attachment-only sends
Three bugs fixed: 1. ChatSessionSubscriptionManager was building the STOMP messageMap manually and omitting attachments, sourceLanguageId, readMemberId, msg...
Fix NPE in getChatSessions from Map.of() rejecting null nextcoder
java.util.Map.of() throws NullPointerException when nextcoder is null (no more pages). Replace with HashMap that accepts null values. Also wrap entire handler i...
Fix upload 500 (missing EmbRecordState) and empty chats tab (Timestamp cast)
Defect A: ChatAttachmentService.upload omitted **************** causing a NOT NULL violation on imgs.is_active. Added the default recordState. Also hardened Cha...
Prefer usernameAlias over User.name in memberDisplayName
Switches display name priority to: Member.usernameAlias → User.name → User.alias → User.username. Also includes the paged query dispatch fix from the previous c...
Use split First/After queries for chat sessions paged endpoint
Addresses empty Chats tab by dispatching to ****************